Bitte mache meine Mars-Hausaufgaben

37

Meine Hausaufgabe besteht darin, einen marsianischen Aufsatz (siehe unten) mit 729 bis 810 Wörtern zu schreiben . Ihre Aufgabe ist es, ein Programm zu schreiben, das den Aufsatz generiert.

Geschichte

Um die Wende des 20. Jahrhunderts soll die Spiritistin Catherine-Elise Müller mit Marsmenschen kommuniziert haben. Während somnambulatorischer Trances schrieb sie Mars-Skripte. Die Psychologin Théodore Flourney entdeckte, dass ihre marsianischen Schriften ihrem französischen Muttersprachler sehr ähnlich waren, und dokumentierte in seinem Buch "Von Indien zum Planeten Mars" das marsianische Alphabet von Catherine.

Das Folgende basiert lose auf diesem Alphabet mit einem erweiterten Mythos.

Problembeschreibung

Die Mars-Sprache hat 21 Buchstaben, die hier neben jedem lateinischen Äquivalent angezeigt werden:

Bildbeschreibung hier eingeben

Leider gibt es für Martian kein Unicode (obwohl der Mars Teil des Universums ist), daher verwenden wir keine lateinischen Zeichen.

Während unsere Phoneme im Englischen in zwei Haupttypen (Konsonanten / Vokale) unterteilt sind, die wir den Buchstaben lose zuordnen, hat Martian drei Buchstabentypen:

  • Die Vokale: aeimnou
  • Die harten Konsonanten: bcdgkpt
  • Die weichen Konsonanten: fhlrsvz

Darüber hinaus enthält die Mars-Sprache ein einziges Interpunktionszeichen - den Punkt.

Ein Mars-Wort besteht aus 3 bis 9 Buchstaben. Alle marsianischen Wörter haben mindestens einen Vokal, einen harten Konsonanten und einen weichen Konsonanten (in beliebiger Anordnung). Zum Beispiel fng, cdaz, vpiund pascalsind vom Mars Worte.

Ein Mars-Satz besteht aus 3 bis 9 Mars-Wörtern, die durch Leerzeichen und einen Punkt getrennt sind.

Ein Mars-Absatz besteht aus 3 bis 9 Mars-Sätzen, die durch Leerzeichen und eine neue Zeile getrennt sind.

Ein Mars-Aufsatz ist eine Sammlung von Mars-Absätzen, die keine zusammenhängenden Wortwiederholungen enthalten.

Eine Wiederholung zusammenhängender Wörter ist jedes Konstrukt SS, bei dem S eine zusammenhängende Menge von Wörtern ist. Beachten Sie, dass diese Definition Satz- und Absatzgrenzen ignoriert.

Beispiele

Bitte beachten Sie: Nach jedem Beispiel folgt eine einzelne nachgestellte Zeile (da alle Absätze in Mars mit einer neuen Zeile enden).

Nicht marsianischer Aufsatz

Lorem Ipsum Dolor sitzen amet. quis nostrud exercitation ullamco laboris.

...aus vielen Gründen. Dieses Beispiel soll einige verschiedene Regeln veranschaulichen:

  • Lorem ist kein marsianisches Wort, weil es keine harten Konsonanten hat.
  • amet ist kein marsianisches Wort, weil es keine weichen Konsonanten hat. ( mist ein Marsvokal).
  • quis ist kein marsianisches Wort, weil es keine harten Konsonanten hat
  • quis ist kein Mars-Wort, weil q kein Mars-Buchstabe ist
  • Übung ist kein Mars-Wort, weil es mehr als 9 Buchstaben hat
  • Übung ist kein Mars-Wort, weil x kein Mars-Buchstabe ist

Marsaufsatz

fng cdaz vpi. Pascal brach Grund. Popplers schmecken gut.

... weil es ein Marsabsatz ist. Der marsianische Absatz enthält drei marsianische Sätze.

Nicht marsianischer Aufsatz

fng cdaz vpi. Pascal brach Grund. Freie Pascal Regeln.

... da free pascal rules.ist kein Mars-Satz, weil weder Mars-Wörter freenoch rulesMars-Wörter, weil sie keine harten Konsonanten haben.

Marsaufsatz

fng cdaz vpi. Pascal brach Grund. Popplers schmecken gut.
cdaz vpi fng. Grundlegende Pausen Pascal. Poppler schlagen hart zu. fng cdaz vpi.

... das zwei Absätze vom Mars enthält. Der Satz fng cdaz vpi.erscheint zweimal, aber das ist völlig in Ordnung.

Nicht marsianischer Aufsatz

Poppler schmecken fng. cdaz vpi pascal. brach fng cdaz vpi.
Pascal brach Omicron-Planeten. grundlegende Angst Ziegen. vpi piv vpi.

... weil das Konstrukt fng. cdaz vpi pascal. broke fng cdaz vpi. [nl] pascal brokeeine zusammenhängende Wortwiederholung ist.

Herausforderung

Ihre Herausforderung besteht darin, eine Funktion oder ein Programm zu schreiben, das keine Eingaben akzeptiert und als Ausgabe meine Hausaufgaben erzeugt. Das heißt, Ihr Programm sollte einen marsianischen Aufsatz mit 729 bis 810 Wörtern (einschließlich) erstellen. Denken Sie daran, dass die Ausgabe Ihres Programms ein gültiger marsianischer Aufsatz sein muss, aber Sie müssen ihn nicht jedes Mal zufällig oder anders generieren. Alles, was Sie tun, um einen gültigen Mars-Aufsatz zu erstellen, zählt.

Ich habe ein C ++ - Programm geschrieben, um Aufsätze zu überprüfen , die Sie verwenden dürfen.

Das ist Code Golf. Kürzester Code in Bytes gewinnt. Standardlücken sind nicht erlaubt.

H Walters
quelle
4
Popplers schmecken gut ... Ist das Futurama Hinweis : D
DJMcMayhem
2
Obwohl ich im Chat auf DrMcMoylex geantwortet habe, nur für die Aufzeichnung hier ... ja. (Zu Ihrer Information, die Anforderung von 729 und 810 Wörtern, die 1000 bis 1100 Wörter in Basis 9 umfasst, ist ebenfalls eine indirekte Referenz )
H. Walters,
1
Habe ein bisschen Spaß gemacht, um eine Vorstellung zu bekommen.
Jonathan Allan
9
Ich denke, dies ist das erste Mal, dass ich eine Frage zum Thema Codegolf "Mache meine Hausaufgaben für mich" sehe. Normalerweise sind diese auf stapelbarem Überlauf. :-)
Ray
4
"Grundlegende Angst Ziegen": / Ich kann bestätigen, dass dies falsch ist
Downgoat

Antworten:

14

05AB1E , 25 24 22 20 Bytes

-2 Bytes dank Emigna (Signifikanter Refaktor, danke Mann).

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

Probieren Sie es 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.

Es stellt sich heraus, dass die 810-Wort-Version kürzer ist als die 729-Wort-Version.

Ausgabe:

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.
Magische Kraken-Urne
quelle
1
Sieht so aus, als müssten wir beide noch einen Save finden :)
Jonathan Allan
"."kann '.für 1 byte gespeichert werden.
Emigna
1
Oder A7£œJðý72ô€¨'.«9ô9£»für 20.
Emigna
Autsch. Fair dos !!
Jonathan Allan
27

Gelee , 28 26 25 24 23 Bytes

-1 Byte dank Carusocomputing (ersetzen Sie das Wort thimbledurchabcdefg )

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

TryItOnline!

Wie?

Erstellt eine Liste aller 362880Permutationen der ersten sieben neun Buchstaben des englischen Alphabets abcdefghi, die alle die Eigenschaften von Mars-Wörtern haben und alle verschieden sind, und formatiert sie unter Verwendung der ersten 729Wörter zu einem Aufsatz .

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

* Zeitraum

Jonathan Allan
quelle
2
Sie können Bytes speichern, indem Sie die ersten 7 Zeichen des Alphabets verwenden abcdefg.
Magic Octopus Urn
1
Gahhh ... Das war das Byte, mit dem ich dich auch hätte schlagen können. Ich bin dumm, haha.
Magic Octopus Urn
Ich habe das Gefühl, du kommst trotzdem hin!
Jonathan Allan
4
Tag, du bist es, finde ein anderes 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?". ":" ")}

Der Trick: Drucken Sie alle Zahlen zwischen 102000000 und 102222222 in Basis 3

GB
quelle
Woher kommt 102M?
Mukul Kumar
Die Zahlen zwischen 102000000 und 102222222 (Basis 3) werden zu Wörtern mit 9 Buchstaben. 8019 Basis 10 ist 102M Basis 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

Wie?

Zählt ab i=729und erhält eine Liste der Buchstaben der i-ten Permutation 'thimble'als nächstes eindeutiges Mars-Wort ( list(permutations('thimble'))[i]).

Vermeidet die ''.join(...)Verwendung von a *expression, um die Liste zu entpacken, während das Standardtrennzeichen printvon einem Leerzeichen in eine leere Zeichenfolge geändert wird (sep='' ).

Verwendet das endArgument print, optional Leerzeichen, Punkte und Zeilenvorschübe mit modularer Arithmetik hinzuzufügen. Ein Punkt nach jedem neunten Wort ( '.'*(i%9<1)) und ein Zeilenvorschub nach jedem einundachtzigsten Wort, andernfalls ein Leerzeichen, das durch Indizieren in eine Zeichenfolge mit zwei Zeichen ( ' \n'[i%81<1]) erzielt wird .

Jonathan Allan
quelle
8

Mathematica, 113 Bytes

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

Unbenannte Funktion, die einen String als Ausgabe erzeugt; Diese Zeichenfolge ist ein marsianischer Aufsatz, in dem jeder Satz drei Wörter und jeder Absatz drei Sätze enthält. (Seine deterministische Ausgabe ist unten.)

Der Kern des Algorithmus nutzt die coole mathematische Tatsache, dass die Unterschiede der Thue-Morse-Folge eine unendliche Folge der drei Symbole –1, 0 und 1 bilden, die keine zusammenhängenden Ziffernwiederholungen aufweisen. Differences@Array[ThueMorse,730]generiert diese Sequenz mit der Länge 729.

Dann "ark"["bus","car"][[#]]&/@wird auf diese Sequenz angewendet; Dies wandelt jede 1 in "bus" (das erste Argument), jede –1 in "car" (das letzte Argument) und jede 0 in "ark" (den Funktionskopf) um. (p=Partition)[...,3]~p~3unterteilt diese Folge von Wörtern in verschachtelte Listen, die jeweils aus drei Listen mit jeweils drei Wörtern bestehen. Schließlich StringRiffle[...,n=".\n",". "," "]verkettet alle Worte zusammen, mit unterschiedlichen Separatoren auf der Listenstufe abhängig; und <>nfügt die letzte Periode und den Zeilenumbruch hinzu.

Die Ausgabe sieht sicher nicht wiederholungsfrei aus ....

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

Ein direkter Port von Jonathan Allens Jelly-Algorithmus.

Greg Martin
quelle
Ich sehe Auto Bus Auto Bus
Destructible Lemon
Warten Sie nvm nur mein Display
Destructible Lemon
Es wäre kürzer, es einfach zu machenPrint@"fng cdaz vpi. pascal broke basic. popplers taste great."
Pavel,
1
@Pavel Perfekt gültiger Aufsatz, aber du bist ungefähr 720 Wörter von meiner Hausaufgabe entfernt.
H Walters
@HWalters Ich verstehe, ich habe das Problem falsch verstanden. Hoppla.
Pavel
4

PHP, 86 Bytes

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

Erzeugt einen zufälligen Aufsatz mit 729 Wörtern, der keine Wörter wiederholt.
Verwenden Sie wie:

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

Erläuterung:

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)
user59178
quelle
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'

(zusätzliche neue Zeile am Ende, hier nicht sichtbar)

Probieren Sie es online!

Aufsatz:

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
quelle
4

JavaScript (ES6), 130 Byte

Dieser Aufsatz enthält 774 marsianische Wörter aus einem Wörterbuch mit 308 verschiedenen Wörtern, die aus allen marsianischen Buchstaben bestehen.

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

Buchstaben werden nach der folgenden Formel pseudozufällig ausgewählt:

(71^n mod 1000000000) mod 7

Wo 71ist die kleinste Primzahl [1], für die mit diesem Modulo keine zusammenhängende Wortwiederholung auftritt?


[1] Ich habe nur Primzahlen getestet, als ich diesen Code geschrieben habe. Der kleinste Nicht-Hauptkandidat ist 56.

Arnauld
quelle
3

Python 3, 404 270 332 339 285 266 259 Bytes

Dies ist ein Versuch, einen zufälligen marsianischen Aufsatz zu erstellen, in dem ich das marsianische Alphabet zufällig auswähle und anschließend prüfe, welche Wörter funktionieren.

Edit: -10 Bytes von Zachary T's Vorschlag zu verwenden R=range. -9 Bytes vom Ändern .intersection(w)auf &set(w). -7 Bytes vom Ändern A[random.randrange(21)]auf 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
quelle
Sie brauchen den Overhead einer Funktion nicht, da es keine Eingabe gibt, sondern nur den Inhalt einer Datei (dh eines Moduls). Sie müssen es nicht zufällig machen (obwohl, wenn Sie das Modul verwenden möchten, benötigen Sie eine import)
Jonathan Allan
1
@ JonathanAllan Ich wusste, ich habe etwas vergessen. Vielen Dank für die Köpfe hoch. Ich wollte es trotzdem mit einer zufälligen Antwort versuchen. BEARBEITEN: Seltsamerweise heben sich das Hinzufügen des Imports und das Entfernen der Einrückungsstufen des Funktions-Overheads gegenseitig auf. Seltsam.
Sherlock9
Können Sie Bytes sparen, indem Sie range(9)einer Variablen zuweisen , und &nicht .intersection?
Zacharý
Oder indem Sie eine Variable zuweisen rangeund diese dann verwenden?
Zacharý