สามสามสาม!


66

เขียนโปรแกรมที่สร้างผลลัพธ์เช่น:

  1. ปรากฏอย่างน้อยสามอักขระที่แตกต่าง
  2. จำนวนครั้งของอักขระแต่ละตัวมีค่าเป็น 3

ยกตัวอย่างเช่นA TEA AT TEEเป็นผลผลิตที่ถูกต้องตั้งแต่แต่ละ 4 ตัวละครที่แตกต่างกันA, E, Tและ(space)เกิดขึ้น 3 ครั้ง

แน่นอนความท้าทายเกี่ยวกับหมายเลข 3 จำเป็นต้องมีข้อกำหนดที่สาม ดังนั้น:

  1. ตัวโปรแกรมเองต้องเป็นไปตามข้อกำหนดสองข้อแรก (ซึ่งหมายความว่าโปรแกรมของคุณจะมีความยาวอย่างน้อย 9 ไบต์)

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

นอกจากนี้เพื่อให้สิ่งที่น่าสนใจคุณได้รับการสนับสนุนอย่างมาก:

  • ไม่ใช้ความคิดเห็นเพื่อตอบสนองความต้องการ 3 ถ้าคุณสามารถช่วยได้
  • เพื่อสร้างผลผลิตที่ไม่ได้เป็นเพียงแค่สตริงซ้ำ 3 ครั้ง
  • เพื่อทำให้เอาต์พุตแตกต่างจากโปรแกรมเอง (สำหรับภาษาที่สามารถส่งออกเนื้อหาของโปรแกรมของตัวเองโดยอัตโนมัติคุณสามารถมีส่วนร่วมกับวิกิชุมชนนี้ )

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


5
การขึ้นบรรทัดใหม่นับเป็นอักขระที่แตกต่างหรือไม่?
Zeppelin

4
โปรแกรมที่ประกอบด้วยตัวอักษรทั้งหมดได้รับอนุญาตหรือไม่ (มีหลายภาษาที่123123123จะใช้งานได้ตามที่เขียนไว้ในปัจจุบัน)

2
@zeppelin ใช่การขึ้นบรรทัดใหม่ถือเป็นอักขระที่แตกต่างกัน
darrylyeo

2
สิ่งที่ฉันหมายถึงการถามคือผลลัพธ์ของโปรแกรมเช่นabcabcabcกับบรรทัดใหม่ต่อท้าย?
ETHproductions

1
@ ETHproductions อ่าฉันเข้าใจแล้ว ไม่ไม่ได้รับอนุญาต อย่างไรก็ตามการขึ้นบรรทัดใหม่สามบรรทัดจะเป็นที่ยอมรับได้
darrylyeo

คำตอบ:


59

Brain-Flak , Flakcats , Brain-Flueue , Brain-Flak Classic , MiniflakและFλakขนาด 18 ไบต์

พิสูจน์แล้วว่าเหมาะสมที่สุด!

((([()][()][()])))

ลองออนไลน์!

คำอธิบาย

Brain-Flak, Brain-Flueue, Miniflak และFλak

   ([()][()][()]) Push -3
  (              ) Copy
 (                ) Copy

ภาพพิมพ์นี้:

-3
-3
-3

(มีบรรทัดใหม่ต่อท้าย)

Brain-Flak Classic

Brain-Flak Classic เป็นเวอร์ชั่นดั้งเดิมของ Brain-Flak และมีความแตกต่างที่สำคัญบางอย่างจาก Brain-Flak ที่ทันสมัย ใน BFC [...]พิมพ์เนื้อหาของมันมากกว่าที่จะปฏิเสธมัน

   [()] Print 1
       [()] Print 1
           [()] Print 1
  (            ) Push 3
 (              ) Push 3
(                ) Push 3

ในตอนท้ายของการดำเนินการเนื้อหาของกอง ( 3 3 3) จะถูกพิมพ์

ภาพพิมพ์นี้:

1
1
1
3
3
3

(มีบรรทัดใหม่ต่อท้าย)

Flakcats

Flakcats นั้นค่อนข้างแตกต่างจาก Flakcats อีก 4 อันและฉันประหลาดใจที่มันใช้งานได้ใน Flakcats ตัวดำเนินการสามตัวที่นี่เกือบจะเหมือนกับตัวที่ใช้กับ Brain-Flak

ความแตกต่างที่สำคัญในโปรแกรมนี้โดยเฉพาะระหว่าง Flakcats คือตัว(...)ดำเนินการซึ่งใน Flakcats เทียบเท่ากับ([{}]...)ใน Brain-Flak อย่างไรก็ตามสิ่งนี้ไม่ได้สร้างความแตกต่างให้กับเราเพราะมันเลือกเลขศูนย์และดำเนินการในลักษณะเดียวกับที่ Brain-Flak ทำ

นี่คือโปรแกรมที่รวบรวมเป็น Brian-Flak:

([{}]([{}]([{}][()][()][()])))

ภาพพิมพ์นี้:

-3
-3
-3

(มีบรรทัดใหม่ต่อท้าย)

หลักฐานการเพิ่มประสิทธิภาพในBrain-Flakและ Miniflak

นี่ไม่ใช่ข้อพิสูจน์ที่เป็นทางการ แต่เป็นข้อพิสูจน์ที่ไม่เป็นทางการที่จะต้องมีการขยายเพื่อให้มีความเข้มงวดมากขึ้น

เนื่องจากข้อ จำกัด ที่โปรแกรม Brain-Flak ต้องเป็นแบบสตริงที่สมดุลและความยาวของโปรแกรมต้องเป็นผลคูณของ 3 การส่งที่ถูกต้องใด ๆ จะต้องเป็นผลคูณของความยาว 6 ซึ่งหมายความว่าวิธีแก้ปัญหาใด ๆ ที่น้อยกว่า 18 จะต้องมีความยาว 12

เนื่องจากการขึ้นบรรทัดใหม่ของเอาต์พุตความสูงสุดท้ายของสแต็กต้องเป็นทวีคูณของสามหรือเราจะทำลายข้อ จำกัด ของเอาต์พุต

การส่งความยาว 12 ที่ถูกต้องใด ๆ จะต้องมีเครื่องหมายวงเล็บ 2 ประเภท (การมีน้อยกว่าจะทำให้ข้อ จำกัด เกี่ยวกับจำนวนของอักขระที่แตกต่างกันและมากกว่านั้นจะมีความหมายมากกว่า 12 อักขระ) เนื่องจากโปรแกรมสร้างเอาต์พุตมันจะต้องมีการพุช

สิ่งนี้ทำให้เราเลือกวงเล็บปีกกาอื่น ตัวเลือกคือ:

<...>/<>

สิ่งนี้ล้มเหลวเนื่องจากเราจำเป็นต้องสร้าง "คุณค่า" เพื่อสร้างหมายเลขใด ๆ นอกเหนือจากศูนย์เราต้องยอมแพ้()เพื่อสร้างหมายเลขหนึ่งซึ่งทำให้ไม่สามารถผลักดันได้มากกว่าสองครั้ง


[...]/[]

สิ่งนี้ล้มเหลวด้วยเหตุผลเดียวกันกับความล้มเหลวครั้งสุดท้าย เครื่องมือจัดฟันแบบเหลี่ยมนั้นแย่มากในการสร้างคุณค่า []monad สามารถสร้างมูลค่า แต่เราจำเป็นต้องผลักดันตัวเลขแรกและเราก็ไม่ได้มี parens เหลือพอที่จะผลักดันสามครั้ง


{...}/{}

อันนี้สัญญาว่าเราสามารถสร้างลูปและใช้อันใดอันหนึ่ง()เพื่อผลักดันหลาย ๆ ครั้ง แต่ก็เป็นไปไม่ได้

เพื่อให้ลูปสิ้นสุดต้องมีศูนย์ในสแต็คในบางจุดและเพื่อให้เรามีเอาต์พุตที่ถูกต้องเราต้องมีสิ่งอื่นที่ไม่ใช่ศูนย์ในสแต็คที่ส่วนท้ายของโปรแกรม เนื่องจากเรามีค่า[]มิได้<>ศูนย์ในตอนท้ายของวงต้องเป็นศูนย์โดยปริยายจากด้านล่างของสแต็ค ซึ่งหมายความว่าการวนซ้ำไม่สามารถเพิ่มหมายเลขใหม่ใด ๆ ลงในสแต็กทำให้ไร้ประโยชน์


เนื่องจากไม่มีตัวเลือกวงเล็บปีกกาสามารถสร้างโปรแกรมที่มีความยาว 12 จึงไม่มี

เนื่องจาก Miniflak เป็นส่วนหนึ่งของ Brain-Flak โปรแกรม Miniflak ที่สั้นกว่าก็จะเป็นโปรแกรม Brain-Flak ที่สั้นกว่าดังนั้นจึงไม่มีอยู่

หลักฐานการเพิ่มประสิทธิภาพในสมอง -Lueue

Brain-Flueue เป็นภาษาตลกที่สร้างจาก Brain-Flak ทั้งสองเหมือนล่ามของพวกเขาเหมือนกันทุกที่ แต่สองบรรทัด ความแตกต่างระหว่างสองอย่างนี้คือ Brain-Flueue เก็บข้อมูลไว้ในคิวขณะที่ Brain-Flak จัดเก็บข้อมูลไว้ในกอง

ในการเริ่มต้นเรามีข้อ จำกัด ขนาดโปรแกรมที่สร้างขึ้นโดย Brain-Flak ดังนั้นเราจึงกำลังมองหาโปรแกรมขนาด 12 นอกจากนี้เราจะต้องมี(...)เพื่อสร้างเอาต์พุตและคู่อื่น <>และ[]คู่ที่ไม่ได้ทำงานในสมอง Flueue ด้วยเหตุผลเดียวกันแน่นอนพวกเขาไม่ได้ทำงานในสมอง Flak

((())){{{}}}ตอนนี้เรารู้ว่าโปรแกรมของเราจะต้องประกอบด้วยตัวอักษร

ผ่านวิธีการเดียวกันกับที่ใช้ในหลักฐานก่อนหน้านี้เราสามารถแสดงให้เห็นว่าต้องมีการวนซ้ำในโปรแกรมสุดท้าย

ตอนนี้ที่นี่เป็นที่ที่การพิสูจน์แตกต่างกันเนื่องจาก Brain-Flueue ทำงานข้ามคิวแทนที่จะเป็นกองโปรแกรมสามารถออกจากลูปด้วยค่าในคิว

เพื่อออกจากลูปเราจะต้องมีศูนย์ในคิว (หรือคิวที่ว่างเปล่า แต่ถ้าคิวว่างเปล่าเราได้รับปัญหาเดียวกันกับ Brain-Flak) นี่จะหมายความว่าเราจะต้องเปิดโปรแกรมของเราด้วย({})เพื่อสร้าง ศูนย์. เราจะต้องกดภายในวงเพื่อผลักดันจำนวนรายการที่จำเป็นไปยังคิว เราจะต้องกดตัวเลขที่ไม่ใช่ศูนย์ก่อนหน้าลูปเพื่อให้เราสามารถใส่ลูปได้เลย (())นี้จะเสียค่าใช้จ่ายเราได้ที่น้อยที่สุด ตอนนี้เราใช้ parens มากกว่าที่เรามี

ดังนั้นจึงไม่มีโปรแกรม Brain-Flueue ที่จะทำงานที่ขนาด 12 ไบต์และโปรแกรมของเราก็เหมาะสมที่สุด

ทางออกที่ดีที่สุดในFlakcatsและBrain-Flak Classic

วิธีแก้ปัญหาต่อไปนี้ดีที่สุดใน Flakcats และ Brain-Flak Classic

((([][][])))

คำอธิบาย

    [][][] -3
 (((      ))) push 3 times

ทางเลือก 24 โซลูชั่น Brain-Flak

(<((<((<(())>)())>)())>)

ลองออนไลน์!

((<((<((<>)())>)())>)())

ลองออนไลน์!

((((((()()()){}){}){})))

ลองออนไลน์!


2
+1 สำหรับการพิสูจน์เช่นกัน
HyperNeutrino

3
+1 สำหรับกลุ่มคนเช่นกัน เอาต์พุตไม่เหมือนกันทั้งหมด
Shieru Asakoto

27

เยลลี่ขนาด 9 ไบต์

**‘‘‘888*

โปรแกรมเต็มรูปแบบซึ่งพิมพ์700227072ซึ่งเป็น 888 cubed

TryItOnline!

อย่างไร?

**‘‘‘888* - Main link: no arguments
          - implicit L=R=0
*         - power       A = L ^ R = 1
  ‘       - increment   B = L + 1 = 1
 *        - power       C = A ^ B = 1
   ‘      - increment   D = C + 1 = 2
    ‘     - increment   E = D + 1 = 3
     888  - literal     F = 888
        * - power           F ^ E = 700227072

5
888^3คือ700227072อะไร มันฉลาดมากบางทีภาษาอื่นอาจใช้กลอุบายนี้ได้
ETHproductions

23

หลายภาษาของคำตอบที่แท้จริงอย่างแท้จริง 9 ไบต์

333111222

นี่เป็นวิกิชุมชนโพสต์สำหรับการรวบรวมคำตอบที่เป็นเพียงตัวอักษรที่ภาษาที่เป็นปัญหาพิมพ์ออกมาโดยอัตโนมัติ เนื่องจากเป็นวิกิชุมชนคุณสามารถแก้ไขได้เพื่อเพิ่มภาษาอื่น ๆ

โปรแกรมนี้ทำงานใน:

  • PHP
  • HTML (ไม่ใช่ภาษา)
  • เยลลี่ (และM )
  • 7 (น่าสนใจยิ่งขึ้นเนื่องจากโปรแกรมตีความว่าเป็นทั้งข้อมูลและรหัสโดย3พิมพ์ครั้งแรกข้อมูลส่วนที่เหลือของโปรแกรมคือการจัดการสแต็กที่ไร้ประโยชน์)
  • CJam
  • Japt
  • แครอท
  • R (จอแสดงผล R ยังเอาต์พุต [1] เป็นเมทาดาทา)
  • RProgN
  • จริง ๆ (แม้ว่ามันจะพิมพ์จริง2\n2\n2\n1\n1\n1\n3\n3\n3\n)
  • ///
  • Noodel
  • TI-Basic
  • SimpleTemplate
  • ReRegex
  • แกลบ
  • ทรัพยากร (แม้ว่าสิ่งนี้จะส่งกลับสตริงที่ตรงกันข้าม)

หากไม่สนใจบรรทัดใหม่สุดท้ายสิ่งนี้จะใช้ได้ในอีกไม่กี่ภาษา:

ลิงค์ส่วนใหญ่ไปที่ลองออนไลน์!


3
ภาพนี้พิมพ์2\n2\n2\n1\n1\n1\n3\n3\n3\nในความเป็นจริงซึ่งใช้ได้จริง ควรเพิ่มที่โพสต์หรือไม่
ETHproductions

@ETHproductions ที่จริงผมคิดว่าที่จริงควรจะเพิ่มการโพสต์เพราะใช้รหัสเดียวกัน;)
Kritixi Lithos

ในฐานะบุคคลที่ทำจริงฉันเห็นด้วยว่ามันเป็นของโพสต์นี้ บรรทัดใหม่ไม่ได้สร้างความแตกต่างจริงๆ
Mego

นอกจากนี้ยังทำงานกับภาษาที่ผมเคยเขียน: SimpleTemplate มันจะรวบรวมมันเป็น over-kill echo '333111222';(ใน PHP) แต่ใช้งานได้
Ismael Miguel

4
@IsmaelMiguel: นี่คือคำตอบของวิกิชุมชน มันเป็นเพียง 29% เขียนโดย ETHproductions (และในความเป็นจริงมันเป็นฉันที่สร้างคำตอบอย่างที่คุณเห็นจากประวัติศาสตร์การแก้ไข ETHproductions มีข้อความเพิ่มเติมในรุ่นปัจจุบันของคำตอบมากกว่าคนอื่น แต่แน่นอนไม่ได้ ' ไม่รับผิดชอบต่อสิ่งทั้งหมด) จุดประสงค์ทั้งหมดของมันคือการแก้ไขโดยผู้ใช้จำนวนมากในฐานะความร่วมมือ (สิ่งนี้แตกต่างจากคำตอบปกติซึ่งไม่ได้ออกแบบมาให้แก้ไข)

21

C #, 114 111 118 102 ไบต์

หากเราไม่สนใจการใช้คำที่เหมาะสม: (102 ไบต์)

class CCcddiilMMmmnrrSSsttvvWWyy{static void Main(){{System.Console.Write(("A TEA AT TEE"));;;}}}///".

ถ้าเราสนใจคำที่เหมาะสม: (120 ไบต์)

class erebeWyvern{static void Main(){int embedWildbanana;{System.Console.Write(("A TEA AT TEE"));;}}}///CC Myst mvcSMS".

เอกสารต้นฉบับของฉัน - ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่: (113 ไบต์)

class EreBeWyvern{static void Main(){int embedwildbanana; {System.Console.Write(("A TEA AT TEE"));;}}}/// vyt".

ฉันรู้ว่าความคิดเห็นนั้นไม่ได้อยู่ในจิตวิญญาณของ CG แต่มันคือทั้งหมดที่ฉันสามารถทำได้ในระยะเวลาที่ จำกัด ฉันจะดูว่าฉันสามารถปรับปรุงได้ตลอดทั้งวัน แน่นอนฉันต้องได้รับคะแนนโบนัสอย่างน้อยเพื่อพยักหน้าให้เป็นนักผจญภัย

แก้ไข: ขอบคุณ roberto06 ที่จับตัวอักษรที่หายไป!


1
ฉันเป็นผู้ชาย C ++ ไม่ใช่ C # แต่คุณไม่สามารถรวมการโทรเขียนใน {()} โดยไม่ส่งผลกระทบต่อมันได้หรือไม่
Sparr

1
คุณอาจใส่วงเล็บในการโต้แย้งมากกว่าการโทรโดยรวม

7
บราวนี่ชี้ไปที่กล้วยป่า
darrylyeo

6
ดี! ฉันชอบชื่อตัวแปร +1
MildlyMilquetoast

1
คุณควรลบออกVจากความคิดเห็นของคุณและเพิ่มvytเนื่องจากVมีเฉพาะในขณะที่vมีอยู่สองครั้ง (พิมพ์ผิดฉันเดา) yยังมีอยู่สองครั้งและtมีอยู่ 5 ครั้ง ดูที่นี่ อย่างไรก็ตามงานที่ยอดเยี่ยม!
roberto06

18

JavaScript, 36 33 ไบต์

alert(((alert|alert||333111222)))

333111222การแจ้งเตือน งานนี้เพราะ|แปลงทั้งสองตัวถูกดำเนินการในการจำนวนเต็ม 32 บิตและค่าใด ๆ ที่ไม่ได้ดูอะไรเช่นจำนวนเต็ม (เช่นฟังก์ชั่นalert) 0ได้รับการแปลง 0|0คือ0ดังนั้น||ผู้ประกอบการส่งกลับตัวถูกดำเนินการที่เหมาะสมหรือ333111222

รุ่นที่น่าสนใจอีกไม่กี่:

(a="(trelalert)\\\"")+alert(a+=a+=a)

(trelalert)\"(trelalert)\"(trelalert)\"เอาท์พุท

โซลูชันที่ใช้.repeatจะมีความยาวเท่ากันขอบคุณที่แบ่งปันaert:

alert("(trpp.all)\\\"".repeat(3.33))

(trpp.all)\"(trpp.all)\"(trpp.all)\"ซึ่งเอาท์พุท

การใช้ประโยชน์จากแบ็กสแลชพิเศษเพื่อกำจัดlและใช้งานได้p เกือบ :

a\x6cert("(trax.cc)\"".re\x70eat(6.00677))

(trax.cc)"(trax.cc)"(trax.cc)"(trax.cc)"(trax.cc)"(trax.cc)"นี้หนึ่งเอาท์พุท


1
การละเมิดทศนิยมที่ดี!
darrylyeo

2
@darrylyeo Heh ขอบคุณ ฉันสามารถติดคนเหล่านั้นไว้ในสตริงได้อย่างง่ายดาย แต่นั่นคงไม่สนุกเท่า
ไหร่

คิดว่าฉันต้องการให้คุณรู้ว่าคุณกำลังราดโดยคำตอบ ES6
darrylyeo

14

CJam , 9 ไบต์

10,10,10,

เอาท์พุท 012345678901234567890123456789

ลองออนไลน์!

คำอธิบาย

10,       The range from 0 to 9
   10,    The range from 0 to 9
      10, The range from 0 to 9

3,3,3 ไม่ทำงาน 7 ไบต์ใช่ไหม
chim

Ah! ใช่ความต้องการที่สาม :)
ฉิม

Argh พลาดโอกาสในการใช้99,99,99,เพราะเหตุใด
เวิร์กโฟลว์

@workoverflow เพราะนั่นใช้ไม่ได้กับข้อกำหนดที่สาม โปรแกรมต้องมีอักขระที่แตกต่างกันสามตัว
DLosc

@Doscosc Touche ฉันลืมไปแล้ว!
เวิร์กโฟลว์

11

brainfuck , 12 ไบต์

++[+...][][]

ไม่มีใครพูดว่าผลผลิตจะต้องสั้น สิ่งนี้จะส่งออก 3 สำเนาของอักขระ ASCII ทุกตัวยกเว้น 2 ตัวแรก

คุณสามารถพิสูจน์ได้ว่ามันสั้นเท่าที่จะเป็นไปได้ คุณต้องส่งออกดังนั้นคุณต้อง 3 '.' จำเป็นต้องมีเอาต์พุตที่แตกต่างกันดังนั้นคุณต้องมี 3 [+ -] ตอนนี้เราต้องพิมพ์อักขระได้ถึง 6 ตัวซึ่งหมายถึงการเพิ่มอีก 6 '' ' หรือเพิ่มการวนซ้ำซึ่งจะเพิ่มอีก 6 ตัวอักษร

ลองออนไลน์!


10

Python 2, 36 30 ไบต์

เนื่องจากบรรทัดใหม่ที่ต่อท้ายไม่ได้รับอนุญาตนี่อาจสั้นที่สุดเท่าที่จะทำได้:

print"\\\""*3;print;print;3**3

ลองออนไลน์

เอาต์พุต\"สามครั้งตามด้วยบรรทัดใหม่สามบรรทัด


โปรแกรมด้านล่างจะไม่นับบรรทัดขึ้นบรรทัดใหม่ดังนั้นจึงไม่ถูกต้อง

27 ไบต์ :

print"""printprint"""*3*3*3

พิมพ์ 54 printของตัวละครแต่ละตัวใน

ลองออนไลน์


ความยาวเท่ากันเอาต์พุตที่สั้นกว่า:

print"""printprint*3*3"""*3

เอาท์พุท printprint*3*3printprint*3*3printprint*3*3


24 ไบต์:

print~9;print~9;print~9;

คุณสามารถทำได้print"""printprint*3*3"""*3เพื่อให้ได้ผลลัพธ์ที่สั้นกว่ามาก ;-)
ETHproductions

คุณไม่สามารถทำสิ่งprint 123;print 123;print 123;ที่ไร้เดียงสาได้หรือไม่?
ETHproductions

OP ชี้แจงว่าบรรทัดใหม่ต่อท้ายไม่ได้รับอนุญาต (ดูความคิดเห็น)
FlipTack

1
@ ETHproductions แน่นอน มันขึ้นอยู่กับความไร้เดียงสาของเรา
mbomb007

3
ไร้เดียงสามากยิ่งขึ้น:print~9;print~9;print~9;
Sp3000

9

Perl 6 , 15 ไบต์

.say;.say;.say;

พิมพ์ตัวละครที่แตกต่างกันหกตัวสามตัวต่อครั้ง

(ใด ๆ )
(ใด ๆ )
(ใด ๆ )

ลองออนไลน์!

มันทำงานอย่างไร

  • การเรียกใช้เมธอดเปล่าทำงานในหัวข้อปัจจุบัน, $_.
  • $_เริ่มต้นจากการเป็นวัตถุประเภทประเภทAnyซึ่งพิมพ์เป็นsay(Any)

1
ตอนนี้ฉันมีเพลงYeah Yeah Yeahsติดอยู่ในหัวของฉัน
Stuart P. Bentley

9

C, 66 ไบต์

main(i){{for(i=0;i<3;i++){printf("""poop+fart=<3<3at0m=m0n""");}}}

เอาท์พุต

poop+fart=<3<3at0m=m0npoop+fart=<3<3at0m=m0npoop+fart=<3<3at0m=m0n    

เวอร์ชั่นเก่า 72 ไบต์

main(i){for(i=0;i<3;i++){printf("poop+fart=<3<3 at {\"0m=m0\"}" "\n");}}

2
ไม่เพียง แต่โค้ดของคุณจะเล็กกว่าที่ฉันทำมากนัก แต่มันก็มีบิตของเซ่อและฟาร์ท ไชโย
สลัว

9

JavaScript (ES6), 30 ไบต์

+alert((({alert}+{alert}+{})))

[object Object][object Object][object Object]เอาท์พุท

ทำงานโดยการสร้างวัตถุสามชิ้น:

  • สองแบบแรกเป็นแบบฟอร์ม{ "alert" : alert }โดยใช้สัญกรณ์ ES6{alert}

  • ที่สามเป็นวัตถุที่ว่างเปล่าง่าย ๆ

จากนั้นก็จะใช้การเชื่อมเข้าด้วยกันและทั้งสามมีการแสดงออกเหมือนเป็นสตริง,+[object Object]

การนำหน้าไม่ได้ผล+มีเพียงเพื่อกรอกจำนวน+อักขระ แต่ไม่เป็นอันตรายต่อเอาต์พุตของโปรแกรม


วิธีเอาชนะคำตอบ JS อื่น ๆ !
darrylyeo

คุณควรเพิ่ม(ES6)ในชื่อเรื่อง
darrylyeo

@Darrylyeo ขอบคุณ! :) และฉันเพิ่ม ES6
apsillers

8

PKod , 9 ไบต์

sonsonson

เอาท์พุท: 111222333


คำอธิบาย:

Background: PKod has only one variable that you mess with, with the code
This variable starts with default value of 0

s  -  Add next char to the variable, and jump over it. 
n  -  Print numeric value of variable

o มีรหัสตัวอักษร ASCII "111" เป็นทศนิยม ดังนั้น s จะเพิ่ม 111 ให้กับตัวแปรจากนั้นพิมพ์ตัวเลข "ลูกชาย" คนแรกทำให้มัน 111 และพิมพ์ 111 ต่อมาทำให้มันเป็น 222 และพิมพ์ 222 สุดท้ายทำให้มันเป็น 333 และพิมพ์ 333



7

Microscript II, 9 ไบต์

{{{~~~}}}

คำอธิบาย: สร้างบล็อครหัส แต่ไม่เรียกใช้ เมื่อการดำเนินการสิ้นสุดลงเนื้อหาของรีจิสเตอร์หลัก (IE บล็อครหัสนี้) จะถูกพิมพ์โดยปริยาย


คุณโพสต์สิ่งที่คล้ายกันในการท้าทาย Quine หรือไม่?
wizzwizz4

@ wizzwizz4 ใน{}ทางเทคนิคจะเป็น quine แต่ฉันไม่คิดว่ามันเป็นไปตามคำจำกัดความของเราของ "quine ที่เหมาะสม" อย่างไรก็ตามโปรแกรม"q"q(ซึ่งฉันส่งให้กับการท้าทายควินิน) นั้นทำได้
SuperJedi224

@ wizzwizz4: นั่นจะไม่เป็น quine ที่เหมาะสมเพราะตัวละครแต่ละตัวเป็นตัวแทนของตัวเอง

7

Hexagony , 9 ไบต์

x!!xx@@!@

ลองออนไลน์!

120120120พิมพ์ออกมา xสามารถถูกแทนที่ด้วยf-m(102-109)

คำอธิบาย

  x ! ! 
 x x @ @
! @ . . .

xx@@เป็นเพียงฟิลเลอร์เพื่อให้สอดคล้องกับกฎ โฟลว์หลักกำลังบันทึกxลงในหน่วยความจำ (ด้วยค่า ASCII 120) จากนั้นพิมพ์เป็นจำนวน 3 ครั้ง


7

C, 111 ไบต์

(โปรดทราบว่าการนับไบต์เป็นตัวเลขสามตัวเช่นเดียวกันว้าวคุณไม่สามารถทำเมตาได้มากกว่านั้น)

#include<stdio.h>
#define b "<acdhlmoprsu>."
#define t "en"
main(){{{printf(("<acdhlmoprsu>." b b t t t));;;}}}

พิมพ์:

<acdhlmoprsu>.<acdhlmoprsu>.<acdhlmoprsu>.enenen


5

99 , 15 ไบต์

9 9  9999
9
9
9

นั่นคือเก้าเก้าสามช่องว่างและสามสายฟีดออกเป็น-1110-1110-1110

ลองออนไลน์!

อย่างไร?

9 9  9999 - V(9)=V(9)-V(9999)=1-1111=-1110
9         - print V(9)
9         - print V(9)
9         - print V(9)

ช่องว่างสองช่องจะถือว่าเป็นหนึ่งช่องว่างที่สามนี้อาจเป็นช่องว่างต่อท้ายบนบรรทัดใดก็ได้เช่นกัน


5

Bash + coreutils, 15 9 ไบต์

id;id;id;

ลองออนไลน์!

ตัวอย่างผลลัพธ์:

uid=1000 gid=1000 groups=1000 context=system_u:unconfined_r:sandbox_t:s0-s0:c19,c100,c173,c211
uid=1000 gid=1000 groups=1000 context=system_u:unconfined_r:sandbox_t:s0-s0:c19,c100,c173,c211
uid=1000 gid=1000 groups=1000 context=system_u:unconfined_r:sandbox_t:s0-s0:c19,c100,c173,c211

(หากคุณลองทำเช่นนี้มันจะพิมพ์ uid, gid, ฯลฯ 3 ครั้ง)


หากคุณต้องการหลีกเลี่ยงการซ้ำสตริงเดิม 3 ครั้ง (และยังมีเอาต์พุตเดียวกันสำหรับทุกคนไม่เหมือนคำตอบแรกของฉัน) สิ่งที่ดีที่สุดที่ฉันพบสำหรับ bash + Unix Utilities คือ 15 ไบต์ยาว:

dc<<<cczdzfzfdf

ลองรุ่นที่สองนี้ทางออนไลน์!

เอาท์พุท:

2
0
0
3
2
0
0
3
3
2
0
0

(ไม่มีบรรทัดใหม่ในโปรแกรม 12 บรรทัดใหม่ในผลลัพธ์)

คำอธิบายของโปรแกรม dc ในคำตอบนี้:

c Clears the stack.
Stack: (empty)

c Clears the stack.
Stack: (empty)

z Pushes the current size of the stack (0) onto the stack.
Stack: (top) 0

d Duplicates the item at the top of the stack.
Stack: (top) 0 0

z Pushes the current size of the stack (2) onto the stack.
Stack: (top) 2 0 0

f Prints the stack, top to bottom, with a newline after each item printed (this prints the first 3 lines of the output, 2 / 0 / 0 /)

z Pushes the current size of the stack (3) onto the stack.
Stack: (top) 3 2 0 0

f Prints the stack, top to bottom, with a newline after each item printed (this prints the next 4 lines of the output, 3 / 2 / 0 / 0 /)

d Duplicates the item at the top of the stack.
Stack: (top) 3 3 2 0 0

f Prints the stack, top to bottom, with a newline after each item printed (this prints the final 5 lines of the output, 3 / 3 / 2 / 0 / 0 /)

คนที่สองทำงานอย่างไร
therealfarfetchd

@therealfarfetchd ฉันได้เพิ่มคำอธิบายลงในคำตอบแล้ว
Mitchell Spector

ประณาม dc มีพลังมากกว่าที่ฉันคิด งานที่ดี!
therealfarfetchd

@therealfarfetchd ขอบคุณ ฉันชอบ dc Btw มีคำผิดสองสามคำที่ฉันเพิ่งแก้ไข
Mitchell Spector

5

LOLCODE , 273 240 ( 360 286) ไบต์

HAI 1.2
I HAS A U
IM IN YR M UPPIN YR Q TIL BOTH SAEM Q 1
VISIBLE "Y SUB.EK"
IM OUTTA YR M
IM IN YR T UPPIN YR Q TIL BOTH SAEM Q 2
VISIBLE "Y SUB.EK"
IM OUTTA YR T
IM IN YR X UPPIN YR Q TIL BOTH SAEM Q 12
VISIBLE "IM"
IM OUTTA YR X
KTHXBYE

หมายเหตุบรรทัดใหม่ต่อท้ายและลองออนไลน์ บรรทัดที่สองนั้นมากหรือน้อยก็ได้และอาจถูกแทนที่ด้วยคำสั่งที่สั้นกว่า แต่ฉันเพิ่งเรียนรู้LOLCODEสำหรับปริศนานี้ เนื่องจากต้องใช้หมายเลขเวอร์ชันในบรรทัดแรกฉันจึงใช้ตัวเลขเพื่อเพิ่มลูปที่มีความยาว 1, 2 และ 0 mod 3 เพื่อให้แน่ใจว่าจะพิมพ์จำนวนอักขระที่ถูกต้อง จากนี้ฉันก็นับตัวละครแต่ละตัว (ด้วยเครื่องมือนี้) หากปรากฏเป็น 0 mod 3 ครั้งไม่จำเป็นต้องดำเนินการใด ๆ ถ้ามันปรากฏขึ้น 1 mod 3 ครั้งมันจะถูกเพิ่มไปที่ 1 และ 2-loop ดังนั้นมันจะปรากฏขึ้นสามครั้งในเอาต์พุต ถ้ามันปรากฏตัว 2 mod 3 ครั้งตัวละครจะถูกเพิ่มในวง 12 แก้ไข:โดยแทนที่แรกVISIBLE ด้วยการมอบหมาย (ยังคงไร้ประโยชน์ แต่ต้องมี 12 แทนที่จะเป็น 11 บรรทัดใหม่) ฉันสามารถตัด 33 ไบต์

เอาท์พุท (60 ไบต์):

Y SUB.EK
Y SUB.EK
Y SUB.EK
IM
IM
IM
IM
IM
IM
IM
IM
IM
IM
IM
IM

บันทึกบรรทัดใหม่ที่ตามมา

สิ่งที่ดีเกี่ยวกับการแก้ปัญหานี้เมื่อเปรียบเทียบกับคำตอบอื่น ๆ คือผลลัพธ์ที่สามารถจัดการกับข้อความที่มีความหมายค่อนข้างเอาท์พุท ตัวอย่าง (286 ไบต์ด้วยการขึ้นบรรทัดใหม่):

HAI 1.2
I HAS A U
IM IN YR MW UPPIN YR Q TIL BOTH SAEM Q 1
VISIBLE "YO SUB. EEEEK!"
IM OUTTA YR MW
IM IN YR STA UPPIN YR Q TIL BOTH SAEM Q 2
VISIBLE "YO SUB. EEEEK!"
IM OUTTA YR STA
IM IN YR XURG UPPIN YR Q TIL BOTH SAEM Q 12
VISIBLE "IMO U R SWAG! "
IM OUTTA YR XURG
KTHXBYE

ลองออนไลน์ เอาท์พุท (222 ไบต์ด้วยการขึ้นบรรทัดใหม่):

YO SUB. EEEEK!
YO SUB. EEEEK!
YO SUB. EEEEK!
IMO U R SWAG! 
IMO U R SWAG! 
IMO U R SWAG! 
IMO U R SWAG! 
IMO U R SWAG! 
IMO U R SWAG! 
IMO U R SWAG! 
IMO U R SWAG! 
IMO U R SWAG! 
IMO U R SWAG! 
IMO U R SWAG! 
IMO U R SWAG! 

น่าเศร้าที่ฉันไม่เก่งกับแอนนาแกรมอย่างที่ฉันคิด: ')


1
ยินดีต้อนรับสู่เว็บไซต์!
DJMcMayhem

@DJMcMayhem ขอบคุณ สิ่งใดที่ฉันต้องทำเพื่อให้ LOLCODE เป็นลิงก์อัตโนมัติที่ดีเมื่อฉันคัดลอกจากโพสต์อื่น (สไตล์ # [ภาษา]) ลิงก์ไปยังซอร์สโค้ดมีอยู่ในคำตอบ
SK19

วิธีที่ง่ายที่สุดคือเมื่อคุณใส่โปรแกรมของคุณใน TIO เพื่อใช้เมนูลิงค์และเลือก (หรือคัดลอก) ตัวเลือกสำหรับ "การส่งรหัสกอล์ฟ" ที่ให้แม่แบบสำหรับโพสต์ใหม่ ฉันคัดลอกส่วนที่คุณดูเหมือนจะหายไปจากที่นั่น
Ørjan Johansen

5

เปลือก

เพื่อล้อเล่น :) ( 9 ไบต์ )

ls;ls;ls;

หรือมากกว่านั้นอย่างจริงจัง ( 24 ไบต์ )

sed s/./sed.g./g <<< edg

ผลลัพธ์ :

sed.g.sed.g.sed.g.

5

PHP, 24 ไบต์

<?=111?><?=222?><?=333?>

1
ผลลัพธ์นี้คืออะไร มันทำงานยังไง?
DJMcMayhem

มันใช้ shorttag PHP <?พร้อมกับechoคำสั่งทันที<?=เพื่อส่งออก 123 3 ครั้ง
junkfoodjunkie

รุ่นที่สั้นกว่าที่คุณเพิ่งแก้ไขไม่ถูกต้องเนื่องจาก<= ?>อักขระไม่ปรากฏหลายครั้ง
DJMcMayhem

อ่าใช่ฉันรู้ว่ามีเหตุผลสำหรับฉบับดั้งเดิมเหมือนเดิม - ฉันทำตามข้อกำหนดอย่างสมบูรณ์ - ฉันจะเปลี่ยนกลับไป
junkfoodjunkie

4

แบตช์36 21 ไบต์

@echo
@echo
@echo

เอาท์พุท

ECHO is on.
ECHO is on.
ECHO is on.

แก้ไข: บันทึก 15 ไบต์ขอบคุณ @ P.Ktinos


2
จะไม่ทำงานของ echo 3 อย่างเดียวเหรอ? echo \ necho \ necho - แทนที่ \ n ด้วยบรรทัดใหม่ - มันดูถูกต้องสำหรับฉันimage.prntscr.com/image/ef96173169eb41168815203387d4975b.pngทำให้มันมี 14 ไบต์
P. Ktinos


4

Japt, 9 ไบต์

000OoOoOo

undefinedundefinedundefinedพิมพ์ ทดสอบออนไลน์!

คำอธิบาย

รหัสนี้ได้รับการ transpiled เป็น JavaScript ต่อไปนี้:

000,O.o(O.o(O.o()))

O.oเป็นฟังก์ชั่นที่ให้ผลลัพธ์บางอย่างโดยไม่ขึ้นบรรทัดใหม่ เมื่อไม่มีข้อโต้แย้งมันจะพิมพ์undefinedซึ่งอาจถือเป็นข้อผิดพลาด แต่มีประโยชน์ที่นี่ นอกจากนี้ยังส่งคืนundefinedดังนั้นสายทั้งสามจึงพิมพ์ออกundefinedมา

ฉันแน่ใจว่ามีวิธีอื่นอีกมากมายในการทำเช่นนี้ ...


1
O_o น่าสนใจ :)
geisterfurz007

4

05AB1E , 9 ไบต์ (ฉันเดาว่าคุณจะบอกได้ว่านี่คือส่วนหนึ่งของ PI)

-0 ไบต์ขอบคุณ Emigna / ETHProductions ทำให้การแก้ปัญหาถูกต้องมากขึ้น

žqžqžq???

รุ่นอื่น:

ž[g-Q]ž[g-Q]ž[g-Q]???

[g-Q] - สามารถใส่ตัวอักษร aQ ใด ๆ ที่นี่ตราบใดที่พวกเขาทั้งหมดตรง (ดูด้านล่าง)

ลองออนไลน์!

อธิบาย:

PI,PI,PI,SORT,JOIN,SORT,JOIN,SORT,JOIN.

ผลลัพธ์:

...111111222333333333444555555555666777888999999999

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

ผลลัพธ์ที่ไม่มี{ในรหัส:

3.1415926535897933.1415926535897933.141592653589793


การแสดงทางเลือก:

คำสั่งต่อไปนี้สามารถใช้แทน PI:

ž 23  > žg       push current year
        žh       push [0-9]
        ži       push [a-zA-Z]
        žj       push [a-zA-Z0-9_]
        žk       push [z-aZ-A]
        žl       push [z-aZ-A9-0_]
        žm       push [9-0]
        žn       push [A-Za-z]
        žo       push [Z-Az-a]
        žp       push [Z-A]
        žq       push pi
        žr       push e
        žu       push ()<>[]{}
        žy       push 128
        žz       push 256
        žA       push 512
        žB       push 1024
        žC       push 2048
        žD       push 4096
        žE       push 8192
        žF       push 16384
        žG       push 32768
        žH       push 65536
        žI       push 2147483648
        žJ       push 4294967296
        žK       push [a-zA-Z0-9]
        žL       push [z-aZ-A9-0]
        žM       push aeiou
        žN       push bcdfghjklmnpqrstvwxyz
        žO       push aeiouy
        žP       push bcdfghjklmnpqrstvwxz
        žQ       push printable ASCII character set (32-128)

2
ออกไปเล่นสำนวน สำหรับเคล็ดลับแม้ว่าจะได้รับหนึ่ง :)
geisterfurz007

ทำได้ดีนี่! ฉันไม่คิดว่าžv, žwหรือžxถูกต้องแม้ในขณะที่พวกเขาแต่ละคนมีเพียง 2 หลักที่แตกต่างกัน
ETHproductions

หืมอะไรคือจุดของคลาสตัวละครด้านหลัง?
ETHproductions

@ETHproductions ahhh ลืมเกี่ยวกับat least 3เป็นเพียง PI ในตอนแรกเมื่อฉันเขียนมัน คุณหมายถึงคลาสของตัวละครแบบย้อนหลัง?
Magic Octopus Urn

1
โปรดทราบว่านี่จะถูกต้องเฉพาะเมื่อคุณไม่นับบรรทัดใหม่ที่พิมพ์โดยนัย ที่สามารถแก้ไขได้อย่างง่ายดายโดยแทนที่JJJด้วย???แม้ว่า
Emigna

4

Cubix , 12 ไบต์

คำตอบที่น่าเบื่อนิดหน่อยจริงๆ เอาต์พุตสาม10s ตามด้วยบรรทัดใหม่

N@N@NOoOoOo@

ลองออนไลน์! แม็พกับคิวบ์

    N @
    N @
N O o O o O o @
. . . . . . . .
    . .
    . .

Nกด 10 ไปที่สแต็ก
Oox3 เอาต์พุต 10 และขึ้นบรรทัดใหม่
@หยุดโปรแกรม

เริ่มต้นN@N@ไม่ได้ถูกตี


ฉันนับจำนวนช่องว่าง 34: /
SK19

@ SK19 รหัสคือN@N@NOoOoOo@และไม่รวมถึงช่องว่างใด ๆ
MickyT

อาโอเคฉันคิดว่าคิวบ์จำเป็นต้องทำตามข้อกำหนดเช่นกัน
SK19




3

Befunge 93 , 9 bytes

...,,,@@@

TIO

พิมพ์0 0 0(พื้นที่ต่อท้ายตามด้วย 3 null null)

เพราะกองซ้อนของ Befunge เต็มไปด้วย 0 s เราจึงสามารถพิมพ์ทั้งอักขระ ASCII ด้วยค่านั้นและจำนวนเต็มเอง เนื่องจาก Befunge พิมพ์ช่องว่างโดยอัตโนมัติหลังจากจำนวนเต็มเราจึงเหลืออักขระ 3 ตัว

.พิมพ์0(พื้นที่ต่อท้าย) ,พิมพ์ null ไบต์และ@สิ้นสุดโปรแกรม

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