Por favor haz mi tarea marciana

37

Mi tarea es escribir un ensayo marciano (ver abajo) entre 729 y 810 palabras, inclusive. Su tarea es escribir un programa que generará el ensayo.

Historia

A principios del siglo XX, la espiritualista Catherine-Elise Müller presuntamente se comunicó con los marcianos. Durante los trances somnambulatorios, ella escribía guiones marcianos. El psicólogo Théodore Flourney descubrió que sus escritos marcianos eran muy similares a su francés nativo, y en su libro "De la India al planeta Marte", documentó el alfabeto marciano de Catherine.

Lo siguiente se basa libremente en ese alfabeto con un mito extendido.

Descripción del problema

El idioma marciano tiene 21 letras, que se muestran aquí al lado de cada equivalente latino:

ingrese la descripción de la imagen aquí

Desafortunadamente, no hay Unicode para Martian (a pesar de que Marte es parte del universo), por lo que estamos atrapados usando caracteres latinos.

Mientras que en inglés nuestros fonemas se dividen en dos tipos principales (consonantes / vocales) que asignamos libremente a las letras, Martian tiene tres tipos de letras:

  • Las vocales: aeimnou
  • Las consonantes duras: bcdgkpt
  • Las consonantes suaves: fhlrsvz

Además de esto, el idioma marciano contiene un único signo de puntuación: el punto.

Una palabra marciana es un conjunto de 3 a 9 letras. Todas las palabras marcianas tienen al menos una vocal, una consonante dura y una consonante suave (en cualquier disposición). Por ejemplo, fng, cdaz, vpi, y pascalson palabras de Marte.

Una oración marciana es un conjunto de 3 a 9 palabras marcianas delimitadas por espacios y seguidas de un punto.

Un párrafo marciano es un conjunto de 3 a 9 oraciones marcianas delimitadas por espacios y seguidas de una nueva línea.

Un ensayo marciano es una colección de párrafos marcianos que no contiene repeticiones de palabras contiguas.

Una repetición de palabras contiguas es cualquier construcción SS donde S es un conjunto de palabras contiguas. Tenga en cuenta que esta definición ignora los límites de las oraciones y los párrafos.

Ejemplos

Tenga en cuenta: hay una nueva línea final después de cada ejemplo (ya que todos los párrafos marcianos terminan en una nueva línea)

Ensayo no marciano

lorem ipsum dolor sentarse amet. quis nostrud exercitation ullamco laboris.

...por muchos motivos. Este ejemplo es para ilustrar algunas reglas diversas:

  • lorem no es una palabra marciana porque no tiene consonantes duras.
  • amet no es una palabra marciana porque no tiene consonantes suaves. (m es una vocal marciana).
  • quis no es una palabra marciana porque no tiene consonantes duras
  • quis no es una palabra marciana porque q no es una letra marciana
  • la ejercitación no es una palabra marciana porque tiene más de 9 letras
  • la ejercitación no es una palabra marciana porque x no es una letra marciana

Ensayo marciano

fng cdaz vpi. Pascal rompió lo básico. los popplers saben muy bien.

... porque es un párrafo marciano. El párrafo marciano contiene tres oraciones marcianas.

Ensayo no marciano

fng cdaz vpi. Pascal rompió lo básico. reglas pascales gratis.

... ya free pascal rules.que no es una oración marciana, porque freetampoco lo rulesson las palabras marcianas, porque no tienen consonantes duras.

Ensayo marciano

fng cdaz vpi. Pascal rompió lo básico. los popplers saben muy bien.
cdaz vpi fng. descansos basicos pascal. los popplers golpean fuerte. fng cdaz vpi.

... que contiene dos párrafos marcianos. La oración fng cdaz vpi.aparece dos veces, pero eso está perfectamente bien.

Ensayo no marciano

popplers gusto fng. cdaz vpi pascal. rompió fng cdaz vpi.
Pascal rompió planetas omicron. Asusta a las cabras básicas. vpi piv vpi.

... porque la construcción fng. cdaz vpi pascal. broke fng cdaz vpi. [nl] pascal brokees una repetición de palabras contiguas.

Reto

Su desafío es escribir una función o programa que no acepte ninguna entrada, lo que produce como salida mi tarea; es decir, su programa debe generar un ensayo marciano entre 729 y 810 palabras (inclusive). Tenga en cuenta que el resultado de su programa debe ser un ensayo marciano válido, pero no tiene que generarlo de forma aleatoria o diferente cada vez. Todo lo que haga para generar un ensayo marciano válido cuenta.

He escrito un programa en C ++ para verificar los ensayos que puedes usar.

Este es el código de golf. El código más corto en bytes gana. Lagunas estándar no permitidas.

H Walters
fuente
44
Popplers sabe muy bien ... ¿Es esa referencia futurama : D
DJMcMayhem
2
Además, aunque respondí a DrMcMoylex en el chat, solo para el registro aquí ... sí. (Para su información, el requisito de 729 y 810 palabras, que es de 1000 a 1100 palabras en la base 9, también es una referencia indirecta )
H Walters
1
Hice un poco de jiggery pokery para que uno se mostrara.
Jonathan Allan
99
Creo que esta es la primera vez que veo una pregunta de "Haz mi tarea por mí" en codegolf. Por lo general, esos están en stackoverflow propiamente dicho. :-)
Ray
44
"cabras de miedo básicas": / Puedo confirmar que esto es falso
Downgoat

Respuestas:

14

05AB1E , 25 24 22 20 bytes

-2 bytes gracias a Emigna (refactor significativo, gracias hombre).

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

Pruébalo en línea!

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.

Resulta que la versión de 810 palabras es más corta que la versión de 729 palabras.

Salida:

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.
Urna de pulpo mágico
fuente
1
Parece que ambos necesitamos encontrar uno más ahora :)
Jonathan Allan
"."puede ser '.por 1 byte guardado.
Emigna
1
O A7£œJðý72ô€¨'.«9ô9£»por 20.
Emigna
Ay. Feria dos !!
Jonathan Allan
27

jalea , 28 26 25 24 23 bytes

-1 byte gracias a carusocomputing (reemplaza la palabra thimblecon abcdefg)

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

TryItOnline!

¿Cómo?

Hace una lista de todas las 362880permutaciones de las primeras siete nueve letras del alfabeto inglés abcdefghi, que tienen las propiedades de las palabras marcianas y son distintas, y las formatea en un ensayo usando las primeras 729palabras.

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

Jonathan Allan
fuente
2
Puede guardar bytes utilizando los primeros 7 caracteres del alfabeto abcdefg.
Urna de pulpo mágico
1
Gahhh ... Ese fue el byte con el que podría haberte derrotado también. Soy tonto jaja.
Urna de pulpo mágico
¡Tengo la sensación de que llegarás allí de todos modos!
Jonathan Allan
44
Etiqueta, ya está, busca otro byte;).
Urna de pulpo mágico
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?". ":" ")}

El truco: imprima todos los números entre 102000000 y 102222222 en la base 3

GB
fuente
¿De dónde viene el 102M?
Mukul Kumar
Los números entre 102000000 y 102222222 (base 3) se convierten en palabras de 9 letras. 8019 base 10 es 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

¿Cómo?

Cuenta atrás i=729y obtiene una lista de las letras de la i-ésima permutación de 'thimble'como la siguiente palabra marciana distinta ( list(permutations('thimble'))[i]).

Evita ''.join(...) uso de a *expressionpara desempaquetar la lista al cambiar el separador predeterminado printde un espacio a la cadena vacía (sep='' ).

Utiliza el end argumento de printagregar opcionalmente espacios, paradas completas y avances de línea según sea necesario utilizando aritmética modular. Un punto final va después de cada novena palabra ( '.'*(i%9<1)) y un avance de línea va después de cada ochenta y una primera palabra; de lo contrario, se hace un espacio al indexar en una cadena de dos caracteres ( ' \n'[i%81<1]).

Jonathan Allan
fuente
8

Mathematica, 113 bytes

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

Función sin nombre que produce una cadena como salida; esa cadena es un ensayo marciano donde cada oración tiene tres palabras y cada párrafo tiene tres oraciones. (Su salida determinista está abajo).

El núcleo del algoritmo utiliza el hecho matemático genial de que las diferencias de la secuencia Thue – Morse forman una secuencia infinita de los tres símbolos –1, 0 y 1 que no tiene repeticiones de dígitos contiguas. Differences@Array[ThueMorse,730]genera esa secuencia, a la longitud 729.

Luego "ark"["bus","car"][[#]]&/@se aplica a esta secuencia; esto convierte cada 1 en "bus" (el primer argumento), cada –1 en "car" (el último argumento) y cada 0 en "ark" (el encabezado de la función). (p=Partition)[...,3]~p~3divide esta secuencia de palabras en listas anidadas, cada una de las cuales consta de tres listas de tres palabras cada una. Finalmente,StringRiffle[...,n=".\n",". "," "] concatena todas las palabras juntas, con diferentes separadores dependiendo de los niveles de la lista; y <>nagrega el período final y la nueva línea.

La salida seguramente no se ve libre de repeticiones ...

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

Un puerto directo del algoritmo Jelly de Jonathan Allen.

Greg Martin
fuente
Veo el autobus del autobus adentro
Destructible Lemon
Espera nvm solo mi pantalla
Destructible Lemon
Sería más corto simplemente hacerPrint@"fng cdaz vpi. pascal broke basic. popplers taste great."
Pavel
1
@Pavel Ensayo perfectamente válido, pero le faltan 720 palabras para mi tarea.
H Walters
@HWalters Ya veo, leí mal el problema. Ups
Pavel
4

PHP, 86 bytes

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

Genera un ensayo aleatorio de 729 palabras que no repite palabras.
Usar como:

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

Explicación:

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)
usuario59178
fuente
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'

(nueva línea adicional al final, no visible aquí)

Pruébalo en línea!

Ensayo:

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.
Cedric Reichenbach
fuente
4

JavaScript (ES6), 130 bytes

Este ensayo contiene 774 palabras marcianas, de un diccionario de 308 palabras distintas, hechas de todas las 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``

Las letras se seleccionan de forma pseudoaleatoria, utilizando la siguiente fórmula:

(71^n mod 1000000000) mod 7

Donde 71es el primo más pequeño [1] para el cual no aparece la repetición de palabras contiguas con este módulo.


[1] Solo probé los números primos cuando escribí este código. El candidato no primo más pequeño es 56.

Arnauld
fuente
3

Python 3, 404 270 332 339 285 266 259 bytes

Este es un intento de crear un ensayo marciano aleatorio, probando al azar el alfabeto marciano y comprobando después qué palabras funcionan.

Editar: -10 bytes de la sugerencia de Zachary T para usar R=range. -9 bytes de cambiar .intersection(w)a &set(w). -7 bytes de cambiar 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))
Sherlock9
fuente
No necesita la sobrecarga de una función ya que no hay entrada, podría ser el contenido de un archivo (es decir, un módulo). No necesita hacerlo al azar (aunque si quiere usar el módulo necesitará un import)
Jonathan Allan
1
@ JonathanAllan Sabía que olvidé algo. Gracias por el aviso. Quería probar una respuesta aleatoria de todos modos. EDITAR: Curiosamente, agregar la importación y eliminar los niveles de sangría de la sobrecarga de la función se cancelan mutuamente. Extraño.
Sherlock9
¿Puedes guardar bytes asignándolos range(9)a una variable, así como en &lugar de .intersection?
Zacharý
¿O asignando una variable a range, luego usándola?
Zacharý