Вступ
Ви злочинець, якому доручено викрасти таємні плани у нового технічного старту Dejavu. Ви підкрадаєтеся до задньої стінки, але знаходите двері, для її відкриття потрібна шпилька. Ви розпізнаєте марку блокування і знаєте, що потрібно 5-значний штифт, використовуючи всі цифри від 0 до 4. Після кожної введеної цифри блокування перевіряє останні 5 введених цифр і відкривається, якщо код правильний. Ви повинні пройти цей замок, і швидко.
Суперпермутації в горішці
Перестановка - це всі можливі комбінації певного набору цифр. наприклад, усі перестановки цифр 0, 1, 2:
012, 021, 102, 120, 201 та 210.
Якщо ми об'єднаємо всі ці перестановки разом, отримаємо суперпермутацію:
012021102120201210
ця суперпермутація містить усі перестановки 0, 1, 2, але можна зробити одну коротшу за цю. Я збираюся трохи пропустити тут, але найкоротша суперпермутація цих цифр:
012010210
Для наших намірів і цілей це, по суті, найкоротший рядок цифр, який містить усі можливі перестановки цих цифр, тобто суперпермутацію.
Завдання
Ваше завдання трохи складніше, ніж приклад суперпермутації, як показано вище, тому що ви маєте турбуватися ще про дві цифри. - Якщо ви ще не читали про суперпермутації, або мій приклад вище був трохи незрозумілим, я настійно пропоную вам прочитати цю чудову статтю Патріка Гоннера на цю тему (цей виклик був дуже сильно натхненний його статтею, тому кудо йому:) https://www.quantamagazine.org/unscrambling-the-hidden-secrets-of-superpermutations-20190116/ . Ваша мета - написати найкоротшу можливу програму, яка генерує суперпермутацію цифр від 0 до 4.
Оцінка балів
Ваша програма не приймає жодного вводу будь-якого виду і виробляє надвиміщення цифр від 0 до 4. Ця результуюча суперпермутація повинна бути надрукована на консоль або видимо відображена користувачеві в межах, передбачених вашою мовою на вибір. Це не повинно бути найкоротшою можливою перестановкою, вона повинна бути дійсною суперпермутацією. Через це мета полягає в тому, щоб написати найкоротшу програму з найкоротшим суперпермутацією, тож слід обчислити свій бал так:
розмір файлу (байти) * згенерована довжина суперпермутації (цифри)
Наприклад, якщо я мав програму на 40 байт, і моя суперпермутація становить 153 цифри, моя оцінка буде такою:
40 * 153 = 6120
як завжди, мета полягає в тому, щоб цей показник був максимально низьким.
Шаблон
Ось як слід опублікувати свою відповідь:
Мова | Оцінка
посилання на код у робочому середовищі (якщо можливо)
code snippet
пояснення коду тощо.
Фінали
Це одне з моїх перших питань на цьому сайті. Тож будь ласка, скажіть мені, якщо я щось пропускаю, або розділ мого виклику незрозумілий. Дякую, і весело гольфу!