Pojęcie
W jaki sposób możesz wymieszać alfabet angielski, aby można go było śpiewać do melodii Twinkle Twinkle Little Star bez rujnowania melodii?
Zasady
Zamiana
Załóżmy po prostu, że litery zawarte w każdym z poniższych zestawów można domyślnie dowolnie zamieniać bez rujnowania melodii:
- {A, J, K}
- {B, C, D, E, G, P, T, V, Z}
- {I, Y}
- {Q, U}
- {S, X, F}
- {M, N}
- Dlatego H, L, O, R i W są zablokowane na miejscu
Wydajność
Program musi wypisać pojedynczy ciąg RANDOM (lub listę znaków) zawierający pełny alfabet angielski w dowolnej kolejności, pod warunkiem, że kolejność spełnia powyższe warunki. Nie powinno być możliwości przewidzenia, który ciąg zostanie wygenerowany przez program (jeśli zignorujemy inicjowanie), co oznacza, że nie można go po prostu zakodować na stałe.
Twój program musi mieć pewne pozytywne prawdopodobieństwo (niekoniecznie jednakowe) wygenerowania każdego z wyników.
Nie ma żadnych szczególnych ograniczeń formatowania dotyczących odstępów, separatorów lub wielkości liter, po prostu zachowaj spójność.
Cel
Wygrywa najmniej bajtów!
Przykłady:
- 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, mi
- KVTDCFBHIJALNMOPURSZQGWXYE
- jcdebxthikalnmogursvq pwfyz
- ABCDEFGHIJKLMNOPQRSTU VWXYZ
Brak przykładu:
- HLWROABCDEFZXYGIJKMNPQTSVU
Dowód koncepcji: (Python3, 529 bajtów)
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])
Z
być „zablokowane na miejscu”, nie rymuje się z innymi?