Trong một tai nạn rất bất thường liên quan đến một mẫu radium nhỏ, một con cá voi bị điện giật và ba con gấu keo, một số mã nguồn của The Management ™ đã bị đột biến. Ít ông chủ của The Management ™ biết, thực ra đó là Cops ©, người chịu trách nhiệm, trong nỗ lực ngăn chặn các kế hoạch "xấu xa" của The Management ™. Vì vậy, Robbers® đã được thuê trong một nỗ lực để lấy lại mã gốc, bởi vì đôi khi ai đó không thích trở nên xấu xa?
lưu ý: Thử thách này được truyền cảm hứng mạnh mẽ bởi Giải mã mã nguồn .
Sự miêu tả
Đây là một thử thách cảnh sát và tên cướp .
- Các cảnh sát sẽ viết một chương trình (mã bị đột biến) thực hiện Nhiệm vụ số 1 (và cũng viết một chương trình thực hiện Nhiệm vụ số 2, nhưng được giữ bí mật).
- Những tên cướp sẽ cố gắng đảo ngược "đột biến" và thay đổi mã gốc này thành mã thực hiện Nhiệm vụ # 2.
Trong thử thách này, Nhiệm vụ số 1 sẽ là xuất n
số nguyên tố thứ và Nhiệm vụ số 2 sẽ là xuất n
số Fibonacci thứ (dù sao cũng là điều xấu, theo Cops ©). Chuỗi Fibonacci được định nghĩa là ( n=1
→ 1
; n=2
→ 1
; n=3
→ 2
; ...) và các số nguyên tố được xác định là ( n=1
→ 2
; n=2
→ 3
; n=3
→ 5
; ...).
Mục tiêu của cảnh sát là giảm thiểu sự khác biệt giữa các chương trình hoàn thành Nhiệm vụ số 1 và Nhiệm vụ số 2, đồng thời ngăn chặn bọn cướp tạo lại mã hoàn thành Nhiệm vụ # 2.
Nội quy
Các cảnh sát sẽ viết hai chương trình (một chương trình hoàn thành Nhiệm vụ số 1 và một chương trình hoàn thành Nhiệm vụ số 2) và công khai các thông tin sau:
- Các chương trình đầu tiên (mà kết quả đầu ra các
n
thứ số nguyên tố) - Các Levenshtein chỉnh sửa khoảng cách giữa các chương trình đầu tiên và chương trình thứ hai
- Các ngôn ngữ lập trình mà cả hai chương trình được viết bằng (phải là cùng một ngôn ngữ cho cả hai chương trình)
Các hạn chế sau đây áp dụng cho cả hai chương trình:
- Chúng phải có độ dài 128 ký tự trở xuống.
- Họ chỉ phải sử dụng ASCII có thể in được (cộng với dòng mới, cũng được cho phép).
- Họ phải mất ít hơn 10 giây để chạy
n=45
và họ không bắt buộc phải tạo ra đầu ra chính xác cho bất kỳn>45
. - Họ không được sử dụng bất kỳ chức năng băm hoặc mật mã nào.
Quy tắc cướp
Tên cướp sẽ cố gắng thay đổi chương trình của cảnh sát (hoàn thành Nhiệm vụ số 1) thành chương trình hoàn thành Nhiệm vụ số 2 (không nhất thiết là chương trình gốc được viết bởi cảnh sát) trong khoảng cách chỉnh sửa được chỉ định bởi cảnh sát.
Một bản đệ trình đã bị bẻ khóa không thể bị bẻ khóa một lần nữa (chỉ có tên cướp đầu tiên bẻ khóa bài nộp mới được ghi nhận).
Sau khi bẻ khóa một bài nộp, xin vui lòng làm như sau:
- Đăng câu trả lời cho câu hỏi đi kèm (thử thách) này , cung cấp ngôn ngữ, giải pháp của bạn và liên kết đến câu trả lời ban đầu.
- Để lại một bình luận với văn bản "Cracked" liên kết đến câu trả lời được đăng của bạn.
- Chỉnh sửa câu trả lời của cảnh sát nếu bạn có các đặc quyền chỉnh sửa (nếu bạn không, hãy đợi cho đến khi người khác có các đặc quyền bắt buộc làm như vậy cho bạn hoặc đề nghị chỉnh sửa).
Chấm điểm
Nếu chương trình của cảnh sát vẫn không bị theo dõi trong 1 tuần, cảnh sát có thể đăng mã gốc hoàn thành Nhiệm vụ # 2 (trong khoảng cách chỉnh sửa được chỉ định) và việc gửi đi từ đó được coi là "an toàn". Trình an toàn có khoảng cách chỉnh sửa nhỏ nhất sẽ giành chiến thắng. Trong trường hợp hòa, chương trình ngắn nhất (bản gốc hoàn thành Nhiệm vụ số 1) sẽ thắng. Nếu hai bài nộp vẫn bị ràng buộc, bài nào được đăng trước đó sẽ thắng.
Nếu một tên cướp phá vỡ thành công bản đệ trình của cảnh sát, điểm của tên cướp sẽ tăng lên theo khoảng cách chỉnh sửa của bản đệ trình đó. Ví dụ, một tên cướp phá vỡ một bài nộp với khoảng cách chỉnh sửa là 3 và một với khoảng cách 5 kiếm được 8 điểm. Tên cướp có số điểm cao nhất sẽ chiến thắng. Trong trường hợp hòa, tên cướp nào giành được điểm số trước sẽ thắng.