Đây là một thử thách cảnh sát và tên cướp . Đối với chủ đề cướp, đi đến đây .
Thử thách này liên quan đến hai trình tự OEIS được lựa chọn bởi cảnh sát - S 1 , S 2 - và các trình tự đó có thể được đánh golf và che giấu tốt như thế nào.
Thử thách của cảnh sát
Thử thách của bạn với tư cách là một cảnh sát là chọn một ngôn ngữ có sẵn miễn phí và hai chuỗi OEIS. Sau đó, viết mã A bằng ngôn ngữ đó lấy đầu vào n và tạo S 1 (n). Khi mã đó được sửa đổi bởi khoảng cách Levenshtein của các ký tự X (với X không quá 0.5 * (length A)
) và biến thành mã B trong cùng một ngôn ngữ, thì nó phải tạo ra S 2 (n). Bạn thực sự phải viết mã B này , nhưng đừng tiết lộ nó cho đến khi thử thách của bạn an toàn (xem bên dưới).
Việc gửi của cảnh sát phải bao gồm tên ngôn ngữ, mã đầy đủ A , số byte của A , giá trị X của số lượng thay đổi để nhận mã B bí mật của họ và số thứ tự S 1 và S 2 đã chọn . Bạn có thể chọn xem mỗi chuỗi là 0 chỉ mục hay 1 chỉ mục, nhưng vui lòng chỉ định điều đó trong bài gửi của bạn.
Để bẻ khóa một đệ trình cụ thể, những tên cướp phải đưa ra một chương trình C có cùng ngôn ngữ (và phiên bản) tạo ra S 2 (n) và ký tự Y thay đổi từ A (với Y <= X
). Những tên cướp không nhất thiết phải tìm chính xác mã B mà cảnh sát (bí mật) tạo ra.
Chiến thắng và chấm điểm
Nếu câu trả lời của cảnh sát của bạn không bị bẻ khóa trong vòng 7 ngày (168 giờ), bạn có thể tiết lộ giải pháp B của riêng mình , tại thời điểm đó câu trả lời của bạn được coi là an toàn. Miễn là bạn không tiết lộ giải pháp của mình, nó vẫn có thể bị bọn cướp bẻ khóa, ngay cả khi 7 ngày đã trôi qua. Nếu câu trả lời của bạn bị bẻ khóa, vui lòng cho biết điều này trong tiêu đề câu trả lời của bạn, cùng với liên kết đến câu trả lời của tên cướp tương ứng.
Cảnh sát giành chiến thắng bằng cách đệ trình không bị theo dõi với A ngắn nhất . Nếu được buộc, thì X nhỏ nhất sẽ được sử dụng làm bộ ngắt kết nối. Nếu vẫn bị ràng buộc, đệ trình trước đó sẽ giành chiến thắng.
Quy tắc khác
- Bạn không được sử dụng bất kỳ tích hợp nào để băm, mã hóa hoặc tạo số ngẫu nhiên (ngay cả khi bạn chọn trình tạo số ngẫu nhiên cho một giá trị cố định).
- Các chương trình hoặc chức năng đều được cho phép, nhưng mã không được là đoạn trích và bạn không được giả sử môi trường REPL.
- Bạn có thể lấy đầu vào và đưa ra đầu ra ở bất kỳ định dạng thuận tiện . Các phương thức nhập / xuất phải giống nhau cho cả hai chuỗi.
- Máy tính dứt khoát cho khoảng cách Levenshtein cho thử thách này là cái này trên Planet Calc.
- Ngoài việc là một thử thách CnR, đây là môn đánh gôn nên tất cả các quy tắc chơi golf thông thường đều được áp dụng.
(0.5*len(A))