Виберіть будь-які п'ять символів, які підтримує ваша мова. Є 5! = 5 × 4 × 3 × 2 × 1 = 120 способів їх можна впорядкувати в 5-символьний рядок, який містить кожен символ один раз; 120 перестановок .
Виберіть своїх символів таким чином, що коли кожен з 120 рядків запускається вашою мовою, 120 отриманих результатів матимуть стільки унікальних цілих чисел від 1 до 120 (включно).
Тобто, для кожної з 120 перестановок ваших 5 символів, які створюють виконуваний код, який видає одне число, потрібно, щоб набір усіх цих чисел максимально відповідав набору цілих чисел від 1 до 120.
Отже, в ідеалі, ваша перша перестановка виведе 1
, наступна 2
, наступна 3
, аж до 120
. Але цей ідеал, ймовірно, неможливий для більшості мов та символів.
5-символьні рядки можуть бути запущені як:
- програма без введення
- функція без аргументів
- реплєї команда
При бажанні різні рядки можна виконувати різними способами
Щоб результат підраховувався, це повинен бути єдиний цілий вихід нормальним способом, наприклад:
- друкується до stdout
- повернута функцією
- результат виразу REPL
Код повинен закінчуватися нормально (що може спричинити помилки, поки число було виведене першим). Код, який взагалі не працює, добре, просто (неіснуючий) вихід не враховується. Виведення чисел повинно бути десятковим, якщо інша база не є нормою для вашої мови.
Представлення, що генерує найвиразніші числа від 1 до 120, виграє. Раніше подання виграє у разі нічиєї.
Примітки
- Ваші 5 символів не повинні бути різними, але, звичайно, наявність дублікатів символів зменшує ефективну кількість перестановок.
- Поплавкові виходи, такі як
32.0
лічильник, а також звичайний32
. (Але32.01
не хотів би.) - Провідні нулі, такі як
032
підрахунок, а також звичайний32
. - Дійсні результати повинні бути детермінованими та інваріантними за часом.
- Ми маємо справу з символами , а не байтами.
Приклад
Персонажі 123+*
є розумним першим вибором для відповіді 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
подібних мовах !!!