Вступление
Почти все знакомы с проблемой коммивояжера (TSP). Задача состоит в том, чтобы, учитывая список N
городов, найти минимальный гамильтонов цикл, то есть кратчайший путь, который посещает каждый город и возвращается к началу полного круга. Это не то, о чем этот вызов. Эта задача состоит в том, чтобы реализовать Чак Норрис решения для ТСПА:
Чак Норрис
O(1)
вовремя решил проблему с коммивояжером : разбил продавца на N штук; пинайте каждую часть в другой город.
Вызов
Чтобы решить TSP таким образом, нам нужен достаточно надежный продавец, который не будет уклоняться от легкомыслия, такого как расчленение; ряд городов для посещения; набор продуктов для продажи; конкретный метод расчленения; и расчет для оценки.
Спецификация
- Города
N
количество сайтов, которые посетит наш продавец
- коммивояжер
- Основная программа или функция
- Написано на языке
X
- С длиной мод
N
равной0
- Товары
- расчленение
- Нарезка продавца на
N
непрерывные куски равной длины - Каждая часть должна быть действительной функцией или программой на языке
X
- Нарезка продавца на
- Выход
- Когда выполнено, продавец должен вывести,
Chuck Norris
а нарезанные кусочки должны вывести отдельный продукт. - Допускается только дополнительный пробел
- Когда выполнено, продавец должен вывести,
- счет
- Длина
L
Продавца в байтах, деленная на количество городовN
, в квадрате. Score = L/(N*N)
- Наименьший счет выигрывает
- Пожалуйста, укажите 3 значащие цифры при публикации десятичного счета
- Длина
Примеры
- Этот продавец посещает 3 города так
N=3
и имеет длину 9 такL=9
. Таким образом, оценка для этого ответа будетS = 9 / (3 * 3) = 9/9 = 1
.- Обратите внимание, что продавец и каждый нарезанный кусок (всего их 3) должны быть действительными программами или функциями на одном языке.
Program -> Output
------- ------
aaaBBBccc -> Chuck Norris
aaa -> Helium
BBB -> Iridium
ccc -> Tennessine
N=4
иL=20
такS=20/16=1.25
Program -> Output
------- ------
aaaaaBBBBBcccccDDDDD -> Chuck Norris
aaaaa -> Hydrogen
BBBBB -> Cadmium
ccccc -> Mercury
DDDDD -> Iron
code-challenge
source-layout
NonlinearFruit
источник
источник
ElementData
Разрешены ли встроенные модули, подобные Mathematica ? (Я сомневаюсь, что это сэкономит много, но я не знаю.)Ответы:
CJam, L = 1482, N = 114, счет 0,114
Попробуйте онлайн!
Каждая программа имеет длину 13 байт. Здесь они разбиты на отдельные строки:
Недостающими элементами являются Darmstadtium, Praseodymium, Protactinium и Rutherfordium, которые имеют длину 12 или 13 символов, что означает, что я не могу напечатать их по 13 символов каждый.
Идея состоит в том, что первые несколько программ, которые печатают элементы с короткими именами, используют свои посторонние символы для построения строки
Chuck Norri
в переменнойL
, что не влияет на вывод при использовании самостоятельно. Затем последняя программа проверяет, есть ли что-нибудь в стеке, и использует ее для выбора междуL
(плюсs
) иXenon
.Несколько дополнительных байтов сохраняются с использованием только что добавленного символа в
L
качестве части имени элемента, особенно дляC
arbon,N
ickel, Copper
и Silver
.источник
Python, L = 2596, N = 118, оценка = 0,186
Длина каждого среза равна 22, что делает его довольно длинным.
Вот продавец после нарезки и нарезки кубиками:
Обновить
источник
lambda:"Actinium";print""
выводит Actinium? Это может быть особенным для Python 3?Actinium
. Онprint ""
не делает ничего полезного после того, как продавец был расчленен.