Ваша задача - создать бессмысленное слово, которое можно произносить с указанным количеством «слогов». Каждый раз, когда программа запускается, возможно, приводит к другому бессмысленному слову.
Pronounceability
Произносимое слово состоит из слогов, которые, в свою очередь, состоят из группы гласных, которая, возможно, зажата между двумя согласными группами. Не все звуки можно произносить во всех позициях, и поскольку это зависит от языка, мы будем использовать шаблоны, понятные для носителей английского языка.
Начальные согласные группы:
b c d f g h j k l m n p r s t v w y z bl brch cl cr dr fl f g g gl gn gr kn ph pr pr sc sh sl sl sm sn sp st th tr whr sch scr shm shr squ str thr
Группы гласных:
все в порядке, то есть, то есть, то есть, то, что вы хотите
Конечные согласные группы:
bcdfglmnprstxz bt ch ck ct ft gh gn lb ld lf lk ll lm ln lp lt mb mn mp nk ng nt n pn rt rt r r r r r r r r r r r r r r r r r r r r r r sh sh sp ss st zz lch lsh lth rch rrs rth sch tch
Объединение Слогов
Как начальная, так и конечная группы согласных являются необязательными, однако вы не можете поместить слог, заканчивающийся гласным, непосредственно перед тем, который начинается с гласного.
отказ
В интересах простоты, некоторые английские слова на самом деле не могут быть сгенерированы таким образом, такие как вакуум, ксилофон, мнемоника, птеродактиль, красивые, бла, они, вау, и большинство множественного числа.
обзор
Возможные шаблоны слогов с использованием этого ключа:
(SC) = начальный согласный; (V) = группа гласных; (EC) = согласный
Для одного слога:
- (SC), (V), (ЕС)
- (V), (ЕС)
- (SC), (V),
- (В)
С двумя слогами:
- (SC), (V), (ЕС) (SC), (V), (ЕС)
- (SC), (V), (ЕС) (SC), (V),
- (SC), (V), (ЕС) (В) (ЕС)
(SC), (V), (ЕС) (В)
(SC), (V), (SC), (V), (ЕС)
(SC), (V), (SC), (V),
(V), (ЕС) (SC), (V), (ЕС)
- (V), (ЕС) (SC), (V),
- (V), (ЕС) (В) (ЕС)
(V), (ЕС) (В)
(V), (SC), (V), (ЕС)
- (V), (SC), (V),
... и так далее
Примеры
1 слог
- charst
- Tigh
- shriegn
- EESS
- Shue
- оо
- cheezz
2 слога
- jazzcrap
- whylprog
- принимать пищу
- Умба
- ола
- иметь
- ангсоца
- greespheurz
- bleuspoo
3 слога
- brokiompic
- squirdshlicker
- столица
- opengtrass
- двоемыслие
- старший брат
- phoebliaptmoo
- skolfblauquent
4 слога
- strawishoepick
- patchworkzombie
- prearneajoomie
- slephotoschou
- doubleplusgood
кодирование
Ввод: целое число для количества генерируемых слогов
Вывод: (возможно) бессмысленное слово, которое много слогов долго
правила
- Требуется некоторая форма (псевдо) случайности. Все комбинации слогов должны (теоретически) генерироваться, хотя распределение не обязательно должно быть равномерным.
- Вы можете предположить, что ваш генератор является апериодическим, так что не должно быть математически возможным генерировать каждое возможное слово (в действительности у него может не быть достаточно длительного периода), и вам не нужно предоставлять какие-либо доказательства того, что ваш генератор может, фактически, произвести любое возможное слово.
- Ваш генератор должен действительно иметь возможность генерировать не менее 255 различных значений, поэтому вы не можете просто возвращать 4 каждый раз, когда вызывается генератор.
- В конечном счете важно, чтобы вы каким-то образом включили все вышеупомянутые буквенные группы в свой код, чтобы каждая буквенная группа имела ненулевую вероятность выбора, а каждый шаблон слога имел ненулевую вероятность появления (если он предоставлен с истинной случайностью).
- Вы должны поддерживать до 16 слоговых слов
- В дополнение к правилам объединения слогов, выходное слово не должно иметь:
- 3 последовательных гласных (
a
e
i
o
u
это может произойти дляqu
слов) - 3 последовательных согласных согласных
- 3 последовательных гласных (
Удачи!
Обратите внимание, что это отличается от « Произведите произносимое слово» по нескольким причинам:
- Переменное количество слогов, заданное вводом, а не строгое требование из 10 букв.
- Эта задача добавляет неисчерпывающие группы букв, которые должны быть (умно) закодированы, и допускает больше вариантов слогов, поэтому код нельзя просто скопировать из другой задачи.
- Squirdshlicker. Нужно ли мне сказать больше?
Я также забыл дурачить проверку, но оказалось, что это приносит достаточно нового в таблицу, что это не имеет значения. В конце концов, существуют сотни различных вариантов.