Существует 40 способов размещения направленного гамильтонова пути на сетке 3 × 3: на
этом графике ( спасибо Sp3000! ) Показаны только 20 ненаправленных путей. Пройдите каждую цветную линию в обоих направлениях для 40 направленных путей.
Вызов
Используя только ASCII для печати , напишите сетку символов 3 × 3, например:
ABC
DEF
GHI
Когда каждый из 40 направленных путей считывается из этой сетки как 40 однострочных, 9-символьных программ, цель состоит в том, чтобы каждая программа выводила уникальное целое число от 1 до 40. Делать это для всех 40 путей кажется трудным и маловероятным, поэтому вам нужно только заставить его работать на столько путей, сколько сможете.
Представление, чьи 40 путевых программ выводят самые разные числа от 1 до 40, будет победителем. Tiebreaker переходит к более раннему представлению.
Программы путей, которые выдают ошибку или не выводят целое число от 1 до 40, или выводят целое число, которое другая пройденная программа не учитывает. В частности:
- Программы, которые выдают ошибку при компиляции, запуске или выходе, не учитываются. Предупреждения в порядке.
- Программы, которые не выводят целое число от 1 до 40 или выводят что-то слегка искаженное, например,
-35
или35 36
не учитываются. - Программы, которые требуют пользовательского ввода для получения результата, не учитываются.
- Программы, которые никогда не заканчиваются, не учитываются.
- С этого момента , программы, которые не являются детерминированными, не учитываются.
- В противном случае действительные программы, которые выводят целое число от 1 до 40, которое уже выполнила другая действительная программа, не учитываются. (Первая программа будет учитываться.)
- Только программы, которые выводят целочисленные представления чисел от 1 до 40 (включительно), засчитываются в общую сумму. Числа должны быть в обычном
1
,2
...39
,40
формате, если это не является нормой для вашего языка. (Завершающий перевод строки в выводе в порядке.) - Какие номера выводят ваши программы и в каком порядке они не имеют значения. Только количество различных целых чисел из допустимых программ имеет значение.
Все path-программы должны быть запущены на одном языке. Однако на самом деле «программы» могут быть функциями (без обязательных аргументов) или командами REPL , а также полными программами, которые печатают или возвращают целевое целое число. Вы можете смешивать и сопоставлять функции, команды REPL и полные программы.
Ваши 9 печатных символов ASCII не должны быть различимыми.
пример
Если ваша сетка 3 × 3 была
ABC
DEF
GHI
и ваши 40 программ и выходов выглядели так
ABCFEDGHI -> 26
ABCFIHEDG -> 90
ABCFIHGDE -> 2
ABEDGHIFC -> syntax error
ADEBCFIHG -> prints 40 but then errors
ADGHEBCFI -> 6
ADGHIFCBE -> 6
ADGHIFEBC -> 6
CBADEFIHG -> runtime error
CBADGHEFI -> 3
CBADGHIFE -> 4
CFEBADGHI -> -32
CFIHEBADG -> 38.0
CFIHGDABE -> "36"
EDABCFIHG -> 33
EFCBADGHI -> no output
EHGDABCFI -> compilation error
EHIFCBADG -> 8
GDABCFEHI -> 22
GHEDABCFI -> 41
IHGDEFCBA -> 0
GDEHIFCBA -> '9'
EDGHIFCBA -> +10
CFIHGDEBA -> 11
GHIFCBEDA -> error
IFCBEHGDA -> error
EBCFIHGDA -> prints 23 but then loops infinitely
CBEFIHGDA -> randomly prints either 24 or 44
GHIFEDABC -> error
IFEHGDABC -> 30
EFIHGDABC -> 39
IHGDABEFC -> 7
GDABEHIFC -> 29
EBADGHIFC -> -1
GHIFCBADE -> 26
IHGDABCFE -> 1
IFCBADGHE -> error
GDABCFIHE -> no output
IHEFCBADG -> no output
IFCBADEHG -> "quack"
Ваша оценка будет 14, потому что есть 14 различных целых чисел от 1 до 40, а именно 26 2 6 3 4 33 8 22 11 30 39 7 29 1
.
123654789