Per favore, fai i miei compiti marziani


37

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:

inserisci qui la descrizione dell'immagine

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.


4
Popplers ha un ottimo sapore ... È quel riferimento futurama : D
DJMcMayhem

2
Inoltre, anche se ho risposto a DrMcMoylex in chat, solo per la cronaca qui ... sì. (FYI, il requisito di parole 729 e 810, che è compreso tra 1000 e 1100 parole nella base 9, è anche un riferimento indiretto )
H Walters

1
Ho fatto un po 'di scherzetto per ottenere uno spettacolo.
Jonathan Allan,

9
Penso che questa sia la prima volta che vedo una domanda "Fai i miei compiti per me" su codegolf. Di solito quelli sono su StackOverflow. :-)
Ray

4
"Basic
Scares Goats

Risposte:


14

05AB1E , 25 24 22 20 byte

-2 byte grazie a Emigna (significativo rifattore, grazie amico).

A7£œJðý72ô€¨'.«9ô9£»

Provalo online!

A7£                     # Push first 7 letters of the alphabet.
   œJðý                 # All 5040 permutations of "abcdefg" joined by spaces.
       72ô              # Split into pieces of 72 (Sentences).
          €             # For each piece...
           ¨'.«         # Lop of the last char and concat a period.
               9ô       # Split into pieces of 9 (paragraphs).
                 9£     # Take only the first 9 paragraphs.
                   »    # Join by newlines and implicitly print.

Si scopre che la versione da 810 parole è più corta della versione da 729 parole.

Produzione:

abcdefg abcdegf abcdfeg abcdfge abcdgef abcdgfe abcedfg abcedgf abcefdg. abcefgd abcegdf abcegfd abcfdeg abcfdge abcfedg abcfegd abcfgde abcfged. abcgdef abcgdfe abcgedf abcgefd abcgfde abcgfed abdcefg abdcegf abdcfeg. abdcfge abdcgef abdcgfe abdecfg abdecgf abdefcg abdefgc abdegcf abdegfc. abdfceg abdfcge abdfecg abdfegc abdfgce abdfgec abdgcef abdgcfe abdgecf. abdgefc abdgfce abdgfec abecdfg abecdgf abecfdg abecfgd abecgdf abecgfd. abedcfg abedcgf abedfcg abedfgc abedgcf abedgfc abefcdg abefcgd abefdcg. abefdgc abefgcd abefgdc abegcdf abegcfd abegdcf abegdfc abegfcd abegfdc. abfcdeg abfcdge abfcedg abfcegd abfcgde abfcged abfdceg abfdcge abfdecg.
abfdegc abfdgce abfdgec abfecdg abfecgd abfedcg abfedgc abfegcd abfegdc. abfgcde abfgced abfgdce abfgdec abfgecd abfgedc abgcdef abgcdfe abgcedf. abgcefd abgcfde abgcfed abgdcef abgdcfe abgdecf abgdefc abgdfce abgdfec. abgecdf abgecfd abgedcf abgedfc abgefcd abgefdc abgfcde abgfced abgfdce. abgfdec abgfecd abgfedc acbdefg acbdegf acbdfeg acbdfge acbdgef acbdgfe. acbedfg acbedgf acbefdg acbefgd acbegdf acbegfd acbfdeg acbfdge acbfedg. acbfegd acbfgde acbfged acbgdef acbgdfe acbgedf acbgefd acbgfde acbgfed. acdbefg acdbegf acdbfeg acdbfge acdbgef acdbgfe acdebfg acdebgf acdefbg. acdefgb acdegbf acdegfb acdfbeg acdfbge acdfebg acdfegb acdfgbe acdfgeb.
acdgbef acdgbfe acdgebf acdgefb acdgfbe acdgfeb acebdfg acebdgf acebfdg. acebfgd acebgdf acebgfd acedbfg acedbgf acedfbg acedfgb acedgbf acedgfb. acefbdg acefbgd acefdbg acefdgb acefgbd acefgdb acegbdf acegbfd acegdbf. acegdfb acegfbd acegfdb acfbdeg acfbdge acfbedg acfbegd acfbgde acfbged. acfdbeg acfdbge acfdebg acfdegb acfdgbe acfdgeb acfebdg acfebgd acfedbg. acfedgb acfegbd acfegdb acfgbde acfgbed acfgdbe acfgdeb acfgebd acfgedb. acgbdef acgbdfe acgbedf acgbefd acgbfde acgbfed acgdbef acgdbfe acgdebf. acgdefb acgdfbe acgdfeb acgebdf acgebfd acgedbf acgedfb acgefbd acgefdb. acgfbde acgfbed acgfdbe acgfdeb acgfebd acgfedb adbcefg adbcegf adbcfeg.
adbcfge adbcgef adbcgfe adbecfg adbecgf adbefcg adbefgc adbegcf adbegfc. adbfceg adbfcge adbfecg adbfegc adbfgce adbfgec adbgcef adbgcfe adbgecf. adbgefc adbgfce adbgfec adcbefg adcbegf adcbfeg adcbfge adcbgef adcbgfe. adcebfg adcebgf adcefbg adcefgb adcegbf adcegfb adcfbeg adcfbge adcfebg. adcfegb adcfgbe adcfgeb adcgbef adcgbfe adcgebf adcgefb adcgfbe adcgfeb. adebcfg adebcgf adebfcg adebfgc adebgcf adebgfc adecbfg adecbgf adecfbg. adecfgb adecgbf adecgfb adefbcg adefbgc adefcbg adefcgb adefgbc adefgcb. adegbcf adegbfc adegcbf adegcfb adegfbc adegfcb adfbceg adfbcge adfbecg. adfbegc adfbgce adfbgec adfcbeg adfcbge adfcebg adfcegb adfcgbe adfcgeb.
adfebcg adfebgc adfecbg adfecgb adfegbc adfegcb adfgbce adfgbec adfgcbe. adfgceb adfgebc adfgecb adgbcef adgbcfe adgbecf adgbefc adgbfce adgbfec. adgcbef adgcbfe adgcebf adgcefb adgcfbe adgcfeb adgebcf adgebfc adgecbf. adgecfb adgefbc adgefcb adgfbce adgfbec adgfcbe adgfceb adgfebc adgfecb. aebcdfg aebcdgf aebcfdg aebcfgd aebcgdf aebcgfd aebdcfg aebdcgf aebdfcg. aebdfgc aebdgcf aebdgfc aebfcdg aebfcgd aebfdcg aebfdgc aebfgcd aebfgdc. aebgcdf aebgcfd aebgdcf aebgdfc aebgfcd aebgfdc aecbdfg aecbdgf aecbfdg. aecbfgd aecbgdf aecbgfd aecdbfg aecdbgf aecdfbg aecdfgb aecdgbf aecdgfb. aecfbdg aecfbgd aecfdbg aecfdgb aecfgbd aecfgdb aecgbdf aecgbfd aecgdbf.
aecgdfb aecgfbd aecgfdb aedbcfg aedbcgf aedbfcg aedbfgc aedbgcf aedbgfc. aedcbfg aedcbgf aedcfbg aedcfgb aedcgbf aedcgfb aedfbcg aedfbgc aedfcbg. aedfcgb aedfgbc aedfgcb aedgbcf aedgbfc aedgcbf aedgcfb aedgfbc aedgfcb. aefbcdg aefbcgd aefbdcg aefbdgc aefbgcd aefbgdc aefcbdg aefcbgd aefcdbg. aefcdgb aefcgbd aefcgdb aefdbcg aefdbgc aefdcbg aefdcgb aefdgbc aefdgcb. aefgbcd aefgbdc aefgcbd aefgcdb aefgdbc aefgdcb aegbcdf aegbcfd aegbdcf. aegbdfc aegbfcd aegbfdc aegcbdf aegcbfd aegcdbf aegcdfb aegcfbd aegcfdb. aegdbcf aegdbfc aegdcbf aegdcfb aegdfbc aegdfcb aegfbcd aegfbdc aegfcbd. aegfcdb aegfdbc aegfdcb afbcdeg afbcdge afbcedg afbcegd afbcgde afbcged.
afbdceg afbdcge afbdecg afbdegc afbdgce afbdgec afbecdg afbecgd afbedcg. afbedgc afbegcd afbegdc afbgcde afbgced afbgdce afbgdec afbgecd afbgedc. afcbdeg afcbdge afcbedg afcbegd afcbgde afcbged afcdbeg afcdbge afcdebg. afcdegb afcdgbe afcdgeb afcebdg afcebgd afcedbg afcedgb afcegbd afcegdb. afcgbde afcgbed afcgdbe afcgdeb afcgebd afcgedb afdbceg afdbcge afdbecg. afdbegc afdbgce afdbgec afdcbeg afdcbge afdcebg afdcegb afdcgbe afdcgeb. afdebcg afdebgc afdecbg afdecgb afdegbc afdegcb afdgbce afdgbec afdgcbe. afdgceb afdgebc afdgecb afebcdg afebcgd afebdcg afebdgc afebgcd afebgdc. afecbdg afecbgd afecdbg afecdgb afecgbd afecgdb afedbcg afedbgc afedcbg.
afedcgb afedgbc afedgcb afegbcd afegbdc afegcbd afegcdb afegdbc afegdcb. afgbcde afgbced afgbdce afgbdec afgbecd afgbedc afgcbde afgcbed afgcdbe. afgcdeb afgcebd afgcedb afgdbce afgdbec afgdcbe afgdceb afgdebc afgdecb. afgebcd afgebdc afgecbd afgecdb afgedbc afgedcb agbcdef agbcdfe agbcedf. agbcefd agbcfde agbcfed agbdcef agbdcfe agbdecf agbdefc agbdfce agbdfec. agbecdf agbecfd agbedcf agbedfc agbefcd agbefdc agbfcde agbfced agbfdce. agbfdec agbfecd agbfedc agcbdef agcbdfe agcbedf agcbefd agcbfde agcbfed. agcdbef agcdbfe agcdebf agcdefb agcdfbe agcdfeb agcebdf agcebfd agcedbf. agcedfb agcefbd agcefdb agcfbde agcfbed agcfdbe agcfdeb agcfebd agcfedb.
agdbcef agdbcfe agdbecf agdbefc agdbfce agdbfec agdcbef agdcbfe agdcebf. agdcefb agdcfbe agdcfeb agdebcf agdebfc agdecbf agdecfb agdefbc agdefcb. agdfbce agdfbec agdfcbe agdfceb agdfebc agdfecb agebcdf agebcfd agebdcf. agebdfc agebfcd agebfdc agecbdf agecbfd agecdbf agecdfb agecfbd agecfdb. agedbcf agedbfc agedcbf agedcfb agedfbc agedfcb agefbcd agefbdc agefcbd. agefcdb agefdbc agefdcb agfbcde agfbced agfbdce agfbdec agfbecd agfbedc. agfcbde agfcbed agfcdbe agfcdeb agfcebd agfcedb agfdbce agfdbec agfdcbe. agfdceb agfdebc agfdecb agfebcd agfebdc agfecbd agfecdb agfedbc agfedcb. bacdefg bacdegf bacdfeg bacdfge bacdgef bacdgfe bacedfg bacedgf bacefdg.

1
Sembra che entrambi abbiamo bisogno di trovare un altro salvataggio ora :)
Jonathan Allan il

"."può essere '.salvato per 1 byte.
Emigna,

1
O A7£œJðý72ô€¨'.«9ô9£»per 20.
Emigna,

Ahia. Fair dos !!
Jonathan Allan,

27

Gelatina , 28 26 25 24 23 byte

-1 byte grazie al carusocomputing (sostituisci la parola thimblecon abcdefg)

9ØaḣŒ!s²ḣµs9K€;€”.K;⁷µ€

TryItOnline!

Come?

Fa un elenco di tutte le 362880permutazioni delle prime sette nove lettere dell'alfabeto inglese abcdefghi, che hanno tutte le proprietà delle parole marziane e sono tutte distinte e le formatta in un saggio usando le prime 729parole.

9ØaḣŒ!s²ḣµs9K€;€”.K;⁷µ€ - Main link: no arguments
9                       - 9 as x
         µ              - monadic chain separation
 Øa                     - yield lowercase alphabet
   ḣ                    - head to x ("abcdefghi")
    Œ!                  - all permutations (362880 distinct Martian words)
       ²                - square x = 81 
      s                 - split into chunks of length 81 (the paragraphs)
        ḣ               - head to x (get the first 9 paragraphs only)
                     µ€ - monadic chain for €ach (for each chunk:)
          s9            -     split into chunks of length 9 (the sentences)
            K€          -     join with spaces for €each (between words in each sentence)
              ;€        -     concatenate €ach with
                ”.      -         '.' (add a full stop* after each sentence)
                  K     -     join with spaces (add a space between the sentences)
                   ;    -     concatenate with
                    ⁷   -         a line feed
                        - implicit print

* periodo


2
È possibile salvare i byte utilizzando i primi 7 caratteri dell'alfabeto abcdefg.
Magic Octopus Urn

1
Gahhh ... Quello era il byte con cui avrei potuto batterti anche tu. Sono stupido ahah.
Magic Octopus Urn

Ho la sensazione che ci arriverai comunque!
Jonathan Allan,

4
Tag, ci sei, trova un altro byte;).
Magic Octopus Urn

10

Rubino, 86 83 82 79 byte

(8019..8747).map{|x|$><<x.to_s(3).tr('012','abf')+(x%9>7?".\n":x%3>1?". ":" ")}

Il trucco: stampa tutti i numeri tra 102000000 e 102222222 nella base 3


Da dove viene 102M?
Mukul Kumar,

I numeri tra 102000000 e 102222222 (base 3) diventano parole di 9 lettere. 8019 base 10 è 102M base 3.
GB

8

Python 3, 121 119 byte

from itertools import*
i=729
while i:i-=1;print(*list(permutations('thimble'))[i],sep='',end='.'*(i%9<1)+' \n'[i%81<1])

repl.it

Come?

Conta alla rovescia i=729e ottiene un elenco delle lettere della sua permutazione di 'thimble'come la successiva distinta parola marziana ( list(permutations('thimble'))[i]).

Evita l' ''.join(...)uso di a *expressionper decomprimere l'elenco mentre si modifica il separatore predefinito printda uno spazio alla stringa vuota ( sep='').

Utilizza l' endargomento di printaggiungere facoltativamente spazi, arresti completi e avanzamenti di riga come richiesto utilizzando l'aritmetica modulare. Un'interruzione completa segue ogni nona parola ( '.'*(i%9<1)) e un avanzamento riga segue ogni ottantunesima parola, in caso contrario lo spazio viene raggiunto indicizzando una stringa di due caratteri ( ' \n'[i%81<1]).


8

Mathematica, 113 byte

StringRiffle[(p=Partition)["ark"["bus","car"][[#]]&/@Differences@Array[ThueMorse,730],3]~p~3,n=".\n",". "," "]<>n

Funzione senza nome che produce una stringa come output; quella stringa è un saggio marziano in cui ogni frase ha tre parole e ogni paragrafo ha tre frasi. (Il suo output deterministico è sotto.)

Il nucleo dell'algoritmo utilizza il fatto matematico interessante che le differenze della sequenza di martedì e Morse formano una sequenza infinita dei tre simboli -1, 0 e 1 che non ha ripetizioni contigue di cifre. Differences@Array[ThueMorse,730]genera quella sequenza, alla lunghezza 729.

Quindi "ark"["bus","car"][[#]]&/@viene applicato a questa sequenza; questo converte ogni 1 in "bus" (il primo argomento), ogni -1 in "macchina" (l'ultimo argomento) e ogni 0 in "arca" (la testa della funzione). (p=Partition)[...,3]~p~3divide questa sequenza di parole in elenchi nidificati, ciascuno costituito da tre elenchi di tre parole ciascuno. Finalmente,StringRiffle[...,n=".\n",". "," "] concatena tutte le parole insieme, con diversi separatori a seconda dei livelli dell'elenco; e <>naggiunge il periodo finale e la nuova riga.

L'output non sembra certo privo di ripetizioni ....

ark car bus. car ark bus. ark car ark.
bus car bus. ark car bus. car ark bus.
car bus ark. car ark bus. ark car bus.
car ark bus. ark car ark. bus car bus.
ark car ark. bus ark car. bus car ark.
bus car bus. ark car bus. car ark bus.
ark car ark. bus car bus. ark car bus.
car ark bus. car bus ark. car ark bus.
ark car bus. car ark bus. car bus ark.
car bus car. ark bus ark. car ark bus.
car bus ark. car ark bus. ark car bus.
car ark bus. ark car ark. bus car bus.
ark car bus. car ark bus. car bus ark.
car ark bus. ark car bus. car ark bus.
ark car ark. bus car bus. ark car ark.
bus ark car. bus car ark. bus car bus.
ark car bus. car ark bus. ark car ark.
bus car bus. ark car ark. bus ark car.
bus car ark. bus ark car. ark bus car.
bus ark car. bus car ark. bus car bus.
ark car ark. bus ark car. bus car ark.
bus car bus. ark car bus. car ark bus.
ark car ark. bus car bus. ark car bus.
car ark bus. car bus ark. car ark bus.
ark car bus. car ark bus. ark car ark.
bus car bus. ark car ark. bus ark car.
bus car ark. bus car bus. ark car bus.
car ark bus. ark car ark. bus car bus.
ark car bus. car ark bus. car bus ark.
car ark bus. ark car bus. car ark bus.
car bus ark. car bus car. ark bus ark.
car ark bus. car bus ark. car ark bus.
ark car bus. car ark bus. ark car ark.
bus car bus. ark car bus. car ark bus.
car bus ark. car ark bus. ark car bus.
car ark bus. car bus ark. car bus car.
ark bus ark. car ark bus. car bus ark.
car bus car. ark bus car. bus ark car.
ark bus ark. car bus car. ark bus ark.
car ark bus. car bus ark. car ark bus.
ark car bus. car ark bus. car bus ark.
car bus car. ark bus ark. car ark bus.
car bus ark. car ark bus. ark car bus.
car ark bus. ark car ark. bus car bus.
ark car bus. car ark bus. car bus ark.
car ark bus. ark car bus. car ark bus.
ark car ark. bus car bus. ark car ark.
bus ark car. bus car ark. bus car bus.
ark car bus. car ark bus. ark car ark.
bus car bus. ark car bus. car ark bus.
car bus ark. car ark bus. ark car bus.
car ark bus. car bus ark. car bus car.
ark bus ark. car ark bus. car bus ark.
car ark bus. ark car bus. car ark bus.
ark car ark. bus car bus. ark car bus.
car ark bus. car bus ark. car ark bus.
ark car bus. car ark bus. ark car ark.
bus car bus. ark car ark. bus ark car.
bus car ark. bus car bus. ark car bus.
car ark bus. ark car ark. bus car bus.
ark car ark. bus ark car. bus car ark.
bus ark car. ark bus car. bus ark car.
bus car ark. bus car bus. ark car ark.
bus ark car. bus car ark. bus car bus.
ark car bus. car ark bus. ark car ark.
bus car bus. ark car bus. car ark bus.
car bus ark. car ark bus. ark car bus.
car ark bus. ark car ark. bus car bus.
ark car ark. bus ark car. bus car ark.
bus car bus. ark car bus. car ark bus.
ark car ark. bus car bus. ark car ark.
bus ark car. bus car ark. bus ark car.
ark bus car. bus ark car. bus car ark.
bus car bus. ark car ark. bus ark car.
bus car ark. bus ark car. ark bus car.
bus ark car. ark bus ark. car bus car.
ark bus car. bus ark car. bus car ark.
bus ark car. ark bus car. bus ark car.
bus car ark. bus car bus. ark car ark.
bus ark car. bus car ark. bus car bus.
ark car bus. car ark bus. ark car ark.

Mathematica, 100 byte

StringRiffle[(p=Partition)[Permutations@Characters@"thimble"~Take~729,9]~p~9,n=".\n",". "," ",""]<>n

Una porta diretta dell'algoritmo Jelly di Jonathan Allen.


Vedo l'autobus auto autobus in là
Destructible Lemon

Aspetta NVM solo il mio display
Destructible Lemon

Sarebbe più breve da farePrint@"fng cdaz vpi. pascal broke basic. popplers taste great."
Pavel

1
@Pavel Saggio perfettamente valido, ma hai circa 720 parole timide del mio compito a casa.
H Walters,

@HWalters, vedo, ho letto male il problema. Ops.
Pavel,

4

PHP, 86 byte

for(;$i<729;$$s="")echo${$s=str_shuffle(abcdefg)}??$s.(++$i%3?"":".").($i%9?" ":"\n");

Genera un saggio randomizzato di 729 parole che non ripete nessuna parola.
Usa come:

php -r 'for(;$i<729;$$s="")echo${$s=str_shuffle(abcdefg)}??$s.(++$i%3?"":".").($i%9?" ":"\n");'

Spiegazione:

for(;$i<729;                                      # until we've generated 729 words
  $$s="")                                         # assign a blank string to the variable for the previous word
    echo ${$s=str_shuffle(abcdefg)}??             # generate a random word and if the variable for it has been assigned echo that variable (a blank string)
         $s.(++$i%3?"":".").($i%9?" ":"\n");      # otherwise echo the string and punctuation based on the word number (which is incremented here)

4

///, 95 byte

/_/abf//-/_ _a _e _i _m _n _o _u _aa.//'/- b- c- d- g- j- p- t- bb-/'
f'
h'
l'
r'
s'
v'
z'
ff'

(nuova riga aggiuntiva alla fine, non visibile qui)

Provalo online!

Tema:

abf abfa abfe abfi abfm abfn abfo abfu abfaa. babf abfa abfe abfi abfm abfn abfo abfu abfaa. cabf abfa abfe abfi abfm abfn abfo abfu abfaa. dabf abfa abfe abfi abfm abfn abfo abfu abfaa. gabf abfa abfe abfi abfm abfn abfo abfu abfaa. jabf abfa abfe abfi abfm abfn abfo abfu abfaa. pabf abfa abfe abfi abfm abfn abfo abfu abfaa. tabf abfa abfe abfi abfm abfn abfo abfu abfaa. bbabf abfa abfe abfi abfm abfn abfo abfu abfaa.
fabf abfa abfe abfi abfm abfn abfo abfu abfaa. babf abfa abfe abfi abfm abfn abfo abfu abfaa. cabf abfa abfe abfi abfm abfn abfo abfu abfaa. dabf abfa abfe abfi abfm abfn abfo abfu abfaa. gabf abfa abfe abfi abfm abfn abfo abfu abfaa. jabf abfa abfe abfi abfm abfn abfo abfu abfaa. pabf abfa abfe abfi abfm abfn abfo abfu abfaa. tabf abfa abfe abfi abfm abfn abfo abfu abfaa. bbabf abfa abfe abfi abfm abfn abfo abfu abfaa.
habf abfa abfe abfi abfm abfn abfo abfu abfaa. babf abfa abfe abfi abfm abfn abfo abfu abfaa. cabf abfa abfe abfi abfm abfn abfo abfu abfaa. dabf abfa abfe abfi abfm abfn abfo abfu abfaa. gabf abfa abfe abfi abfm abfn abfo abfu abfaa. jabf abfa abfe abfi abfm abfn abfo abfu abfaa. pabf abfa abfe abfi abfm abfn abfo abfu abfaa. tabf abfa abfe abfi abfm abfn abfo abfu abfaa. bbabf abfa abfe abfi abfm abfn abfo abfu abfaa.
labf abfa abfe abfi abfm abfn abfo abfu abfaa. babf abfa abfe abfi abfm abfn abfo abfu abfaa. cabf abfa abfe abfi abfm abfn abfo abfu abfaa. dabf abfa abfe abfi abfm abfn abfo abfu abfaa. gabf abfa abfe abfi abfm abfn abfo abfu abfaa. jabf abfa abfe abfi abfm abfn abfo abfu abfaa. pabf abfa abfe abfi abfm abfn abfo abfu abfaa. tabf abfa abfe abfi abfm abfn abfo abfu abfaa. bbabf abfa abfe abfi abfm abfn abfo abfu abfaa.
rabf abfa abfe abfi abfm abfn abfo abfu abfaa. babf abfa abfe abfi abfm abfn abfo abfu abfaa. cabf abfa abfe abfi abfm abfn abfo abfu abfaa. dabf abfa abfe abfi abfm abfn abfo abfu abfaa. gabf abfa abfe abfi abfm abfn abfo abfu abfaa. jabf abfa abfe abfi abfm abfn abfo abfu abfaa. pabf abfa abfe abfi abfm abfn abfo abfu abfaa. tabf abfa abfe abfi abfm abfn abfo abfu abfaa. bbabf abfa abfe abfi abfm abfn abfo abfu abfaa.
sabf abfa abfe abfi abfm abfn abfo abfu abfaa. babf abfa abfe abfi abfm abfn abfo abfu abfaa. cabf abfa abfe abfi abfm abfn abfo abfu abfaa. dabf abfa abfe abfi abfm abfn abfo abfu abfaa. gabf abfa abfe abfi abfm abfn abfo abfu abfaa. jabf abfa abfe abfi abfm abfn abfo abfu abfaa. pabf abfa abfe abfi abfm abfn abfo abfu abfaa. tabf abfa abfe abfi abfm abfn abfo abfu abfaa. bbabf abfa abfe abfi abfm abfn abfo abfu abfaa.
vabf abfa abfe abfi abfm abfn abfo abfu abfaa. babf abfa abfe abfi abfm abfn abfo abfu abfaa. cabf abfa abfe abfi abfm abfn abfo abfu abfaa. dabf abfa abfe abfi abfm abfn abfo abfu abfaa. gabf abfa abfe abfi abfm abfn abfo abfu abfaa. jabf abfa abfe abfi abfm abfn abfo abfu abfaa. pabf abfa abfe abfi abfm abfn abfo abfu abfaa. tabf abfa abfe abfi abfm abfn abfo abfu abfaa. bbabf abfa abfe abfi abfm abfn abfo abfu abfaa.
zabf abfa abfe abfi abfm abfn abfo abfu abfaa. babf abfa abfe abfi abfm abfn abfo abfu abfaa. cabf abfa abfe abfi abfm abfn abfo abfu abfaa. dabf abfa abfe abfi abfm abfn abfo abfu abfaa. gabf abfa abfe abfi abfm abfn abfo abfu abfaa. jabf abfa abfe abfi abfm abfn abfo abfu abfaa. pabf abfa abfe abfi abfm abfn abfo abfu abfaa. tabf abfa abfe abfi abfm abfn abfo abfu abfaa. bbabf abfa abfe abfi abfm abfn abfo abfu abfaa.
ffabf abfa abfe abfi abfm abfn abfo abfu abfaa. babf abfa abfe abfi abfm abfn abfo abfu abfaa. cabf abfa abfe abfi abfm abfn abfo abfu abfaa. dabf abfa abfe abfi abfm abfn abfo abfu abfaa. gabf abfa abfe abfi abfm abfn abfo abfu abfaa. jabf abfa abfe abfi abfm abfn abfo abfu abfaa. pabf abfa abfe abfi abfm abfn abfo abfu abfaa. tabf abfa abfe abfi abfm abfn abfo abfu abfaa. bbabf abfa abfe abfi abfm abfn abfo abfu abfaa.

4

JavaScript (ES6), 130 byte

Questo saggio contiene 774 parole marziane, da un dizionario di 308 parole distinte, composto da tutte le lettere marziane.

_=>[...Array(2322)].map((_,i)=>['aeimnou','bcdgkpt','fhlrsvz'][i%3][(z=z*71%1e9)%7]+(++i%3?'':i%9?' ':i%27?'. ':`.
`),z=1).join``

Le lettere vengono raccolte in modo pseudo-casuale, utilizzando la seguente formula:

(71^n mod 1000000000) mod 7

Dov'è 71il primo più piccolo [1] per il quale nessuna ripetizione di parole contigue appare con questo modulo.


[1] Ho provato i numeri primi solo quando ho scritto questo codice. Il più piccolo candidato non primo è 56.


3

Python 3, 404 270 332 339 285 266 259 byte

Questo è un tentativo di creare un saggio marziano a caso, campionando casualmente l'alfabeto marziano e controllando in seguito quali parole funzionano.

Modifica: -10 byte dal suggerimento di Zachary T. da usare R=range. -9 byte dalla modifica .intersection(w)a &set(w). -7 byte dal passaggio A[random.randrange(21)]a random.choice(A).

import random
W=[];A="abfechidlmgrnksopvutz";R=range
while len(W)<729:W+=[''.join(random.choice(A)for j in R(9))for i in R(729)];W=[*set(w for w in W if all(set(A[z::3])&set(w)for z in R(3)))]
for j in R(9):print(" ".join(W[81*j+i]+"."*(i%9>7)for i in R(81)))

Ungolfing

import random
word_list = []
alphabet = "abfechidlmgrnksopvutz"
while len(word_list) < 729:
    # generates words
    for i in range(729):
        word = ""
        for j in range(9):
            word += alphabet[random.randrange(21)]
        word_list.append(word)
    # removes invalid words that don't have at least one letter of each letter type
    kept_words = []
    for word in word_list:
        all_letter_types = [0, 0, 0]
        for z in range(3):
            all_letter_types[z] = set(alphabet[z::3]) & set(word)
        if all(all_letter_types):
            kept_words.append(word)
    word_list = kept_words[:]
    # removes any contiguous word repetitions by removing all repeated words
    word_list = list(set(word_list))
# attaches punctuation and prints
for j in range(9):
    result = []
    for i in range(81):
        word = word_list[81*j+i]
        if i%9 == 8:
            word += "."
    print(" ".join(result))

Non è necessario l'overhead di una funzione poiché non vi è input, potrebbe trattarsi solo del contenuto di un file (ovvero un modulo). Non è necessario renderlo casuale (anche se se si desidera utilizzare il modulo è necessario un import)
Jonathan Allan,

1
@JonathanAllan sapevo di aver dimenticato qualcosa. Grazie per il testa a testa. Volevo provare una risposta casuale comunque. EDIT: Stranamente, l'aggiunta dell'importazione e la rimozione dei livelli di rientro della funzione overhead si annullano a vicenda. Strano.
Sherlock9,

Puoi salvare byte assegnando range(9)a una variabile, oltre che& invece di .intersection?
Zacharý,

O assegnando una variabile a range, quindi usando quella?
Zacharý,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.