โปรดทำการบ้านอังคารของฉัน


37

การบ้านของฉันคือการเขียนเรียงความชาวอังคาร (ดูด้านล่าง) ระหว่าง 729 และ 810 คำรวม งานของคุณคือการเขียนโปรแกรมที่จะสร้างเรียงความ

ประวัติศาสตร์

ในช่วงเปลี่ยนศตวรรษที่ 20 ผู้เชื่อเรื่องภูติผีปีศาจแคทเธอรีน - เอลิเซ่มุลเลอร์ได้สื่อสารกับชาวอังคาร เธอจะเขียนสคริปต์ชาวอังคารออกมา นักจิตวิทยาThéodore Flourney ค้นพบงานเขียนของชาวอังคารของเธอคล้ายกับชาวฝรั่งเศสพื้นเมืองของเธอและในหนังสือของเขาที่ชื่อ

ต่อไปนี้จะขึ้นอยู่กับตัวอักษรที่มีการขยายมิ ธ อส

คำอธิบายปัญหา

ภาษา Martian มี 21 ตัวอักษรแสดงที่นี่ถัดจากแต่ละภาษาละตินเทียบเท่า:

ป้อนคำอธิบายรูปภาพที่นี่

น่าเสียดายที่ไม่มี Unicode สำหรับดาวอังคาร (แม้จะเป็นดาวอังคารเป็นส่วนหนึ่งของจักรวาล) ดังนั้นเราจึงใช้อักขระละติน

ในขณะที่ภาษาอังกฤษหน่วยเสียงของเราแบ่งออกเป็นสองประเภทหลัก (พยัญชนะ / สระ) ซึ่งเราแมปกับตัวอักษรอย่างหลวม ๆ อังคารมีตัวอักษรสามประเภท:

  • เสียงสระ: aeimnou
  • พยัญชนะแข็ง: bcdgkpt
  • พยัญชนะนุ่ม: fhlrsvz

นอกจากนี้ภาษา Martian ยังมีเครื่องหมายวรรคตอนเดียว - ช่วงเวลา

คำดาวอังคารเป็นชุดของ 3-9 ตัวอักษร คำอังคารทั้งหมดมีสระอย่างน้อยหนึ่งสระพยัญชนะแข็งหนึ่งตัวและพยัญชนะนุ่มหนึ่งอัน ตัวอย่างเช่นfng, cdaz, vpiและpascalเป็นคำที่ดาวอังคาร

อังคารประโยคคือชุดของ 3-9 คำอังคารคั่นด้วยช่องว่างและตามระยะเวลา

อังคารวรรคคือชุดของ 3-9 ประโยคอังคารคั่นด้วยช่องว่างและตามมาด้วยการขึ้นบรรทัดใหม่

อังคารเรียงความเป็นคอลเลกชันของวรรคดาวอังคารที่มีไม่มีซ้ำคำที่ต่อเนื่องกัน

การทำซ้ำคำที่ต่อเนื่องกันคือ SS ที่สร้างขึ้นโดยที่ S คือชุดคำที่ต่อเนื่องกัน โปรดทราบว่าคำจำกัดความนี้จะละเว้นขอบเขตประโยคและย่อหน้า

ตัวอย่าง

โปรดทราบ: มีการขึ้นบรรทัดใหม่ต่อท้ายแต่ละตัวอย่าง (เนื่องจากย่อหน้า Martian ทั้งหมดลงท้ายด้วยการขึ้นบรรทัดใหม่)

ไม่ใช่เรียงความของดาวอังคาร

Lorem ipsum dolor sit amet ออกไปออกกำลังกาย

... ด้วยเหตุผลหลายประการ ตัวอย่างนี้เพื่อแสดงกฎเบ็ดเตล็ด:

  • lorem ไม่ใช่คำอังคารเนื่องจากไม่มีพยัญชนะแข็ง
  • amet ไม่ใช่คำอังคารเนื่องจากไม่มีพยัญชนะนุ่ม ( mเป็นสระของดาวอังคาร)
  • quis ไม่ได้เป็นคำของดาวอังคารเพราะไม่มีพยัญชนะที่ยาก
  • quis ไม่ใช่คำของดาวอังคารเนื่องจาก q ไม่ใช่ตัวอักษรบนดาวอังคาร
  • การออกกำลังกายไม่ใช่คำอังคารเนื่องจากมีตัวอักษรมากกว่า 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 pascal fng cdaz vpi ที่พังแล้ว
ปาสกาลทำลายดาวเคราะห์ omicron แพะกลัวพื้นฐาน vpi piv vpi

... เพราะสิ่งปลูกสร้างfng. cdaz vpi pascal. broke fng cdaz vpi. [nl] pascal brokeเป็นคำที่ต่อเนื่องกัน

ท้าทาย

ความท้าทายของคุณคือการเขียนฟังก์ชั่นหรือโปรแกรมที่ไม่รับอินพุตซึ่งผลิตเป็นการบ้านของฉัน นั่นคือโปรแกรมของคุณควรสร้างเรียงความอังคารระหว่าง 729 และ 810 คำ (รวม) โปรดทราบว่าผลลัพธ์ของโปรแกรมของคุณจะต้องเป็นเรียงความของชาวอังคารที่ถูกต้อง แต่คุณไม่จำเป็นต้องสร้างมันขึ้นมาแบบสุ่มหรือแตกต่างกันในแต่ละครั้ง สิ่งที่คุณทำเพื่อสร้างที่ถูกต้องเขียนเรียงความอังคารนับ

ฉันได้เขียนโปรแกรม C ++ เพื่อตรวจสอบบทความที่คุณได้รับอนุญาตให้ใช้

นี่คือรหัสกอล์ฟ รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ ช่องโหว่มาตรฐานไม่อนุญาต


4
Popplers มีรสชาติที่ดี ... การอ้างอิงนั้นเป็นเช่นไร : D
DJMcMayhem

2
นอกจากนี้แม้ว่าฉันจะตอบ DrMcMoylex ในการแชทเพียงเพื่อบันทึกที่นี่ ... ใช่ (FYI ความต้องการคำ 729 และ 810 ซึ่งคือ 1,000 ถึง 1100 คำในฐาน 9 ก็เป็นข้อมูลอ้างอิงทางอ้อมด้วยเช่นกัน )
H Walters

1
ทำ pokery jiggery เล็กน้อยเพื่อให้ได้แสดง
Jonathan Allan

9
ฉันคิดว่านี่เป็นครั้งแรกที่ฉันได้เห็นคำถาม "ทำการบ้านให้ฉัน" กับ codegolf โดยปกติแล้วจะอยู่ใน stackoverflow ที่เหมาะสม :-)
Ray

4
"แพะกลัวพื้นฐาน": / ฉันสามารถยืนยันได้ว่านี่เป็นเท็จ
Downgoat

คำตอบ:


14

05AB1E , 25 24 22 20 ไบต์

-2 ไบต์ต้องขอบคุณ Emigna (ผู้ปรับปรุงที่สำคัญขอบคุณมนุษย์)

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

อุ๊ยตาย ยุติธรรม dos !!
Jonathan Allan

27

เยลลี่ , 28 26 25 24 23 ไบต์

-1 ไบต์ขอบคุณ carusocomputing (แทนที่คำthimbleด้วยabcdefg)

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

TryItOnline!

อย่างไร?

ทำรายการ362880เรียงลำดับทั้งหมดของตัวอักษรเจ็ดเก้าตัวแรกของตัวอักษรภาษาอังกฤษabcdefghiซึ่งทั้งหมดมีคุณสมบัติของคำ Martian และมีความแตกต่างทั้งหมดและจัดรูปแบบให้เป็นเรียงความโดยใช้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 ... นั่นคือ byte ที่ฉันสามารถเอาชนะคุณได้เช่นกัน ฉันเป็นใบ้ฮ่าฮ่า
Magic Octopus Urn

ฉันรู้สึกว่าคุณจะไปถึงที่นั่น!
Jonathan Allan

4
แท็กคุณอยู่แล้วค้นหาไบต์อื่น)
Magic Octopus Urn

10

Ruby, 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


102M มาจากไหน
Mukul Kumar

ตัวเลขระหว่าง 102000000 ถึง 102222222 (ฐาน 3) กลายเป็นคำที่มีตัวอักษร 9 ตัว 8019 base 10 คือ 102M base 3
GB

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และรับรายการตัวอักษรของการเรียงสับเปลี่ยน ith ของ'thimble'คำว่า Martian ที่แตกต่างกันถัดไป ( list(permutations('thimble'))[i])

หลีกเลี่ยง''.join(...)โดยการใช้*expressionเพื่อแกะรายการในขณะที่เปลี่ยนตัวคั่นเริ่มต้นสำหรับprintจากช่องว่างเป็นสตริงว่างเปล่า ( sep='')

ใช้endอาร์กิวเมนต์ของprintเพื่อเพิ่มช่องว่างตัวเลือกหยุดเต็มและตัวป้อนบรรทัดตามต้องการโดยใช้การคำนวณแบบแยกส่วน การหยุดแบบสมบูรณ์จะตามหลังทุกคำที่เก้า ( '.'*(i%9<1)) และการป้อนบรรทัดจะตามหลังทุก ๆ คำแปดสิบเอ็ดไม่เช่นนั้นช่องว่างจะเกิดขึ้นได้โดยการทำดัชนีในสตริงอักขระสองตัว ( ' \n'[i%81<1])


8

Mathematica, 113 ไบต์

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

ฟังก์ชันที่ไม่มีชื่อที่สร้างสตริงเป็นเอาต์พุต สตริงนั้นเป็นบทความของชาวอังคารที่แต่ละประโยคมีสามคำและแต่ละย่อหน้ามีสามประโยค (ผลลัพธ์ที่กำหนดไว้ด้านล่าง)

แก่นของอัลกอริธึมใช้ข้อเท็จจริงทางคณิตศาสตร์ที่ยอดเยี่ยมว่าความแตกต่างของลำดับ Thue – Morseก่อให้เกิดลำดับที่ไม่มีที่สิ้นสุดของสัญลักษณ์ทั้งสามคือ -1, 0 และ 1 ที่ไม่มีการซ้ำซ้อนของตัวเลขที่ต่อเนื่องกัน Differences@Array[ThueMorse,730]สร้างลำดับนั้นไปจนถึงความยาว 729

จากนั้น"ark"["bus","car"][[#]]&/@นำไปใช้กับลำดับนี้ สิ่งนี้จะแปลง 1 ถึง "bus" ทั้งหมด (อาร์กิวเมนต์แรก), แต่ละ –1 เป็น "car" (อาร์กิวเมนต์สุดท้าย) และแต่ละ 0 ถึง "ark" (หัวหน้าฟังก์ชัน) (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.

Mathematica ขนาด 100 ไบต์

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

พอร์ตโดยตรงของอัลกอริทึม Jelly ของ Jonathan Allen


ฉันเห็นรถยนต์รถบัสรถบัสในนั้น
เลมอนที่ถูกทำลายได้

รอ nvm เป็นเพียงส่วนแสดงผลของฉัน
เลมอนที่สามารถทำลายได้

มันจะสั้นกว่าเมื่อต้องทำPrint@"fng cdaz vpi. pascal broke basic. popplers taste great."
Pavel

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
@JanathanAllan ฉันรู้ว่าฉันลืมบางสิ่งบางอย่าง ขอบคุณสำหรับหัวขึ้น. ฉันต้องการลองคำตอบแบบสุ่มอยู่ดี แก้ไข: ผิดปกติพอเพิ่มการนำเข้าและลบระดับการเยื้องของค่าใช้จ่ายฟังก์ชั่นยกเลิกซึ่งกันและกัน แปลก.
Sherlock9

คุณสามารถบันทึก bytes โดยกำหนดให้range(9)กับตัวแปรเช่นเดียวกับ&แทน.intersection?
Zacharý

หรือโดยการกำหนดตัวแปรให้กับrangeจากนั้นใช้สิ่งนั้น?
Zacharý
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.