Chọn bất kỳ năm ký tự mà ngôn ngữ của bạn hỗ trợ. Có 5! = 5 × 4 × 3 × 2 × 1 = 120 cách có thể được sắp xếp thành một chuỗi 5 ký tự chứa mỗi ký tự một lần; 120 hoán vị .
Chọn các ký tự của bạn sao cho mỗi chuỗi trong số 120 chuỗi được chạy bằng ngôn ngữ của bạn, 120 đầu ra được tạo sẽ có càng nhiều số nguyên duy nhất từ 1 đến 120 (bao gồm) càng tốt.
Nghĩa là, với mỗi trong số 120 hoán vị của 5 ký tự của bạn tạo mã có thể chạy được tạo ra một số duy nhất, bạn muốn tập hợp tất cả các số đó khớp với nhau nhất có thể với bộ số nguyên từ 1 đến 120.
Vì vậy, lý tưởng, hoán vị đầu tiên của bạn sẽ xuất ra 1
, tiếp theo 2
, tiếp theo 3
, tất cả các cách lên đến 120
. Nhưng lý tưởng đó dường như là không thể đối với hầu hết các ngôn ngữ và nhân vật.
Chuỗi 5 ký tự có thể được chạy dưới dạng:
- một chương trình không có đầu vào
- một hàm không có đối số
- một REPL lệnh
Các chuỗi khác nhau có thể được chạy theo những cách khác nhau nếu muốn
Để đầu ra được tính, nó phải là một đầu ra số nguyên theo cách thông thường , chẳng hạn như:
- được in ra thiết bị xuất chuẩn
- trả về bởi hàm
- kết quả của biểu thức REPL
Mã sẽ chấm dứt bình thường ( có thể liên quan đến lỗi miễn là số đã được xuất ra đầu tiên). Mã hoàn toàn không chạy, chỉ có đầu ra (không tồn tại) không được tính. Đầu ra số phải ở dạng thập phân trừ khi một cơ sở khác là tiêu chuẩn cho ngôn ngữ của bạn.
Bài nộp tạo ra các số khác biệt nhất từ 1 đến 120 thắng. Trình trước đó chiến thắng trong trường hợp hòa.
Ghi chú
- Tất cả 5 ký tự của bạn không cần phải khác nhau, nhưng tất nhiên việc có các ký tự trùng lặp sẽ làm giảm số lượng hoán vị hiệu quả.
- Đầu ra nổi như
32.0
đếm cũng như đồng bằng32
. (Nhưng32.01
sẽ không.) - Các số 0 đứng đầu như
032
đếm cũng như đơn giản32
. - Đầu ra hợp lệ nên được xác định và bất biến thời gian.
- Chúng tôi đang xử lý các ký tự , không phải byte.
Thí dụ
Các ký tự 123+*
là lựa chọn đầu tiên hợp lý cho REPL (hoặc nhiều ngôn ngữ) của Python. Kết quả 120 hoán vị và đầu ra là:
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
Có 36 số được tạo, tất cả may mắn trong vòng 1 đến 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
Tuy nhiên, chỉ có 8 trong số đó là duy nhất:
36, 26, 7, 5, 23, 32, 63, 62
Vì vậy, một bài nộp như vậy sẽ chỉ đạt 8 trên 120 điểm tối đa.
c
ngôn ngữ giống như !!!