Введение
Вы преступник, которому поручено украсть секретные планы нового технологического стартапа Dejavu. Вы пробираетесь через заднюю стену, но находите дверь, для которой требуется булавка, чтобы открыть ее. Вы узнаете марку замка и знаете, что для этого требуется 5-значный пин-код, используя все цифры от 0 до 4. После каждой введенной цифры замок проверяет последние 5 введенных цифр и открывает, если код правильный. Вы должны пройти этот замок и быстро.
Суперперестановки в двух словах
Перестановка - это все возможные комбинации определенного набора цифр. например, все перестановки цифр 0, 1, 2:
012, 021, 102, 120, 201 и 210.
Если мы объединим все эти перестановки вместе, мы получим суперперестановку:
012021102120201210
эта суперперестановка содержит все перестановки 0, 1, 2, но можно сделать одну короче этой. Я собираюсь немного пропустить здесь, но самая короткая супермутация из этих цифр:
012010210
Для наших намерений и целей, это, по сути, самая короткая строка цифр, которая содержит все возможные перестановки этих цифр, т.е. суперпермутация.
задача
Ваша задача немного сложнее, чем в примере с суперперестановкой, как показано выше, потому что у вас есть еще две цифры для беспокойства. - Если вы не читали о суперперестановках, или мой приведенный выше пример немного неясен, я настоятельно рекомендую вам прочитать эту замечательную статью Патрика Хоннера на эту тему (этот вызов был в значительной степени вдохновлен его статьей, так что слава ему): https://www.quantamagazine.org/unscrabing-the-hidden-secrets-of-superpermutations-20190116/ . Ваша цель - написать максимально короткую программу, которая генерирует суперперестановку цифр от 0 до 4.
счет
Ваша программа не принимает никаких вводных данных и выдает суперперестановку цифр от 0 до 4. Эта результирующая суперперестановка должна быть распечатана на консоли или визуально отображена для пользователя в той степени, в какой это обеспечивает выбранный вами язык. Это не должно быть самой короткой из возможных перестановок, это просто должна быть действительная суперпермутация. По этой причине цель состоит в том, чтобы написать самую короткую программу с самой короткой супермутацией, поэтому вы должны рассчитать свой результат следующим образом:
размер файла (в байтах) * генерируемая длина суперперестановки (цифры)
например, если у меня была 40-байтовая программа, и моя суперперестановка имеет длину 153 цифры, мой результат будет:
40 * 153 = 6120
как всегда, цель состоит в том, чтобы получить этот счет как можно ниже.
шаблон
Вот как вы должны опубликовать свой ответ:
Язык | Гол
ссылка на код в рабочей среде (если возможно)
code snippet
объяснение кода и т. д.
Finalities
Это один из моих первых вопросов на этом сайте. Поэтому, пожалуйста, скажите мне, если я что-то упустил, или раздел моей задачи неясен. Спасибо, и получайте удовольствие от игры в гольф!