화성의 숙제를 해주세요


37

제 숙제는 729 단어와 810 단어 사이 의 화성 에세이 (아래 참조) 를 작성하는 것 입니다. 당신의 임무는 에세이를 생성 할 프로그램을 작성하는 것입니다.

역사

20 세기 초, 영적 주의자 캐서린 엘리스 ül 러는 화성인들과 의사 소통을했다. somnambulatory 트랜스 동안 그녀는 화성 대본을 쓸 것입니다. 심리학자 테오도르 플로 니 (Téodore Flourney)는 화성의 글이 그녀의 모국어 프랑스어와 매우 유사하다는 것을 발견했으며 그의 책 "인도에서 행성 화성까지"에서 캐서린의 화성 알파벳을 기록했습니다.

다음은되고 느슨하게 확장 신화와 그 알파벳에 따라.

문제 설명

화 성어에는 21 개의 문자가 있으며 각 라틴어 옆에 다음과 같이 표시됩니다.

여기에 이미지 설명을 입력하십시오

불행히도 화성의 유니 코드는 없지만 (화성은 우주의 일부 임에도 불구하고) 라틴 문자를 사용합니다.

영어에서 음소는 두 가지 주요 유형 (자음 / 모음)으로 나뉘며, 문자에 느슨하게 매핑됩니다. Martian에는 세 가지 유형의 문자가 있습니다.

  • 모음 : aeimnou
  • 딱딱한 자음 : bcdgkpt
  • 부드러운 자음 : fhlrsvz

이 외에도 화 성어에는 구두점 (마침표)이 포함되어 있습니다.

화성 단어는 3 ~ 9 문자의 집합입니다. 모든 화 성어 단어에는 모음, 모음, 강자 음, 연 자음이 있습니다 (어떤 배열이든). 예를 들어, fng, cdaz, vpi, 그리고 pascal화성의 단어입니다.

화성 문장 3~9 화성 단어 구역으로 구분하고, 다음주기의 세트이다.

화성 단락 3~9 화성 문장 공간으로 구분하고 개행 다음의 집합이다.

화성 에세이는 어떤 연속 단어의 반복을 포함하지 않는 화성 단락의 모음입니다.

인접한 워드 반복 S 단어의 연속 집합 인 모든 구성체 SS이다. 이 정의는 문장과 단락 경계를 무시합니다.

참고 : 각 예에는 하나의 후행 줄 바꿈이 있습니다 (모든 Martian 단락이 줄 바꿈으로 끝나기 때문에)

화성 에세이가 아님

lorem ipsum dolor 앉아 있습니다. quis nostrud exercitation ullamco laboris.

...여러 가지 이유로. 이 예는 몇 가지 기타 규칙을 설명하기위한 것입니다.

  • lorem은 단단한 자음이 없기 때문에 화성의 단어가 아닙니다.
  • amet은 부드러운 자음이 없기 때문에 화성의 단어가 아닙니다. ( m화성 모음입니다).
  • quis는 화성 어가 아니기 때문에 단단한 자음이 없기 때문에
  • q는 화성 문자가 아니기 때문에 quis는 화성 어가 아닙니다.
  • exercitation은 9 개 이상의 글자를 가지고 있기 때문에 화성의 단어가 아닙니다
  • x는 화성 문자가 아니기 때문에 운동은 화성 어가 아닙니다

화성 에세이

fng cdaz vpi. 파스칼 파산 기본. popplers는 맛이 좋습니다.

... 화성 문단이기 때문입니다. 화성 단락에는 세 개의 화성 문장이 있습니다.

화성 에세이가 아님

fng cdaz vpi. 파스칼 파산 기본. 무료 파스칼 규칙.

... 이후 free pascal rules.둘 때문에, 화성 문장하지 free않고 rules화성의 말 없다가 하드 자음이 없기 때문에.

화성 에세이

fng cdaz vpi. 파스칼 파산 기본. popplers는 맛이 좋습니다.
cdaz vpi fng. 기본 파스칼. popplers는 열심히 펀치. fng cdaz vpi.

두 개의 화성 단락이 포함되어 있습니다. 문장 fng cdaz vpi.이 두 번 나타나지만 완벽합니다.

화성 에세이가 아님

popplers는 fng를 맛 본다. cdaz vpi 파스칼. fng cdaz vpi를 끊었습니다.
파스칼은 오 미크론 행성을 무너 뜨 렸습니다. 기본은 염소를 두려워합니다. vpi piv vpi.

... 구문 fng. cdaz vpi pascal. broke fng cdaz vpi. [nl] pascal broke이 연속적인 단어 반복 이기 때문에 .

도전

당신의 도전은 입력을받지 않는 함수 나 프로그램을 작성하는 것입니다. 즉, 프로그램은 729 ~ 810 단어 (포함) 사이 의 화성 에세이 를 생성해야합니다 . 프로그램의 출력은 유효한 화성 에세이 여야하지만 매번 무작위로 또는 다르게 생성 할 필요는 없습니다. 유효한 화성 에세이를 생성하기 위해하는 모든 것 .

나는 한 에세이를 확인하는 C ++ 프로그램을 작성 당신이 사용할 수있는 것으로합니다.

이것은 코드 골프입니다. 바이트 단위의 최단 코드가 이깁니다. 표준 허점은 허용되지 않습니다.


4
Popplers는 맛이 좋다 ... futurama 참고 인가 : D
DJMcMayhem

2
또한 채팅에서 DrMcMoylex에 대답했지만 여기에 대한 기록 만 있습니다 ... 그렇습니다. (기초 9에서 1000에서 1100 단어 인 729 및 810 단어 요구 사항도 간접 참조입니다 )
H Walters

1
하나의 쇼를 얻기 위해 약간의 소름 끼치는 포커를했다.
Jonathan Allan

9
codegolf에서 "나에게 숙제를 해줘"라는 질문을 본 것은 이번이 처음이라고 생각합니다. 일반적으로 이들은 스택 오버 플로우에 있습니다. :-)
Ray

4
"기본은 염소를 두려워한다": / 이것이 거짓임을 확인할 수있다
Downgoat

답변:


14

05AB1E , 25 24 22 20 바이트

Emigna 덕분에 -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
우리 둘 다 지금 하나 더 저장해야 할 것 같습니다 :)
Jonathan Allan

"."할 수 있습니다 '.저장 1 바이트를 위해.
Emigna

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

아야. 공정한 일 !!
Jonathan Allan

27

젤리 , 28 26 25 24 23 바이트

carusocomputing 덕분에 -1 바이트 (단어를 thimble으로 대체 abcdefg)

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

TryItOnline!

어떻게?

영어 알파벳 362880의 처음 7 ~ 9 자의 모든 순열 목록을 작성합니다.이 알파벳 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.
Magic Octopus Urn

1
Gahhh ... 그것은 당신도 이길 수있는 바이트였습니다. 나는 멍청한 하하입니다.
Magic Octopus Urn

어쨌든 당신이 거기에 도착할 것 같은 느낌이 듭니다!
Jonathan Allan

4
태그, 당신은 다른 바이트를 찾습니다;).
Magic Octopus Urn

10

루비, 86 83 82 79 바이트

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

트릭 : 3에서 102000000에서 102222222 사이의 모든 숫자를 인쇄하십시오.


102M은 어디에서 왔습니까?
Mukul Kumar

102000000에서 102222222 사이 (숫자 3)의 숫자는 9 글자 단어가됩니다. 8019베이스 10은 102M베이스 3입니다.
GB

8

파이썬 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])

반복

어떻게?

에서 카운트 다운 i=729과 i 번째 순열의 문자의 목록을 가져옵니다 'thimble'다음 별개의 화성 단어로 ( list(permutations('thimble'))[i]).

피합니다 ''.join(...)(A)의 사용에 의해이 *expression의 기본 구분 기호를 변경하면서 목록을 풀고 print빈 문자열로 공간에서 ( sep='').

모듈 식 산술을 사용하여 필요에 따라 공백, 전체 정지 및 줄 바꿈을 선택적으로 추가 하는 end인수를 사용합니다 print. 전체 정지는 9 번째 단어 ( '.'*(i%9<1)) 마다 오고 행 피드는 80 번째 단어마다오고, 그렇지 않으면 두 문자 문자열 ( ' \n'[i%81<1]) 로 인덱싱하여 공백을 만듭니다.


8

수학, 113 바이트

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

출력으로 문자열을 생성하는 명명되지 않은 함수; 그 문자열은 각 문장에 3 개의 단어가 있고 각 단락에 3 개의 문장이있는 화성의 에세이입니다. (결정적 출력은 다음과 같습니다.)

알고리즘의 핵심은 Thue-Morse 시퀀스차이가 연속적인 숫자 반복이없는 세 개의 기호 –1, 0 및 1의 무한 시퀀스를 형성 한다는 멋진 수학적 사실을 사용합니다 . Differences@Array[ThueMorse,730]길이 729까지 해당 시퀀스를 생성합니다.

그런 다음 "ark"["bus","car"][[#]]&/@이 순서에 적용됩니다. 이것은 각 1을 "버스"(첫 번째 인수)로, 각각 –1을 "car"(마지막 인수)로, 각각 0을 "ark"(함수 헤드)로 변환합니다. (p=Partition)[...,3]~p~3이 일련의 단어를 각각 중첩 된 목록으로 나누고, 각각 3 개의 단어로 구성된 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.

Mathematica, 100 바이트

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

Jonathan Allen의 Jelly 알고리즘의 직접 포트.


나는 거기에 자동차 버스 자동차 버스를 본다
Destructible Lemon

내 디스플레이 만 기다리십시오
Destructible Lemon

그냥하는 것이 더 짧을 것입니다 Print@"fng cdaz vpi. pascal broke basic. popplers taste great."
Pavel

1
@Pavel 완벽하게 유효한 에세이이지만 숙제는 720 단어 정도입니다.
H Walters

@ HWalters 나는 문제를 잘못 읽었습니다. 죄송합니다.
Pavel

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

자바 스크립트 (ES6), 130 바이트

이 에세이에는 모든 화성 문자로 만들어진 308 개의 개별 단어 사전에서 774 개의 화성 단어가 포함되어 있습니다.

_=>[...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

파이썬 3 404 270 332 339 285 266 259 바이트

이것은 무작위로 Martian 에세이를 작성하여 무작위로 Martian 알파벳을 샘플링하고 어떤 단어가 작동하는지 확인하는 시도입니다.

편집 : Zachary T의 사용 제안에서 -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)))

언 골핑

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) 이 필요합니다.
Jonathan Allan

1
@JonathanAllan 나는 무언가를 잊었다는 것을 알고 있었다. 고마워요 어쨌든 임의의 대답을 시도하고 싶었습니다. 편집 : 이상하게도 가져 오기를 추가하고 함수 오버 헤드의 들여 쓰기 수준을 제거하면 서로 상쇄됩니다. 이상한.
Sherlock9

? 대신 range(9)변수 에 할당 하여 바이트를 절약 할 수 있습니까 ? &.intersection
Zacharý

또는에 변수를 할당 한 range다음 사용합니까?
Zacharý
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.