Моя домашняя работа - написать марсианское сочинение (см. Ниже) от 729 до 810 слов включительно. Ваша задача - написать программу, которая будет генерировать эссе.
история
Примерно на рубеже 20-го века спиритуалист Екатерина Элиз Мюллер якобы общалась с марсианами. Во время сомнамбуляционных трансов она выписывала марсианские сценарии. Психолог Теодор Флурни обнаружил, что ее марсианские письма очень похожи на ее родной французский язык, и в своей книге «От Индии до планеты Марс» он задокументировал марсианский алфавит Екатерины.
Следующее свободно основано на этом алфавите с расширенными мифами.
описание проблемы
Марсианский язык имеет 21 букву, показанную здесь рядом с каждым латинским эквивалентом:
К сожалению, для марсиан нет Unicode (несмотря на то, что Марс является частью вселенной), поэтому мы застряли на латинских символах.
В то время как в английском языке наши фонемы разбиваются на два основных типа (согласные / гласные), которые мы свободно отображаем на буквы, у марсианского есть три типа букв:
- Гласные: aeimnou
- Твердые согласные: bcdgkpt
- Мягкие согласные: fhlrsvz
В дополнение к этому марсианский язык содержит один знак пунктуации - точку.
Марсианский слово представляет собой набор из 3 -х до 9 букв. У всех марсианских слов есть по крайней мере один гласный, один жесткий согласный и один мягкий согласный (в любом расположении). Так , например, fng
, cdaz
, vpi
и pascal
являются марсианские слова.
Марсианское предложение представляет собой набор из 3 до 9 марсианских слов , разделенных пробелами и последующего период.
Марсианское пункт представляет собой набор 3 до 9 марсианских предложений , разделенных пробелами и последующим переводом строки.
Марсианское эссе представляет собой сборник марсианских пунктов , который не содержит смежные повторов слов.
Смежное слово повторение любой конструкции СС , где S представляет собой непрерывный набор слов. Обратите внимание, что это определение игнорирует границы предложений и абзацев.
Примеры
Пожалуйста, обратите внимание: за каждым примером следует один завершающий символ новой строки (поскольку все марсианские абзацы заканчиваются символом новой строки)
Не марсианский очерк
Lorem Ipsum Dolor Sit Amet. Quis Nostrud упражнение Ullamco Labour.
...по многим причинам. Этот пример иллюстрирует некоторые разные правила:
- Lorem не является марсианским словом, потому что в нем нет твердых согласных.
- амет не является марсианским словом, потому что в нем нет мягких согласных. (
m
это марсианская гласная). - quis не является марсианским словом, потому что в нем нет твердых согласных
- Quis не марсианское слово, потому что Q не марсианская буква
- Упражнение не марсианское слово, потому что оно имеет более 9 букв
- упражнение не марсианское слово, потому что х не марсианская буква
Марсианский эссе
fng cdaz vpi. Паскаль сломал основной. Попплеры имеют прекрасный вкус.
... потому что это марсианский абзац. Марсианский параграф содержит три марсианских предложения.
Не марсианский очерк
fng cdaz vpi. Паскаль сломал основной. бесплатные правила паскаля.
... так как free pascal rules.
не марсианин предложение, потому что ни free
ни rules
не марсианские слова, потому что они не имеют каких - либо жестких согласных звуков.
Марсианский эссе
fng cdaz vpi. Паскаль сломал основной. Попплеры имеют прекрасный вкус. cdaz vpi fng. основные перерывы паскаль. Попплеры бьют сильно. fng cdaz vpi.
... который содержит два марсианских абзаца. Предложение fng cdaz vpi.
появляется дважды, но это прекрасно.
Не марсианский очерк
Попплерс вкус фщ. cdaz vpi паскаль. сломал фщ cdaz впи. паскаль разбил планеты омикрон. Основные паники коз. впи пив впи.
... потому что конструкция fng. cdaz vpi pascal. broke fng cdaz vpi. [nl] pascal broke
представляет собой непрерывное повторение слов.
Вызов
Ваша задача состоит в том, чтобы написать функцию или программу, которая не принимает входные данные, которая выдает в качестве выходных данных мою домашнюю работу; то есть ваша программа должна генерировать марсианский эссе от 729 до 810 слов (включительно). Помните, что вывод вашей программы должен быть действительным марсианским эссе, но вам не нужно генерировать его случайно или по-разному каждый раз. Все, что вы делаете для создания действительного марсианского эссе, имеет значение.
Я написал программу на C ++ для проверки эссе, которые вам разрешено использовать.
Это код гольф. Самый короткий код в байтах побеждает. Стандартные лазейки запрещены.