kavram
İngiliz alfabesini hangi yollarla çırpın, böylece melodiyi bozmadan hala Twinkle Twinkle Little Star'a şarkı söylesin?
kurallar
Değişim
Aşağıdaki kümelerin her birinde bulunan harflerin, ayar parçalarını bozmadan, varsayılan olarak serbestçe değiştirilebileceğini varsayalım:
- {A, J, K}
- {B, C, D, E, G, P, T, V, Z}
- {I, Y}
- {Q, U}
- {S, X, F}
- {M, N}
- Bu nedenle H, L, O, R ve W yerine kilitlenir
Çıktı
Programın, yukarıdaki şartların yerine getirilmesi koşuluyla İngilizce alfabenin tamamını içeren tek bir RANDOM dizesi (veya karakter listesi) çıkarması gerekir. Programınızın hangi dizginin çıkacağını (ekim görmezden gelirsek) ne olacağını tahmin etmenizin bir yolu olmamalıdır, yani onu sadece kodlayamazsınız.
Programınızın, her birini oluşturma olasılıkları (mutlaka tek biçimli değil) olması gerekir ! ⋅ 3 ! ⋅ 3 ! ⋅ 2 ! ⋅ 2 ! ⋅ 2 ! = 104509440 çıkışlar.
Boşluk, sınırlayıcılar veya dava ile ilgili özel bir formatlama kısıtlaması yoktur, sadece tutarlı olun.
Hedef
En az bayt kazanır!
Örnekler:
- KCDBPSVHIAJLMNOZQRXGUEWFYT
- A, G, Z, V, W, X, C, H, Y, K, J, L, N, E, O, T, U, R, S, D, Q, B, W, F, I, E
- KVTDCFBHIJALNMOPURSZQGWXYE
- jcdebxthikalnmogursvq pwfyz
- ABCDEFGHIJKLMNOPQRSTUVWXYZ
Nonexample:
- HLWROABCDEFZXYGIJKMNPQTSVU
Kavram İspatı: (Python3, 529 bytes)
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
, başkalarıyla kafiye yok "yerinde kilitlenmesini"?