Por favor, faça minha lição de casa marciana


37

Meu dever de casa é escrever um ensaio marciano (veja abaixo) entre 729 e 810 palavras, inclusive. Sua tarefa é escrever um programa que gere o ensaio.

História

Por volta da virada do século XX, a espiritualista Catherine-Elise Müller teria se comunicado com os marcianos. Durante transes sonâmbulos, ela escrevia roteiros marcianos. O psicólogo Théodore Flourney descobriu que seus escritos marcianos eram muito semelhantes aos franceses nativos e, em seu livro "Da Índia ao planeta Marte", ele documentou o alfabeto marciano de Catherine.

O que se segue é vagamente baseado nesse alfabeto com um mito extenso.

Descrição do Problema

A língua marciana tem 21 letras, mostradas aqui ao lado de cada equivalente latino:

insira a descrição da imagem aqui

Infelizmente, não há Unicode para Marciano (apesar de Marte fazer parte do universo), por isso estamos presos a caracteres latinos.

Enquanto em inglês nossos fonemas se dividem em dois tipos principais (consoantes / vogais) que mapeamos livremente para letras, Marciano possui três tipos de letras:

  • As vogais: aeimnou
  • As consoantes difíceis: bcdgkpt
  • As consoantes suaves: fhlrsvz

Além disso, o idioma marciano contém um único sinal de pontuação - o período.

Uma palavra marciana é um conjunto de 3 a 9 letras. Todas as palavras marcianas têm pelo menos uma vogal, uma consoante dura e uma consoante suave (em qualquer arranjo). Por exemplo, fng, cdaz, vpi, e pascalsão palavras marcianas.

Uma frase marciana é um conjunto de 3 a 9 palavras marcianas delimitadas por espaços e seguidas por um ponto final.

Um parágrafo marciano é um conjunto de 3 a 9 sentenças marcianas delimitadas por espaços e seguidas por uma nova linha.

Um ensaio marciano é uma coleção de parágrafos marcianos que não contêm repetições de palavras contíguas.

Uma repetição contígua de palavras é qualquer constructo SS em que S é um conjunto contíguo de palavras. Observe que essa definição ignora os limites de sentenças e parágrafos.

Exemplos

Observação: existe uma nova linha posterior à direita após cada exemplo (já que todos os parágrafos marcianos terminam em uma nova linha)

Ensaio não marciano

lorem ipsum dolor sit amet. quis nostrud exercício ullamco laboris.

...por muitas razões. Este exemplo é para ilustrar algumas regras diversas:

  • Lorem não é uma palavra marciana porque não tem consoantes difíceis.
  • amet não é uma palavra marciana porque não tem consoantes suaves. ( mé uma vogal marciana).
  • quis não é uma palavra marciana porque não tem consoantes difíceis
  • quis não é uma palavra marciana porque q não é uma letra marciana
  • exercício não é uma palavra marciana porque tem mais de 9 letras
  • exercício não é uma palavra marciana porque x não é uma letra marciana

Ensaio marciano

fng cdaz vpi. pascal quebrou básico. popplers gosto muito.

... porque é um parágrafo marciano. O parágrafo marciano contém três frases marcianas.

Ensaio não marciano

fng cdaz vpi. pascal quebrou básico. regras pascal gratuitas.

... já que free pascal rules.não é uma sentença marciana, porque freenem rulessão palavras marcianas, porque elas não têm consoantes difíceis.

Ensaio marciano

fng cdaz vpi. pascal quebrou básico. popplers gosto muito.
cdaz vpi fng. pausas básicas pascal. popplers soco forte. fng cdaz vpi.

... que contém dois parágrafos marcianos. A frase fng cdaz vpi.aparece duas vezes, mas está perfeitamente bem.

Ensaio não marciano

popplers gosto fng. cdaz vpi pascal. quebrou fng cdaz vpi.
Pascal quebrou planetas omicron. sustos básicos cabras. vpi piv vpi.

... porque o construto fng. cdaz vpi pascal. broke fng cdaz vpi. [nl] pascal brokeé uma repetição de palavras contígua.

Desafio

Seu desafio é escrever uma função ou programa que não aceite nenhuma entrada, que produz como saída minha lição de casa; isto é, seu programa deve gerar um ensaio marciano entre 729 e 810 palavras (inclusive). Lembre-se de que a saída do seu programa deve ser um ensaio marciano válido, mas você não precisa gerá-lo aleatoriamente ou diferente a cada vez. Tudo o que você faz para gerar um ensaio marciano válido conta.

Eu escrevi um programa C ++ para verificar ensaios que você tem permissão para usar.

Isso é código de golfe. O menor código em bytes vence. Lacunas padrão não permitidas.


4
Popplers gosto muito ... É que referência Futurama : D
DJMcMayhem

2
Além disso, embora eu tenha respondido ao DrMcMoylex no chat, apenas para registro aqui ... sim. (Para sua informação, a exigência 729 e 810 da palavra, que é de 1000 a 1100 palavras de base 9, é também uma referência indirecta )
H Walters

11
Fiz um pouco de brincadeira para mostrar uma coisa.
Jonathan Allan

9
Acho que é a primeira vez que vejo uma pergunta "Faça minha lição de casa por mim" no codegolf. Geralmente esses estão no fluxo de pilha apropriado. :-)
Ray

4
"
assustos

Respostas:


14

05AB1E , 25 24 22 20 bytes

-2 bytes graças a Emigna (refator significativo, obrigado cara).

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

Experimente 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.

Acontece que a versão de 810 palavras é mais curta que a versão de 729 palavras.

Saída:

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.

11
Parece que tanto precisa encontrar um mais save agora :)
Jonathan Allan

"."pode ter '.1 byte salvo.
Emigna

11
Ou A7£œJðý72ô€¨'.«9ô9£»para 20.
Emigna 2/16/16

Ai. Fair dos !!
Jonathan Allan

27

Gelatina , 28 26 25 24 23 bytes

-1 byte graças a carusocomputing (substitua a palavra thimblepor abcdefg)

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

TryItOnline!

Quão?

Faz uma lista de todas as 362880permutações das sete primeiras nove letras do alfabeto inglês abcdefghi, todas com propriedades de palavras marcianas e todas distintas, e as formata em um ensaio usando as primeiras 729palavras.

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

* período


2
Você pode salvar bytes usando os 7 primeiros caracteres do alfabeto abcdefg.
Magic Octopus Urn

11
Gahhh ... Esse foi o byte com o qual eu poderia ter vencido você também. Eu sou burro haha.
Magic Octopus Urn

Tenho a sensação de que você chegará lá de qualquer maneira!
Jonathan Allan

4
Tag, pronto, encontre outro byte;).
Magic Octopus Urn

10

Ruby, 86 83 82 79 bytes

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

O truque: imprima todos os números entre 102000000 e 102222222 na base 3


De onde vem a 102M?
Mukul Kumar

Os números entre 102000000 e 102222222 (base 3) tornam-se palavras de 9 letras. 8019 base 10 é 102M base 3.
GB

8

Python 3, 121 119 bytes

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

Quão?

Faz a contagem regressiva i=729e obtém uma lista das letras da i-ésima permutação 'thimble'como a próxima palavra marciana distinta ( list(permutations('thimble'))[i]).

Evita o ''.join(...)uso de a *expressionpara descompactar a lista enquanto altera o separador padrão printde um espaço para a sequência vazia ( sep='').

Utiliza o endargumento de, printopcionalmente, para adicionar espaços, pontos finais e avanço de linha conforme necessário, usando aritmética modular. Um ponto final ocorre após cada nona palavra ( '.'*(i%9<1)) e um avanço de linha ocorre após cada oitenta e uma palavra, caso contrário, ocorre um espaço, obtido pela indexação em uma cadeia de dois caracteres ( ' \n'[i%81<1]).


8

Mathematica, 113 bytes

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

Função sem nome que produz uma string como saída; essa sequência é um ensaio marciano em que cada sentença tem três palavras e cada parágrafo tem três sentenças. (Sua saída determinística está abaixo.)

O núcleo do algoritmo usa o fato matemático interessante de que as diferenças da sequência de Thue – Morse formam uma sequência infinita dos três símbolos –1, 0 e 1 que não possuem repetições de dígitos contíguos. Differences@Array[ThueMorse,730]gera essa sequência, com o comprimento 729.

Então "ark"["bus","car"][[#]]&/@é aplicado a esta sequência; isso converte cada 1 em "barramento" (o primeiro argumento), cada -1 em "carro" (o último argumento) e cada 0 em "arca" (a cabeça da função). (p=Partition)[...,3]~p~3divide essa sequência de palavras em listas aninhadas, cada uma consistindo em três listas de três palavras cada. Por fim, StringRiffle[...,n=".\n",". "," "]concatena todas as palavras juntas, com diferentes separadores, dependendo dos níveis da lista; e <>nanexa o período final e a nova linha.

A saída com certeza não parece livre de repetição ....

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 bytes

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

Uma porta direta do algoritmo Jelly de Jonathan Allen.


Eu vejo carro ônibus carro ônibus lá
Destructible Lemon

Wait nvm just my display
Destructible Lemon

Seria mais curto apenas fazer #Print@"fng cdaz vpi. pascal broke basic. popplers taste great."
Pavel

11
@ Pavel Ensaio perfeitamente válido, mas você tem cerca de 720 palavras a menos que minha tarefa de casa.
H Walters #

@HWalters eu vejo, eu interpretei mal o problema. Opa
Pavel

4

PHP, 86 bytes

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

Gera um ensaio aleatório de 729 palavras que não repete nenhuma palavra.
Use como:

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

Explicação:

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 bytes

/_/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'

(nova linha adicional no final, não visível aqui)

Experimente online!

Redação:

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 bytes

Este ensaio contém 774 palavras marcianas, de um dicionário de 308 palavras distintas, composto por todas as letras marcianas.

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

As letras são escolhidas de maneira pseudo-aleatória, usando a seguinte fórmula:

(71^n mod 1000000000) mod 7

Onde 71é o menor primo [1] para o qual nenhuma repetição contígua de palavras aparece com este módulo.


[1] Só testei primos no momento em que escrevi esse código. O menor candidato não privilegiado é 56.


3

Python 3, 404 270 332 339 285 266 259 bytes

Esta é uma tentativa de criar um ensaio marciano aleatório, amostrando aleatoriamente o alfabeto marciano e verificando depois quais palavras funcionam.

Editar: -10 bytes da sugestão de Zachary T para usar R=range. -9 bytes de mudar .intersection(w)para &set(w). -7 bytes de mudar A[random.randrange(21)]para 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))

Você não precisa da sobrecarga de uma função, pois não há entrada, ela pode ser apenas o conteúdo de um arquivo (ou seja, um módulo). Você não precisa fazê-lo aleatório (embora se você quiser usar o módulo que você vai precisar de uma import)
Jonathan Allan

11
@ JonathanAllan Eu sabia que tinha esquecido alguma coisa. Obrigado pela atenção. Eu queria tentar uma resposta aleatória de qualquer maneira. EDIT: Estranhamente, adicionar a importação e remover os níveis de indentação da sobrecarga da função se cancelam. Estranho.
Sherlock9

Você pode salvar bytes atribuindo range(9)a uma variável e também em &vez de .intersection?
Zacharý

Ou atribuindo uma variável a range, e usando isso?
Zacharý
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.