Concept
De quelles manières pouvez-vous brouiller l'alphabet anglais pour qu'il puisse toujours être chanté sur l'air Twinkle Twinkle Little Star sans ruiner l'air?
Règles
Échange
Supposons simplement que les lettres contenues dans chacun des ensembles suivants puissent être échangées librement par défaut sans ruiner la mélodie:
- {A, J, K}
- {B, C, D, E, G, P, T, V, Z}
- {I, Y}
- {Q, U}
- {S, X, F}
- {M, N}
- Par conséquent, H, L, O, R et W sont verrouillés en place
Sortie
Le programme doit sortir une seule chaîne RANDOM (ou liste de caractères) contenant l'alphabet anglais complet dans n'importe quel ordre à condition que cet ordre satisfasse aux conditions ci-dessus. Il ne devrait y avoir aucun moyen de prédire quelle chaîne votre programme générera (si nous ignorons l'amorçage), ce qui signifie que vous ne pouvez pas simplement le coder en dur.
Votre programme doit avoir une probabilité positive (pas nécessairement uniforme) de générer chacun des sorties.
Il n'y a pas de restrictions de formatage particulières concernant l'espacement, les délimiteurs ou la casse, soyez juste cohérent.
Objectif
Le moins d'octets gagne!
Exemples:
- 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, E
- KVTDCFBHIJALNMOPURSZQGWXYE
- jcdebxthikalnmogursvq pwfyz
- ABCDEFGHIJKLMNOPQRSTUVWXYZ
Non exemple:
- HLWROABCDEFZXYGIJKMNPQTSVU
Preuve de concept: (Python3, 529 octets)
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
être «enfermé», ça ne rime pas avec les autres?