Moją pracą domową jest napisanie eseju marsjańskiego (patrz poniżej) zawierającego od 729 do 810 słów włącznie. Twoim zadaniem jest napisanie programu, który wygeneruje esej.
Historia
Na przełomie XIX i XX wieku spirytystka Catherine-Elise Müller rzekomo komunikowała się z Marsjanami. Podczas somnambulacyjnych transów pisała pisma marsjańskie. Psycholog Théodore Flourney odkryła, że jej pisma marsjańskie są bardzo podobne do jej ojczystego francuskiego, aw swojej książce „From India to the Planet Mars” udokumentował marsjański alfabet Catherine.
Poniższy tekst jest luźno oparty na tym alfabecie z rozszerzonymi mitami.
opis problemu
Język marsjański ma 21 liter, pokazanych tutaj obok każdego odpowiednika łacińskiego:
Niestety, nie ma Unicode dla Marsa (pomimo tego, że Mars jest częścią wszechświata), więc utknęliśmy przy użyciu znaków łacińskich.
Podczas gdy w języku angielskim nasze fonemy dzielą się na dwa główne typy (spółgłosek / samogłosek), które luźno mapujemy na litery, Martian ma trzy typy liter:
- Samogłoski: aeimnou
- Twarde spółgłosek: bcdgkpt
- Miękkie spółgłoski: fhlrsvz
Oprócz tego język marsjański zawiera pojedynczy znak interpunkcyjny - kropkę.
Martian słowo to zestaw 3 do 9 liter. Wszystkie słowa marsjańskie mają co najmniej jedną samogłoskę, jedną twardą spółgłoskę i jedną miękką spółgłoskę (w dowolnym układzie). Na przykład fng
, cdaz
, vpi
, i pascal
są marsjańskie słowa.
Zdanie Marsa jest zestaw 3 do 9 Marsjańskich słowy ograniczonymi przestrzeniami a następnie przez okres.
Ustęp Marsa to zestaw 3 do 9 zdań marsjańskich oddzielonych spacjami i zakończoną nową linią.
Martian esej jest zbiorem marsjańskich punktach, które nie zawiera ciągłych powtórzeń słów.
Ciągłe powtarzanie słowa jakikolwiek SS konstrukt, gdzie S jest ciągły zestaw słów. Zauważ, że ta definicja ignoruje granice zdań i akapitów.
Przykłady
Uwaga: po każdym przykładzie znajduje się jedna nowa linia (ponieważ wszystkie akapity marsjańskie kończą się nową linią)
Nie esej marsjański
Lorem ipsum dolor sit amet. quis nostrud Exercitation ullamco laboris.
...Z wielu powodów. Ten przykład ilustruje kilka różnych zasad:
- lorem nie jest słowem marsjańskim, ponieważ nie ma twardych spółgłosek.
- amet nie jest słowem marsjańskim, ponieważ nie ma miękkich spółgłosek. (
m
jest samogłoską marsjańską). - quis nie jest słowem marsjańskim, ponieważ nie ma twardych spółgłosek
- quis nie jest słowem marsjańskim, ponieważ q nie jest literą marsjańską
- Ćwiczenie nie jest słowem marsjańskim, ponieważ ma więcej niż 9 liter
- ćwiczenie nie jest słowem marsjańskim, ponieważ x nie jest literą marsjańską
Esej marsjański
fng cdaz vpi. pascal złamał podstawowy. popplersy świetnie smakują.
... ponieważ jest to akapit marsjański. Akapit marsjański zawiera trzy zdania marsjańskie.
Nie esej marsjański
fng cdaz vpi. pascal złamał podstawowy. zasady darmowego pascala.
... ponieważ free pascal rules.
nie jest to zdanie marsjańskie, ponieważ free
ani rules
słowa marsjańskie nie są, ponieważ nie mają twardych spółgłosek.
Esej marsjański
fng cdaz vpi. pascal złamał podstawowy. popplersy świetnie smakują. cdaz vpi fng. podstawowe przerwy pascal. popplers uderzają mocno. fng cdaz vpi.
... który zawiera dwa akapity marsjańskie. To zdanie fng cdaz vpi.
pojawia się dwa razy, ale jest w porządku.
Nie esej marsjański
popplers smakują fng. cdaz vpi pascal. złamał fng cdaz vpi. Pascal rozbił planety Omicron. podstawowe przeraża kozy. vpi piv vpi.
... ponieważ konstrukcja fng. cdaz vpi pascal. broke fng cdaz vpi. [nl] pascal broke
jest ciągłym powtarzaniem słów.
Wyzwanie
Twoim wyzwaniem jest napisanie funkcji lub programu, który nie przyjmuje żadnych danych wejściowych, co powoduje, że moje wyniki pracy domowej są moje; to znaczy, twój program powinien wygenerować esej marsjański zawierający od 729 do 810 słów (włącznie). Pamiętaj, że wyniki twojego programu muszą być prawidłowym esejem marsjańskim, ale nie musisz generować go losowo lub inaczej za każdym razem. Liczy się wszystko, co zrobisz, aby wygenerować prawidłowy esej marsjański .
Napisałem program w C ++, aby sprawdzić eseje, których możesz używać.
To jest kod golfowy. Najkrótszy kod w bajtach wygrywa. Standardowe luki zabronione.