Моє домашнє завдання - написати марсіанський твір (див. Нижче) від 729 до 810 слів включно. Ваше завдання - написати програму, яка генерує есе.
Історія
На рубежі XX століття спіритуалістка Катрін-Еліза Мюллер нібито спілкувалася з марсіанами. Під час сомнамбулантних трансів вона писала б марсіанські сценарії. Психолог Теодор Флорні виявив, що її марсіанські твори дуже схожі на її рідну французьку мову, і у своїй книзі "Від Індії до планети Марс" він задокументував марсіанський алфавіт Катерини.
Далі слабко базується на цьому алфавіті з розширеним міфосом.
опис проблеми
Марсіанська мова має 21 букву, показану тут поруч із кожним еквівалентом латини:
На жаль, для Марсіана немає Unicode (незважаючи на те, що Марс є частиною Всесвіту), тому ми застрягли, використовуючи латинські символи.
Якщо в англійській мові наші фонеми розпадаються на два основні типи (приголосні / голосні), які ми вільно відображаємо на літери, у Марсіана є три типи літер:
- Голосні звуки: aeimnou
- Жорсткі приголосні: bcdgkpt
- М’які приголосні: fhlrsvz
Крім цього, марсіанська мова містить єдиний розділовий знак - період.
Марсіанський слово являє собою набір з 3 -х до 9 букв. Усі марсіанські слова містять принаймні одну голосну, одну тверду приголосну та одну м'яку приголосну (у будь-якому домовленості). Так , наприклад, fng
, cdaz
, vpi
і pascal
є марсіанські слова.
Марсіанський пропозицію являє собою набір з 3 до 9 марсіанських слів , розділених пробілами і подальшого період.
Марсіанський пункт являє собою набір 3 до 9 марсіанських пропозицій , розділених пробілами і подальшим переведенням рядка.
А Марсіанський есе являє собою збірник марсіанських пунктів , який не містить суміжні повторів слів.
А Суміжне слово повторення будь-якої конструкції СС , де S являє собою безперервний набір слів. Зауважте, що це визначення ігнорує межі речення та абзацу.
Приклади
Зверніть увагу: за кожним прикладом є одна затримка нового рядка (оскільки всі абзаци Марсія закінчуються новим рядком)
Не марсіанський нарис
lorem ipsum dolor sit amet. quis nostrud напруга ullamco Laboris.
...з багатьох причин. Цей приклад - проілюструвати деякі різні правила:
- lorem - не марсіанське слово, оскільки воно не має твердих приголосних.
- amet - це не марсіанське слово, оскільки воно не має м'яких приголосних. (
m
є марсіанським голосним). - quis - це не марсіанське слово, оскільки воно не має твердих приголосних
- quis - не марсіанське слово, оскільки q - це марсіанське письмо
- Вправа - це не марсіанське слово, оскільки воно містить більше 9 букв
- вправа не є марсіанським словом, оскільки х - не марсіанське письмо
Марсіанський нарис
fng cdaz vpi. паскаль зламався основний. макаронні смаки.
... тому що це марсіанський абзац. Марсіанський абзац містить три марсіанські речення.
Не марсіанський нарис
fng cdaz vpi. паскаль зламався основний. безкоштовні правила Pascal.
... так як free pascal rules.
НЕ марсіанин пропозицію, тому що ні free
ні rules
НЕ марсіанські слова, тому що вони не мають жодних - або жорстких приголосних звуків.
Марсіанський нарис
fng cdaz vpi. паскаль зламався основний. макаронні смаки. cdaz vpi fng. основні перерви паскаль. поплери сильно пробивають. fng cdaz vpi.
... який містить два марсіанські абзаци. Речення fng cdaz vpi.
з’являється двічі, але це абсолютно чудово.
Не марсіанський нарис
макаронні смаки fng. cdaz vpi pascal. зламав fng cdaz vpi. Паскаль розбив планети омікрон. основні лякають козлів. vpi piv vpi.
... тому що конструкція fng. cdaz vpi pascal. broke fng cdaz vpi. [nl] pascal broke
- це суміжне повторення слова.
Виклик
Ваше завдання полягає в тому, щоб написати функцію або програму, яка не приймає жодних даних, яка буде результатом мого домашнього завдання; тобто ваша програма повинна генерувати марсіанські нариси від 729 до 810 слів (включно). Майте на увазі, висновок вашої програми повинен бути дійсним марсіанським есе, але не потрібно генерувати його випадковим чином чи іншим разом кожного разу. Все, що ви робите для створення дійсного марсіанського нарису .
Я написав програму C ++ для перевірки рефератів, якими ви можете користуватися.
Це код гольфу. Виграє найкоротший код у байтах. Стандартні лазівки заборонені.