- 22, Oct 2024
- #1
Концепция
Какими способами можно изменить английский алфавит так, чтобы его можно было петь под мелодию «Мерцай, мерцай, маленькая звездочка», не испортив мелодию?
Правила
Обмен
Давайте просто предположим, что буквы, содержащиеся в каждом из следующих наборов, по умолчанию можно свободно менять местами, не испортив мелодию:
- { А, Дж, К }
- { B, C, D, E, G, P, T, V, Z }
- { Я, Ю }
- { Q, У }
- { С, Х, Ф }
- { М, Н }
- Поэтому H, L, O, R и W зафиксированы на месте.
Выход
Программе необходимо вывести одну СЛУЧАЙНУЮ строку (или список символов), содержащую полный английский алфавит в любом порядке, при условии, что порядок удовлетворяет вышеуказанным условиям. У вас не должно быть возможности предсказать, какую строку выведет ваша программа (если мы игнорируем заполнение), то есть вы не можете просто жестко запрограммировать ее.
Ваша программа должна иметь некоторую положительную вероятность (не обязательно равномерную) генерации каждой из \$9! \cдот 3! \cдот 3! \cдот 2! \cдот 2! \cдот 2! = 104509440 \$ выходов.
Никаких особых ограничений форматирования в отношении пробелов, разделителей или регистра нет, просто будьте последовательны.
Цель
Наименьшее количество байтов выигрывает!
Примеры:
- KCDBPSVHIAJLMNOZQRXGUEWFYT
- A,G,Z,V,P,X,C,H,Y,K,J,L,N,M,O,T,U,R,S,D,Q,B,W,F,I, Э
- KVTDCFBHIJALNMOPURSZQGWXYE
- j c d e b x th h i k a l n mo g u r s v q p w f y z
- ABCDEFGHIJKLMNOPQRSTUVWXYZ
Непример:
- HLWROABCDEFZXYGIJKMNPQTSVU
Доказательство концепции: (Python3, 529 байт)
import random
g1 = ['A', 'J', 'K']
g2 = ['B', 'C', 'D', 'E', 'G', 'P', 'T', 'V', 'Z']
g3 = ['I', 'Y']
g4 = ['Q', 'U']
g5 = ['S', 'X', 'F']
g6 = ['M', 'N']
random.shuffle(g1)
random.shuffle(g2)
random.shuffle(g3)
random.shuffle(g4)
random.shuffle(g5)
random.shuffle(g6)
print(g1[0] + g2[0] + g2[1] + g2[2] + g2[3] + g5[0] + g2[4] + 'H' + g3[0] + g1[1] + g1[2] + 'L' + g6[0] + g6[1] + 'O' + g2[5] + g4[0] + 'R' + g5[1] + g2[6] + g4[1] + g2[7] + 'W' + g5[2] + g3[1] + g2[8])
#код-гольф #строка #случайный