Ваше завдання - генерувати дурницьке слово, яке можна вимовляти з вказаною кількістю "складів". Кожен раз, коли програма запускається, можливо, виникає інше дурницьке слово.
Вимовність
Вимовне слово складається із складів, які, в свою чергу, складаються з групи голосних, яка, можливо, затиснута між двома групами приголосних. Не всі звуки вимовляються у всіх положеннях, і оскільки це залежить від мови, ми будемо використовувати шаблони, зрозумілі для носіїв англійської мови
Запуск приголосних груп:
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 sn sp st th tr wh wr sch scr shm shr squr str thr
Групи голосних:
a e i o u ae ai ao au ea ee ei eu ia ie io oa oe oi oo oo ou ue ui
Закінчення груп приголосних:
bcdfglmnprstxz bt ch ck ct ft gh gn lb ld lf lk lll lm ln lp lt mb mn mp nk ng nt ph pt rb rc rc rd rf rg rk rl rm rn rt rv rz sh sk ss st zz lch lsh rst rth sch tch
Поєднання складів
І початкові, і закінчуючі групи приголосних взагалі необов’язкові, проте ви не можете розміщувати склад, що закінчується голосним, безпосередньо перед початком голосного.
Відмова від відповідальності
В інтересах простоти певні англійські слова насправді не можуть бути сформовані таким чином, як вакуум, ксилофон, мнемоніка, птеродактиль, красивий, бла, вони, вау та більшість множини.
Огляд
Можливі шаблони складів за допомогою цієї клавіші:
(SC) = вихідний приголосний; (V) = група голосних; (ЕС) = закінчення приголосного
Для одного складу:
- (SC) (V) (EC)
- (V) (EC)
- (SC) (V)
- (V)
З двома складами:
- (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) (EC) (SC) (V) (EC)
- (V) (EC) (SC) (V)
- (V) (EC) (V) (EC)
(V) (EC) (V)
(V) (SC) (V) (EC)
- (V) (SC) (V)
... і так далі
Приклади
1 склад
- цілісний
- туго
- кричущий
- eess
- shue
- оо
- сир
2 склади
- джазкрап
- вил
- їдять
- umba
- ола
- мати
- ingsoc
- greespheurz
- блешня
3 склади
- brokiompic
- білочка
- капітал
- opengtrass
- подвійне розмірковування
- великий брат
- фоебліаптму
- skolfblauquent
4 склади
- соломинок
- печворкзомбі
- prearneajoomie
- slephotoschou
- подвійний товар
Кодування
Введення: ціле число для кількості генеруються складів
Вихід: слово (мабуть) нісенітниця, яке довгі багато складів
Правила
- Потрібна певна форма (псуедо) випадковості. Усі комбінації складів повинні бути (теоретично) можливими для створення, хоча розподіл не повинно бути рівномірним.
- Ви можете припустити, що ваш генератор є аперіодичним, тому він не повинен бути математично можливим для створення кожного можливого слова (можливо, у реальності не буде достатньо тривалого періоду), і вам не потрібно надавати будь-які докази того, що ваш Фактично генератор може створити кожне можливе слово.
- Насправді ваш генератор повинен мати можливість створювати щонайменше 255 різних значень, тому ви не можете просто повернути 4 щоразу, коли генератор викликається.
- Що в кінцевому рахунку важливо, це те, що ви якось включаєте всі вищезгадані групи букв у свій код, що кожна група букв має ненульову ймовірність вибору, а кожна складова шаблону має ненульову ймовірність виникнення (якщо вона забезпечена справжньою випадковістю).
- Ви повинні підтримувати до 16 складних слів
- Окрім правил щодо поєднання складів, вихідне слово не повинно містити:
- 3 послідовні голосні (
a
e
i
o
u
; це може трапитися і дляqu
слів) - 3 послідовних збігу приголосних
- 3 послідовні голосні (
Удачі!
Зауважте, що це відмінне від слова " Створення вимовляючого слова" з кількох причин:
- Змінна кількість складів, зазначених введенням, а не суворою вимогою в 10 літер.
- Цей виклик додає невичерпні групи листів, які повинні бути (розумно) закодовані та дозволяють отримати більше варіантів складів, тому код не може бути скопійований з іншого виклику
- Вишкрібання. Потрібно сказати більше?
Я також забув перевірити обхід, але виявляється, це приносить на стіл достатньо нового, що це не має значення. Зрештою, існують сотні проблемних варіантів.