I miei compiti sono scrivere un saggio marziano (vedi sotto) tra 729 e 810 parole, compreso. Il tuo compito è scrivere un programma che genererà il saggio.
Storia
Verso la fine del XX secolo, la spiritualista Catherine-Elise Müller avrebbe comunicato con i marziani. Durante trance sonnambulanti, scriveva sceneggiature marziane. La psicologa Théodore Flourney ha scoperto che i suoi scritti marziani erano molto simili al suo nativo francese e nel suo libro "Dall'India al pianeta Marte", ha documentato l'alfabeto marziano di Catherine.
Quanto segue è vagamente basato su quell'alfabeto con un mito esteso.
Descrizione del problema
La lingua marziana ha 21 lettere, mostrate qui accanto a ciascun equivalente latino:
Sfortunatamente, non c'è Unicode per Martian (nonostante Marte faccia parte dell'universo), quindi siamo bloccati usando caratteri latini.
Mentre in inglese i nostri fonemi si suddividono in due tipi principali (consonanti / vocali) che associamo liberamente alle lettere, Martian ha tre tipi di lettere:
- Le vocali: aeimnou
- Le consonanti dure: bcdgkpt
- Le consonanti molli: fhlrsvz
Inoltre, la lingua marziana contiene un solo segno di punteggiatura: il punto.
Una parola marziana è un insieme di 3-9 lettere. Tutte le parole marziane hanno almeno una vocale, una consonante dura e una consonante dolce (in qualsiasi accordo). Ad esempio, fng, cdaz, vpi, e pascalsono parole marziane.
Una frase marziana è un insieme di 3 a 9 parole marziane delimitate da spazi e seguite da un punto.
Un paragrafo marziano è un insieme di 3 a 9 frasi marziane delimitate da spazi e seguite da una nuova riga.
Un saggio marziano è una raccolta di paragrafi marziani che non contiene ripetizioni di parole contigue.
Una ripetizione contigua di parole è qualsiasi costrutto SS in cui S è un insieme contiguo di parole. Si noti che questa definizione ignora i limiti di frase e paragrafo.
Esempi
Nota: c'è una sola nuova riga finale dopo ogni esempio (poiché tutti i paragrafi marziani terminano con una nuova riga)
Saggio non marziano
Lorem ipsum dolor sit amet. quis nostrud esercizio ullamco laboris.
...per molte ragioni. Questo esempio è per illustrare alcune regole varie:
- lorem non è una parola marziana perché non ha consonanti dure.
- amet non è una parola marziana perché non ha consonanti leggere. (
mè una vocale marziana). - quis non è una parola marziana perché non ha consonanti dure
- quis non è una parola marziana perché q non è una lettera marziana
- esercizio non è una parola marziana perché ha più di 9 lettere
- esercizio non è una parola marziana perché x non è una lettera marziana
Saggio marziano
fng cdaz vpi. Pascal ha rotto di base. i popplers hanno un ottimo sapore.
... perché è un paragrafo marziano. Il paragrafo marziano contiene tre frasi marziane.
Saggio non marziano
fng cdaz vpi. Pascal ha rotto di base. regole pasquali gratuite.
... dal momento che free pascal rules.non è una frase marziana, perché freené lo rulessono né le parole marziane, perché non hanno consonanti difficili.
Saggio marziano
fng cdaz vpi. Pascal ha rotto di base. i popplers hanno un ottimo sapore. cdaz vpi fng. pause di base pascal. popplers pugno duro. fng cdaz vpi.
... che contiene due paragrafi marziani. La frase fng cdaz vpi.appare due volte, ma va benissimo.
Saggio non marziano
popplers taste fng. cdaz vpi pascal. ha rotto fng cdaz vpi. pascal ha rotto i pianeti di omicron. capre spaventose di base. vpi piv vpi.
... perché il costrutto fng. cdaz vpi pascal. broke fng cdaz vpi. [nl] pascal brokeè una ripetizione contigua di parole.
Sfida
La tua sfida è scrivere una funzione o un programma che non accetta input, che produce come output i miei compiti; cioè, il tuo programma dovrebbe generare un saggio marziano tra 729 e 810 parole (incluso). Tieni presente che l'output del tuo programma deve essere un saggio marziano valido, ma non è necessario generarlo in modo casuale o diverso ogni volta. Tutto ciò che fai per generare un conteggio di saggi marziani valido .
Ho scritto un programma C ++ per verificare i saggi che sei autorizzato a utilizzare.
Questo è il codice golf. Vince il codice più breve in byte. Scappatoie standard non consentite.
