Đối với bài đăng của kẻ cướp, máy Cheapo Enigma (Cướp)
Nội dung gửi của cảnh sát sẽ bao gồm một chương trình / chức năng chấp nhận một byte dữ liệu và trả về một byte dữ liệu. Mỗi đầu vào có thể phải tạo ra một đầu ra duy nhất. (Nói cách khác, chức năng của bạn phải là tính từ)
Những tên cướp sẽ cố gắng tạo ra chức năng nghịch đảo của bạn bằng cách sử dụng mã càng ngắn càng tốt. Vì vậy, mục tiêu của bạn là làm cho chức năng của bạn khó đảo ngược.
Bạn không thể sử dụng các phần dựng sẵn có mục đích duy nhất là băm hoặc mã hóa.
Số byte của bạn không thể vượt quá 64 byte. Các giải pháp 0 byte không đủ điều kiện để giành chiến thắng.
Định dạng đầu vào / đầu ra
8 bit (0 hoặc 1) hoặc số nguyên cơ số 10 trong phạm vi 1-256, 0-255 hoặc -128 đến 127. Có thể sử dụng I / O tiêu chuẩn hoặc I / O tệp. Hàm cũng có thể trả về một giá trị là đầu ra. Đầu vào và đầu ra phải thuộc cùng một phạm vi (nhị phân, 1-256, 0-255 hoặc -128 đến 127). Tên cướp cũng sẽ được yêu cầu sử dụng phạm vi này cho đầu vào và đầu ra.
Chấm điểm
Tỷ lệ số byte của bạn so với nỗ lực của tên cướp giỏi nhất đối với bạn. Điểm số thấp nhất chiến thắng.
Bạn đủ điều kiện để giành chiến thắng (với tư cách là cảnh sát) chỉ khi một tên cướp đã cố gắng đánh bại bạn. (Tên cướp này có thể là bạn)
Thí dụ
C ++, sử dụng phạm vi 0-255, 31 byte
int x;
cin>>x;
cout<<(x+1)%256;
Trình cướp có thể có trong C ++, 32 byte
int f(int x)
{return x?x-1:255;}
Sử dụng cùng một ngôn ngữ hoặc một thuật toán tương tự không phải là một yêu cầu
Điều này cho điểm 31/32 = 0,97 cho cả cảnh sát và kẻ cướp.