สำหรับโพสต์ของโจรเครื่อง Cheapo Enigma (โจร)
การส่งของตำรวจจะประกอบด้วยโปรแกรม / ฟังก์ชั่นที่ยอมรับข้อมูลหนึ่งไบต์และส่งกลับข้อมูลหนึ่งไบต์ ทุกอินพุตที่เป็นไปได้ต้องสร้างเอาต์พุตเฉพาะ (ในคำอื่น ๆ ฟังก์ชั่นของคุณจะต้อง bijective)
โจรจะพยายามสร้างฟังก์ชันผกผันของคุณโดยใช้รหัสสั้นที่สุด ดังนั้นวัตถุประสงค์ของคุณคือทำให้การทำงานของคุณยากที่จะกลับด้าน
คุณไม่สามารถใช้บิวด์อินที่มีวัตถุประสงค์เพื่อการแฮชหรือการเข้ารหัส แต่เพียงผู้เดียว
จำนวนไบต์ของคุณต้องไม่เกิน 64 ไบต์ โซลูชั่น 0 ไบต์ไม่มีสิทธิ์ชนะ
รูปแบบอินพุต / เอาต์พุต
8 บิต (0 หรือ 1) หรือจำนวนเต็ม 10 ฐานในช่วง 1-256, 0-255 หรือ -128 ถึง 127 สามารถใช้ I / O มาตรฐานหรือไฟล์ I / O ฟังก์ชั่นยังสามารถคืนค่าเป็นเอาท์พุท อินพุตและเอาต์พุตควรอยู่ในช่วงเดียวกัน (ไบนารี, 1-256, 0-255 หรือ -128 ถึง 127) โจรจะต้องใช้ช่วงนี้สำหรับอินพุตและเอาต์พุต
เกณฑ์การให้คะแนน
อัตราส่วนของไบต์ของคุณนับว่าเป็นความพยายามที่ดีที่สุดสำหรับคุณ คะแนนต่ำสุดชนะ
คุณมีสิทธิ์ที่จะชนะ (ในฐานะตำรวจ) เฉพาะในกรณีที่โจรพยายามเอาชนะคุณ (โจรคนนี้อาจเป็นคุณ)
ตัวอย่าง
C ++ ใช้ช่วง 0-255, 31 ไบต์
int x;
cin>>x;
cout<<(x+1)%256;
การส่งโจรที่เป็นไปได้ใน C ++, 32 ไบต์
int f(int x)
{return x?x-1:255;}
การใช้ภาษาเดียวกันหรืออัลกอริทึมที่คล้ายกันไม่ใช่ข้อกำหนด
สิ่งนี้ให้คะแนน 31/32 = 0.97 สำหรับทั้งตำรวจและโจร