Будь ласка, зробіть мої марсіанські домашні завдання


37

Моє домашнє завдання - написати марсіанський твір (див. Нижче) від 729 до 810 слів включно. Ваше завдання - написати програму, яка генерує есе.

Історія

На рубежі XX століття спіритуалістка Катрін-Еліза Мюллер нібито спілкувалася з марсіанами. Під час сомнамбулантних трансів вона писала б марсіанські сценарії. Психолог Теодор Флорні виявив, що її марсіанські твори дуже схожі на її рідну французьку мову, і у своїй книзі "Від Індії до планети Марс" він задокументував марсіанський алфавіт Катерини.

Далі слабко базується на цьому алфавіті з розширеним міфосом.

опис проблеми

Марсіанська мова має 21 букву, показану тут поруч із кожним еквівалентом латини:

enter image description here

На жаль, для Марсіана немає Unicode (незважаючи на те, що Марс є частиною Всесвіту), тому ми застрягли, використовуючи латинські символи.

Якщо в англійській мові наші фонеми розпадаються на два основні типи (приголосні / голосні), які ми вільно відображаємо на літери, у Марсіана є три типи літер:

  • Голосні звуки: aeimnou
  • Жорсткі приголосні: bcdgkpt
  • М’які приголосні: fhlrsvz

Крім цього, марсіанська мова містить єдиний розділовий знак - період.

Марсіанський слово являє собою набір з 3 -х до 9 букв. Усі марсіанські слова містять принаймні одну голосну, одну тверду приголосну та одну м'яку приголосну (у будь-якому домовленості). Так , наприклад, fng, cdaz, vpiі pascalє марсіанські слова.

Марсіанський пропозицію являє собою набір з 3 до 9 марсіанських слів , розділених пробілами і подальшого період.

Марсіанський пункт являє собою набір 3 до 9 марсіанських пропозицій , розділених пробілами і подальшим переведенням рядка.

А Марсіанський есе являє собою збірник марсіанських пунктів , який не містить суміжні повторів слів.

А Суміжне слово повторення будь-якої конструкції СС , де S являє собою безперервний набір слів. Зауважте, що це визначення ігнорує межі речення та абзацу.

Приклади

Зверніть увагу: за кожним прикладом є одна затримка нового рядка (оскільки всі абзаци Марсія закінчуються новим рядком)

Не марсіанський нарис

lorem ipsum dolor sit amet. quis nostrud напруга ullamco Laboris.

...з багатьох причин. Цей приклад - проілюструвати деякі різні правила:

  • lorem - не марсіанське слово, оскільки воно не має твердих приголосних.
  • amet - це не марсіанське слово, оскільки воно не має м'яких приголосних. (m є марсіанським голосним).
  • quis - це не марсіанське слово, оскільки воно не має твердих приголосних
  • quis - не марсіанське слово, оскільки q - це марсіанське письмо
  • Вправа - це не марсіанське слово, оскільки воно містить більше 9 букв
  • вправа не є марсіанським словом, оскільки х - не марсіанське письмо

Марсіанський нарис

fng cdaz vpi. паскаль зламався основний. макаронні смаки.

... тому що це марсіанський абзац. Марсіанський абзац містить три марсіанські речення.

Не марсіанський нарис

fng cdaz vpi. паскаль зламався основний. безкоштовні правила Pascal.

... так як free pascal rules.НЕ марсіанин пропозицію, тому що ні freeні rulesНЕ марсіанські слова, тому що вони не мають жодних - або жорстких приголосних звуків.

Марсіанський нарис

fng cdaz vpi. паскаль зламався основний. макаронні смаки.
cdaz vpi fng. основні перерви паскаль. поплери сильно пробивають. fng cdaz vpi.

... який містить два марсіанські абзаци. Речення fng cdaz vpi.з’являється двічі, але це абсолютно чудово.

Не марсіанський нарис

макаронні смаки fng. cdaz vpi pascal. зламав fng cdaz vpi.
Паскаль розбив планети омікрон. основні лякають козлів. vpi piv vpi.

... тому що конструкція fng. cdaz vpi pascal. broke fng cdaz vpi. [nl] pascal broke- це суміжне повторення слова.

Виклик

Ваше завдання полягає в тому, щоб написати функцію або програму, яка не приймає жодних даних, яка буде результатом мого домашнього завдання; тобто ваша програма повинна генерувати марсіанські нариси від 729 до 810 слів (включно). Майте на увазі, висновок вашої програми повинен бути дійсним марсіанським есе, але не потрібно генерувати його випадковим чином чи іншим разом кожного разу. Все, що ви робите для створення дійсного марсіанського нарису .

Я написав програму C ++ для перевірки рефератів, якими ви можете користуватися.

Це код гольфу. Виграє найкоротший код у байтах. Стандартні лазівки заборонені.


4
Попплери чудово смакують ... Це та посилання на
футураму

2
Крім того, хоча я відповів DrMcMoylex у чаті, лише для запису тут ... так. (FYI, вимога до слів 729 та 810, що становить від 1000 до 1100 слів у базі 9, також є непрямою посиланням )
H Walters

1
Зробив трохи джиггери покер, щоб отримати один показ.
Джонатан Аллан

9
Я думаю, що це перший раз, коли я бачив запитання "Зробіть домашнє завдання для мене" про codegolf. Зазвичай вони знаходяться на стаковому потоці. :-)
Рей

4
"Основні лякають козлів": / Я можу підтвердити, що це неправда
Пуховик

Відповіді:


14

05AB1E , 25 24 22 20 байт

-2 байти завдяки Еміньї (Значний рефактор, спасибі людина).

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

Спробуйте в Інтернеті!

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.

Виявляється, версія 810 слів коротша, ніж версія 729 слів.

Вихід:

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
Схоже, нам обом потрібно знайти ще одне врятування :)
Джонатан Аллан

"."може бути '.на 1 байт.
Емінья

1
Або A7£œJðý72ô€¨'.«9ô9£»за 20.
Емінья

Ой. Справедливі дос !!
Джонатан Аллан

27

Желе , 28 26 25 24 23 байт

-1 байт завдяки carusocomputing (замініть слово thimbleна abcdefg)

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

СпробуйтеItOnline!

Як?

Складає перелік усіх 362880перестановок перших семи дев'яти літер англійського алфавіту abcdefghi, які мають усі властивості марсіанських слів і всі виразні, і формулює їх у есе за допомогою перших 729слів.

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

* період


2
Ви можете зберегти байти, використовуючи перші 7 символів алфавіту abcdefg.
Чарівна урва восьминога

1
Gahhh ... Це був байт, з яким я теж міг бити тебе. Я німий ха-ха.
Чарівна урва восьминога

У мене є відчуття, що ти все одно потрапиш!
Джонатан Аллан

4
Тег, ти це, знайди інший байт;).
Чарівна урва восьминога

10

Рубі, 86 83 82 79 байт

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

Хитрість: надрукуйте всі цифри між 102000000 та 102222222 у базі 3


Звідки береться 102М?
Mukul Kumar

Числа між 102000000 та 102222222 (основа 3) стають 9-літерними словами. 8019 основа 10 - це 102М база 3.
ГБ

8

Python 3, 121 119 байт

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

Як?

Відлічується від i=729і отримує список букв i-ї перестановки 'thimble'як наступне виразне марсіанське слово ( list(permutations('thimble'))[i]).

Уникає ''.join(...)використання *expressionрозпакування списку при зміні роздільника за замовчуванням на printпробіл до порожнього рядка ( sep='').

Використовує endаргумент printдля необов'язкового додавання пробілів, повних зупинок та каналів рядків за потребою, використовуючи модульну арифметику. Повна зупинка йде після кожного дев’ятого слова ( '.'*(i%9<1)), а канал рядка йде після кожного вісімдесят першого слова, інакше це робиться пробіл, що досягається шляхом індексації у двох символьних рядках ( ' \n'[i%81<1]).


8

Математика, 113 байт

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

Безіменна функція, яка видає рядок як вихід; цей рядок - це марсіанський твір, де кожне речення має три слова, а кожен абзац - три речення. (Детермінований вихід нижче.)

Ядро алгоритму використовує класний математичний факт, що відмінності послідовності Тю-Морзе утворюють нескінченну послідовність із трьох символів –1, 0 та 1, що не має суміжних повторів із цифрами. Differences@Array[ThueMorse,730]генерує цю послідовність до довжини 729.

Потім "ark"["bus","car"][[#]]&/@застосовується до цієї послідовності; це перетворює кожен 1 в "шину" (перший аргумент), кожен -1 на "автомобіль" (останній аргумент), а кожен 0 - на "ковчег" (функціональна голова). (p=Partition)[...,3]~p~3поділяє цю послідовність слів на вкладені списки, кожен складається з трьох списків по три слова кожен. Нарешті, StringRiffle[...,n=".\n",". "," "]з'єднайте всі слова разом, з різними роздільниками, залежно від рівнів списку; і <>nдодає заключний період та новий рядок.

Вихід точно не виглядає без повторень ....

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.

Математика, 100 байт

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

Прямий порт алгоритму Jelly Allen's Jelly.


Я бачу там автомобіль-автобус-автобус
руйнівний лимон

Зачекайте nvm тільки на моєму дисплеї
лимон

Це було б коротше, ніж просто зробитиPrint@"fng cdaz vpi. pascal broke basic. popplers taste great."
Павло

1
@Pavel Чудово вірний твір, але ви близько 720 слів соромлячись мого домашнього завдання.
H Walters

@HWalters Я бачу, я неправильно прочитав проблему. На жаль
Павло

4

PHP, 86 байт

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

Створює рандомізований нарис 729 слів, який не повторює жодного слова.
Використовуйте як:

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

4

///, 95 байт

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

(додатковий новий рядок в кінці, тут не видно)

Спробуйте в Інтернеті!

Реферат:

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 байт

Цей нарис містить 774 марсіанські слова зі словника 308 виразних слів, складених з усіх марсіанських букв.

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

Букви підбираються псевдовипадково, використовуючи наступну формулу:

(71^n mod 1000000000) mod 7

Де 71найменший прайм [1], для якого з цим модулем не з’являється суміжне повторення слова.


[1] Я тестував лише праймери під час написання цього коду. Найменший кандидат, який не є прем'єр-міністром 56.


3

Python 3, 404 270 332 339 285 266 259 байт

Це спроба створити випадковий марсіанський нарис, який я випадковим чином відбираю марсіанський алфавіт і перевіряю після цього, які слова працюють.

Редагувати: -10 байт із пропозиції Захарі Т для використання R=range. -9 байт від зміни .intersection(w)до &set(w). -7 байт від зміни 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))

Вам не потрібні накладні функції функції, оскільки немає вводу, це може бути лише вміст файлу (тобто модуля). Вам не потрібно робити це випадковим чином (хоча, якщо ви хочете використовувати модуль, вам знадобиться import)
Джонатан Аллан

1
@JonathanAllan Я знав, що щось забув. Дякую за голову вгору Я хотів спробувати випадкову відповідь у будь-якому випадку. EDIT: Як не дивно, додавання імпорту та видалення відступів функції накладних даних скасовують один одного. Дивно.
Шерлок9

Чи можете ви зберегти байти, призначивши range(9)змінну, а також &замість .intersection?
Zacharý

Або присвоївши змінну range, а потім використати її?
Zacharý
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.