Twoim zadaniem jest wygenerowanie nonsensownego słowa, które można rozsądnie wymówić przy użyciu określonej liczby „sylab”. Każde uruchomienie programu może skutkować innym bezsensownym słowem.
Zdolność do wymawiania
Wymawiane słowo składa się z sylab, które z kolei składają się z grupy samogłoskowej, która prawdopodobnie jest umieszczona pomiędzy dwiema grupami spółgłoskowymi. Nie wszystkie dźwięki są wymawiane we wszystkich pozycjach, a ponieważ zależy to od języka, użyjemy wzorców zrozumiałych dla osób mówiących po angielsku
Początkowe grupy spółgłoskowe:
b c d f g h j k l m n p r s t v w y z bl br ch cl cr dr fl fr gh gl gn gr kn ph pl pr qu sc sh sk sl sm sm sp sp st th tr wh wr sch scr shm shr squ str thr thr
Grupy samogłoskowe:
a e o o ae ai ao au ea ee ei eu ia ie io oa oe oi oo ou ue ui
Kończące grupy Consonant:
bcdfglmnprstxz bt ch ck ct ft gh gn lb ld lf lk ll lm ln lp lt mb mn mp nk ng nt ph pt rb rc rd rf rg rk rk rl rl rm rn rp rt rv rz sh sk sp ss st zz lch lsh lth rch rsh rst rth sch tch
Łączenie sylab
Zarówno początkowa, jak i końcowa grupa spółgłoskowa są na ogół opcjonalne, jednak nie można umieszczać sylaby kończącej się samogłoską bezpośrednio przed tą rozpoczynającą się od samogłoski.
Zrzeczenie się
W trosce o prostotę, niektóre angielskie słowa nie mogą być generowane w ten sposób, takie jak próżnia, ksylofon, mnemonik, pterodaktyl, piękny, bla, one, wow, i większość liczby mnogiej.
Przegląd
Możliwe wzorce sylab przy użyciu tego klucza:
(SC) = początkowa spółgłoska; (V) = grupa samogłosek; (EC) = kończąca spółgłoska
Dla jednej sylaby:
- (SC) (V) (WE)
- (V) (WE)
- (SC) (V)
- (V)
Z dwiema sylabami:
- (SC) (V) (EC) (SC) (V) (EC)
- (SC) (V) (EC) (SC) (V)
- (SC) (V) (EC) (V) (EC)
(SC) (V) (EC) (V)
(SC) (V) (SC) (V) (EC)
(SC) (V) (SC) (V)
(V) (WE) (SC) (V) (WE)
- (V) (WE) (SC) (V)
- (V) (WE) (V) (WE)
(V) (WE) (V)
(V) (SC) (V) (WE)
- (V) (SC) (V)
... i tak dalej
Przykłady
1 sylaba
- charst
- uda
- shriegn
- eess
- shue
- z oo
- Cheezz
2 sylaby
- jazzcrap
- whylprog
- jedzenie
- umba
- ola
- mieć
- ingsoc
- greespheurz
- bleuspoo
3 sylaby
- brokiompic
- squirdshlicker
- kapitał
- opengtrass
- dwuznaczne
- duży brat
- phoebliaptmoo
- skolfblauquent
4 sylaby
- Strawishoepick
- patchworkzombie
- prearneajoomie
- slephotoschou
- doubleplusgood
Kodowanie
Dane wejściowe: liczba całkowita liczby sylab do wygenerowania
Wyjście: (prawdopodobnie) nonsensowne słowo, które ma wiele sylab
Zasady
- Wymagana jest jakaś forma losowości (psuedo). Wszystkie kombinacje sylab powinny być (teoretycznie) możliwe do wygenerowania, chociaż rozkład nie musi być jednolity.
- Możesz założyć, że twój generator jest nieokresowy, więc nie musi być matematycznie możliwe wygenerowanie każdego możliwego słowa (w rzeczywistości może nie mieć wystarczająco długiego okresu) i nie musisz przedstawiać żadnego dowodu, że twój generator może w rzeczywistości wygenerować każde możliwe słowo.
- Twój generator musi być w stanie wygenerować co najmniej 255 różnych wartości, więc nie możesz po prostu zwrócić 4 za każdym razem, gdy generator jest wywoływany.
- Ostatecznie ważne jest to, że w jakiś sposób włączysz wszystkie powyższe grupy liter do swojego kodu, że każda grupa liter ma niezerowe prawdopodobieństwo, że zostanie wybrany, a każdy wzorzec sylaby ma niezerowe prawdopodobieństwo wystąpienia (jeśli zostanie podana prawdziwa losowość).
- Musisz obsłużyć do 16 sylab słów
- Oprócz zasad łączenia sylab słowo wyjściowe nie może mieć:
- 3 kolejne samogłoski (
a
e
i
o
u
; może się tak zdarzyć w przypadkuqu
słów) - 3 kolejne dopasowane spółgłoski
- 3 kolejne samogłoski (
Powodzenia!
Zauważ, że różni się to od Wygeneruj wymawiane słowo z kilku powodów:
- Zmienna liczba sylab określona przez dane wejściowe zamiast ścisłego wymogu 10 liter.
- To wyzwanie dodaje niewyczerpujące grupy liter, które muszą być (sprytnie) zakodowane i pozwala na więcej wariantów sylab, więc kodu nie można po prostu skopiować z innego wyzwania
- Squirdshlicker. Czy muszę powiedzieć więcej?
Zapomniałem też oszukiwać, ale okazuje się, że przynosi to wystarczająco dużo nowego do stołu, że to nie ma znaczenia. W końcu istnieją setki różnych wariantów quine.