概念
英語のアルファベットをどのようにスクランブルして、曲を壊さずにトゥインクルトゥインクルリトルスターに合わせて歌うことができますか?
ルール
スワッピング
次の各セットに含まれる文字は、曲を損なわずにデフォルトで自由に交換できると仮定してみましょう。
- {A、J、K}
- {B、C、D、E、G、P、T、V、Z}
- {I、Y}
- {Q、U}
- {S、X、F}
- {M、N}
- したがって、H、L、O、R、およびWは所定の位置にロックされます
出力
プログラムは、順序が上記の条件を満たしている限り、任意の順序で完全な英語のアルファベットを含む単一のランダム文字列(または文字のリスト)を出力する必要があります。プログラムがどの文字列を出力するかを予測する方法はないはずです(シードを無視する場合)。つまり、ハードコーディングすることはできません。
あなたのプログラムは、それぞれを生成するいくつかの正の確率(必ずしも均一ではない)を持っている必要があります!⋅ 3 !⋅ 3 !⋅ 2 !⋅ 2 !⋅ 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、 E
- KVTDCFBHIJALNMOPURSZQGWXYE
- jcdebxthikalnmogursvq pwfyz
- 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])
Z
「所定の位置にロック」されるべきではなく、他の人と韻を踏むことはありませんか?