เลือกอักขระห้าตัวที่ภาษาของคุณรองรับ มี 5! = 5 × 4 × 3 × 2 × 1 = 120 วิธีการเหล่านี้สามารถจัดเป็นสตริง 5 ตัวที่มีอักขระแต่ละตัวครั้งเดียว; 120 พีชคณิต
เลือกตัวละครของคุณว่าเมื่อใดที่มีการเรียกใช้สตริง 120 ในภาษาของคุณเอาต์พุต 120 ที่สร้างขึ้นจะมีจำนวนเต็มไม่ซ้ำกันจำนวนมากตั้งแต่ 1 ถึง 120 (รวม) เท่าที่จะเป็นไปได้
นั่นคือสำหรับการเรียงสับเปลี่ยน 120 ตัวของ 5 ตัวอักษรของคุณที่สร้างรหัสที่รันได้ที่ส่งออกตัวเลขเดียวคุณต้องการให้ชุดของตัวเลขเหล่านั้นทั้งหมดจับคู่ให้ใกล้ที่สุดกับชุดของจำนวนเต็มตั้งแต่ 1 ถึง 120
ดังนั้นความนึกคิดการเปลี่ยนแปลงครั้งแรกของคุณจะส่งออก1
ต่อไป2
ต่อไปตลอดทางขึ้นไป3
120
แต่อุดมคตินั้นเป็นไปไม่ได้สำหรับภาษาและตัวละครส่วนใหญ่
สายอักขระ 5 ตัวอาจถูกเรียกใช้เป็น:
- โปรแกรมที่ไม่มีอินพุต
- ฟังก์ชั่นที่ไม่มีข้อโต้แย้ง
- REPLคำสั่ง
สตริงที่แตกต่างกันสามารถทำงานได้หลายวิธีหากต้องการ
สำหรับเอาต์พุตที่จะนับต้องเป็นเอาต์พุตจำนวนเต็มเดียวในวิธีปกติเช่น:
- ถูกพิมพ์ไปยัง stdout
- ส่งคืนโดยฟังก์ชัน
- ผลลัพธ์ของการแสดงออก REPL
รหัสควรยุติตามปกติ (ซึ่งอาจเกี่ยวข้องกับข้อผิดพลาดตราบใดที่มีการส่งออกหมายเลขแรก) โค้ดที่ไม่ทำงานเลยก็ใช้ได้ แต่เอาท์พุท (ไม่มีอยู่) จะไม่ถูกนับ ตัวเลขที่ส่งออกควรเป็นทศนิยมเว้นแต่ฐานที่ต่างกันจะเป็นบรรทัดฐานสำหรับภาษาของคุณ
การส่งที่สร้างหมายเลขที่แตกต่างกันมากที่สุดตั้งแต่ 1 ถึง 120 ชนะ การส่งก่อนหน้านี้จะชนะในกรณีที่เสมอกัน
หมายเหตุ
- อักขระ 5 ตัวของคุณไม่จำเป็นต้องแตกต่างกัน แต่แน่นอนว่าการมีอักขระซ้ำกันจะช่วยลดจำนวนการเปลี่ยนลำดับที่มีประสิทธิภาพ
- เอาท์พุทลอยเช่นนับเช่นเดียวกับธรรมดา
32.0
32
(แต่32.01
จะไม่) - ชั้นนำ zeroes เช่นนับเช่นเดียวกับธรรมดา
032
32
- ผลลัพธ์ที่ถูกต้องควรกำหนดและไม่เปลี่ยนแปลงเวลา
- เรากำลังจัดการกับตัวละครไม่ใช่ไบต์
ตัวอย่าง
ตัวละคร123+*
เป็นตัวเลือกแรกที่สมเหตุสมผลสำหรับ REPL ของ Python (หรือหลายภาษา) ผลลัพธ์ของการเปลี่ยนลำดับ 120 และผลลัพธ์คือ:
123+* n/a
123*+ n/a
12+3* n/a
12+*3 n/a
12*3+ n/a
12*+3 36
132+* n/a
132*+ n/a
13+2* n/a
13+*2 n/a
13*2+ n/a
13*+2 26
1+23* n/a
1+2*3 7
1+32* n/a
1+3*2 7
1+*23 n/a
1+*32 n/a
1*23+ n/a
1*2+3 5
1*32+ n/a
1*3+2 5
1*+23 23
1*+32 32
213+* n/a
213*+ n/a
21+3* n/a
21+*3 n/a
21*3+ n/a
21*+3 63
231+* n/a
231*+ n/a
23+1* n/a
23+*1 n/a
23*1+ n/a
23*+1 23
2+13* n/a
2+1*3 5
2+31* n/a
2+3*1 5
2+*13 n/a
2+*31 n/a
2*13+ n/a
2*1+3 5
2*31+ n/a
2*3+1 7
2*+13 26
2*+31 62
312+* n/a
312*+ n/a
31+2* n/a
31+*2 n/a
31*2+ n/a
31*+2 62
321+* n/a
321*+ n/a
32+1* n/a
32+*1 n/a
32*1+ n/a
32*+1 32
3+12* n/a
3+1*2 5
3+21* n/a
3+2*1 5
3+*12 n/a
3+*21 n/a
3*12+ n/a
3*1+2 5
3*21+ n/a
3*2+1 7
3*+12 36
3*+21 63
+123* n/a
+12*3 36
+132* n/a
+13*2 26
+1*23 23
+1*32 32
+213* n/a
+21*3 63
+231* n/a
+23*1 23
+2*13 26
+2*31 62
+312* n/a
+31*2 62
+321* n/a
+32*1 32
+3*12 36
+3*21 63
+*123 n/a
+*132 n/a
+*213 n/a
+*231 n/a
+*312 n/a
+*321 n/a
*123+ n/a
*12+3 n/a
*132+ n/a
*13+2 n/a
*1+23 n/a
*1+32 n/a
*213+ n/a
*21+3 n/a
*231+ n/a
*23+1 n/a
*2+13 n/a
*2+31 n/a
*312+ n/a
*31+2 n/a
*321+ n/a
*32+1 n/a
*3+12 n/a
*3+21 n/a
*+123 n/a
*+132 n/a
*+213 n/a
*+231 n/a
*+312 n/a
*+321 n/a
มีการสร้างตัวเลข 36 ตัวโชคดีที่ทั้งหมดภายใน 1 ถึง 120:
36, 26, 7, 7, 5, 5, 23, 32, 63, 23, 5, 5, 5, 7, 26, 62, 62, 32, 5, 5, 5, 7, 36, 63, 36, 26, 23, 32, 63, 23, 26, 62, 62, 32, 36, 63
อย่างไรก็ตามมีเพียง 8 คนเท่านั้นที่ไม่ซ้ำกัน:
36, 26, 7, 5, 23, 32, 63, 62
ดังนั้นการส่งดังกล่าวจะทำคะแนนได้ 8 จาก 120 สูงสุดเท่านั้น
c
ภาษาที่เป็นไปไม่ได้!!!