S'il vous plaît faire mes devoirs martiens


37

Mon devoir est d'écrire un essai martien (voir ci-dessous) entre 729 et 810 mots, inclus. Votre tâche consiste à écrire un programme qui générera l’essai.

Histoire

Au tournant du XXe siècle, la spiritualiste Catherine-Elise Müller aurait communiqué avec des Martiens. Pendant les transes somnambulatoires, elle écrivait des scripts martiens. La psychologue Théodore Flourney a découvert que ses écrits martiens ressemblaient beaucoup à son français natal. Dans son livre "De l'Inde à la planète Mars", il a documenté l'alphabet martien de Catherine.

Ce qui suit est vaguement basé sur cet alphabet avec un mythe étendu.

Description du problème

La langue martienne a 21 lettres, montrées ici à côté de chaque équivalent latin:

entrez la description de l'image ici

Malheureusement, il n'y a pas d'Unicode pour Martian (bien que Mars fasse partie de l'univers), nous sommes donc bloqués avec des caractères latins.

Alors qu'en anglais, nos phonèmes se divisent en deux types principaux (consonnes / voyelles) que nous mappons de manière approximative en lettres, Martian a trois types de lettres:

  • Les voyelles: aeimnou
  • Les consonnes dures: bcdgkpt
  • Les consonnes douces: fhlrsvz

En plus de cela, la langue martienne contient un seul signe de ponctuation - la période.

Un mot martien est un ensemble de 3 à 9 lettres. Tous les mots martiens ont au moins une voyelle, une consonne dure et une consonne douce (quelque soit l'arrangement). Par exemple, fng, cdaz, vpiet pascalsont des mots martiens.

Une phrase martienne est un ensemble de 3 à 9 mots martiens délimités par des espaces et suivis d'un point.

Un paragraphe martien est un ensemble de 3 à 9 phrases martiennes délimitées par des espaces et suivi d'une nouvelle ligne.

Un essai martien est une collection de paragraphes martiens qui ne contient aucune répétition de mots contigus.

Une répétition de mots contigus est toute construction SS où S est un ensemble de mots contigus. Notez que cette définition ignore les limites des phrases et des paragraphes.

Exemples

Remarque: il y a une nouvelle nouvelle ligne après chaque exemple (car tous les paragraphes martiens se terminent par une nouvelle ligne)

Essai non martien

Lorem ipsum dolor sit amet. quis nostrud exercitation ullamco laboris.

...pour de nombreuses raisons. Cet exemple illustre quelques règles diverses:

  • lorem n'est pas un mot martien car il n'a pas de consonnes dures.
  • amet n'est pas un mot martien car il n'a pas de consonnes douces. ( mest une voyelle martienne).
  • quis n'est pas un mot martien car il n'a pas de consonnes dures
  • quis n'est pas un mot martien car q n'est pas une lettre martienne
  • l'exercice physique n'est pas un mot martien parce qu'il a plus de 9 lettres
  • l'exercice n'est pas un mot martien car x n'est pas une lettre martienne

Essai martien

fng cdaz vpi. pascal a cassé la base. les popplers ont bon goût.

... parce que c'est un paragraphe martien. Le paragraphe martien contient trois phrases martiennes.

Essai non martien

fng cdaz vpi. pascal a cassé la base. règles pascal gratuites.

... puisque free pascal rules.n'est pas une phrase martienne, parce que ni freene rulessont des mots de Mars, parce qu'ils n'ont pas de consonnes dures.

Essai martien

fng cdaz vpi. pascal a cassé la base. les popplers ont bon goût.
cdaz vpi fng. pauses de base pascal. popplers frappent fort. fng cdaz vpi.

... qui contient deux paragraphes martiens. La phrase fng cdaz vpi.apparaît deux fois, mais c'est parfait.

Essai non martien

les popplers ont un goût de fng. cdaz vpi pascal. cassé fng cdaz vpi.
Pascal a brisé les planètes Omicron. base effraie les chèvres. vpi piv vpi.

... parce que la construction fng. cdaz vpi pascal. broke fng cdaz vpi. [nl] pascal brokeest une répétition de mots contigus.

Défi

Votre défi est d’écrire une fonction ou un programme qui n’accepte aucune entrée, ce qui produit en sortie mon devoir; c'est-à-dire que votre programme devrait générer un essai martien entre 729 et 810 mots (inclus). N'oubliez pas que la sortie de votre programme doit être un essai martien valide, mais vous n'avez pas à le générer de manière aléatoire ou différente à chaque fois. Tout ce que vous faites pour générer un essai martien valide compte.

J'ai écrit un programme C ++ pour vérifier les essais que vous êtes autorisé à utiliser.

C'est du code golf. Le code le plus court en octets gagne. Lacunes standard interdites.


4
Les popplers ont bon goût ... Est-ce la référence de Futurama : D
DJMcMayhem

2
Aussi, même si j'ai répondu à DrMcMoylex en chat, juste pour le compte rendu ... oui. (Pour info, les exigences de 729 et 810 mots, soit 1000 à 1100 mots en base 9, sont également une référence indirecte )
H Walters

1
Fait un peu de jokery pour en faire une.
Jonathan Allan

9
Je pense que c'est la première fois que je vois une question "Fais mes devoirs pour moi" sur codegolf. Celles-ci sont généralement sur stackoverflow proprement dit. :-)
Ray

4
"basic effraye les chèvres": / Je peux confirmer que c'est faux
Downgoat

Réponses:


14

05AB1E , 25 24 22 20 octets

-2 octets grâce à Emigna (refactor important, merci homme).

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

Essayez-le en ligne!

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.

Il s'avère que la version de 810 mots est plus courte que la version de 729 mots.

Sortie:

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
On dirait que nous avons tous les deux besoin de trouver une sauvegarde supplémentaire maintenant :)
Jonathan Allan

"."peut être '.pour 1 octet enregistré.
Emigna

1
Ou A7£œJðý72ô€¨'.«9ô9£»pour 20.
Emigna

Aie. Juste dos !!
Jonathan Allan

27

Jelly , 28 26 25 24 23 octets

-1 octet grâce à carusocomputing (remplace le mot thimblepar abcdefg)

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

TryItOnline!

Comment?

Donne une liste de toutes les 362880permutations des sept premières neuf lettres de l’alphabet anglais abcdefghi, qui possèdent toutes les propriétés des mots martiens et sont toutes distinctes, et les formate en un essai utilisant les premiers 729mots.

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

* période


2
Vous pouvez enregistrer des octets en utilisant les 7 premiers caractères de l’alphabet abcdefg.
Urne magique Octopus

1
Gahhh ... C'était l'octet avec lequel je pourrais aussi vous battre. Je suis muet haha.
Urne magique Octopus

J'ai l'impression que vous y arriverez quand même!
Jonathan Allan

4
Tag, tu es le, trouve un autre octet;).
Urne Octopus Magique

10

Ruby, 86 83 82 79 octets

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

L'astuce: imprimer tous les nombres entre 102000000 et 102222222 en base 3


D'où vient le 102M?
Mukul Kumar

Les nombres entre 102000000 et 102222222 (base 3) deviennent des mots de 9 lettres. 8019 base 10 est 102M base 3.
GB

8

Python 3, 121 119 octets

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

Comment?

Compte à rebours de i=729et obtient une liste des lettres de la ième permutation de 'thimble'comme prochain mot martien distinct ( list(permutations('thimble'))[i]).

Évite ''.join(...)d'utiliser un *expressionpour décompresser la liste lors du remplacement du séparateur par défaut printd'un espace par une chaîne vide ( sep='').

Utilise l' endargument de printpour éventuellement ajouter des espaces, des arrêts complets et des sauts de ligne selon les besoins, en utilisant l'arithmétique modulaire. Un point final est utilisé après chaque neuvième mot ( '.'*(i%9<1)) et un saut de ligne après tous les quatre-vingt-un mots, sinon un espace l'est, obtenu par l'indexation dans une chaîne de deux caractères ( ' \n'[i%81<1]).


8

Mathematica, 113 octets

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

Fonction non nommée qui produit une chaîne en sortie; cette chaîne est un essai martien où chaque phrase a trois mots et chaque paragraphe a trois phrases. (Sa sortie déterministe est ci-dessous.)

Le cœur de l’algorithme utilise le fait mathématique: les différences de la séquence Thue – Morse forment une séquence infinie des trois symboles –1, 0 et 1 qui n’a pas de répétition de chiffres contigus. Differences@Array[ThueMorse,730]génère cette séquence, de longueur 729.

Puis "ark"["bus","car"][[#]]&/@est appliqué à cette séquence; ceci convertit chaque 1 en "bus" (le premier argument), chaque -1 en "voiture" (le dernier argument) et chaque 0 en "ark" (la fonction head). (p=Partition)[...,3]~p~3divise cette séquence de mots en listes imbriquées composées chacune de trois listes de trois mots chacune. Enfin, StringRiffle[...,n=".\n",". "," "]concatène tous les mots, avec des séparateurs différents selon les niveaux de la liste; et <>najoute la période finale et la nouvelle ligne.

La sortie ne semble pas exempte de répétition ....

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 octets

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

Un portage direct de l'algorithme Jelly de Jonathan Allen.


Je vois un autobus un autobus là
Citron destructible

Attendez NVM juste mon écran
Lemon destructible

Il serait plus court de le fairePrint@"fng cdaz vpi. pascal broke basic. popplers taste great."
Pavel

1
@Pavel Essai parfaitement valide, mais vous êtes à peu près à 720 mots de mon devoir.
H Walters

@HWalters Je vois, j'ai mal interprété le problème. Oops.
Pavel

4

PHP, 86 octets

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

Génère un essai randomisé de 729 mots qui ne répète aucun mot.
Utilisez comme:

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

Explication:

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 octets

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

(nouvelle ligne supplémentaire à la fin, non visible ici)

Essayez-le en ligne!

Rédaction:

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 octets

Cet essai contient 774 mots martiens, issus d'un dictionnaire de 308 mots distincts, composés de toutes les lettres martiennes.

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

Les lettres sont sélectionnées de manière pseudo-aléatoire en utilisant la formule suivante:

(71^n mod 1000000000) mod 7

71est le plus petit premier [1] pour lequel aucune répétition de mot contigu n'apparaît avec ce modulo.


[1] Je n'ai testé que des nombres premiers au moment où j'ai écrit ce code. Le plus petit candidat non principal est 56.


3

Python 3, 404 270 332 339 285 266 259 octets

Ceci est une tentative pour créer un essai martien aléatoire en échantillonnant de manière aléatoire l'alphabet martien et en vérifiant quels mots fonctionnent.

Edit: -10 octets de la suggestion de Zachary T à utiliser R=range. -9 octets de changer .intersection(w)à &set(w). -7 octets de changer A[random.randrange(21)]à 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))

Vous n'avez pas besoin de la surcharge d'une fonction car il n'y a pas d'entrée, il pourrait simplement s'agir du contenu d'un fichier (c'est-à-dire d'un module). Vous n'avez pas besoin de le faire au hasard (mais si vous voulez utiliser le module, vous aurez besoin d'un import)
Jonathan Allan

1
@ JonathanAllan Je savais que j'avais oublié quelque chose. Merci pour l'information. Je voulais quand même essayer une réponse aléatoire. EDIT: Assez curieusement, l’ajout de l’importation et la suppression des niveaux d’indentation de la surcharge de la fonction s’annulent. Étrange.
Sherlock9

Pouvez-vous économiser des octets en attribuant range(9)à une variable, ainsi qu'au &lieu de .intersection?
Zacharý

Ou en assignant une variable à range, puis en utilisant cela?
Zacharý
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.