Ba-Ba-Ba!


66

Viết chương trình tạo đầu ra sao cho:

  1. Ít nhất ba nhân vật riêng biệt xuất hiện.
  2. Số lần xuất hiện của mỗi nhân vật là bội số của 3.

Ví dụ, A TEA AT TEElà một kết quả hợp lệ vì mỗi trong 4 nhân vật khác nhau, A, E, T(space), xảy ra 3 lần.

Tất nhiên, một thách thức về số 3 cần phải có yêu cầu thứ ba. Vì thế:

  1. Chương trình cũng phải tuân theo hai yêu cầu đầu tiên. (Điều này có nghĩa là chương trình của bạn sẽ dài ít nhất 9 byte.)

Bạn phải viết một chương trình đầy đủ, không phải là một chức năng. Hãy chắc chắn để hiển thị đầu ra chương trình của bạn trong câu trả lời của bạn.

Ngoài ra, để giữ cho mọi thứ thú vị, bạn rất khuyến khích:

  • không sử dụng ý kiến ​​để đáp ứng yêu cầu 3 nếu bạn có thể giúp nó
  • để tạo đầu ra không chỉ là một chuỗi lặp lại 3 lần
  • để làm cho đầu ra khác với chính chương trình (đối với các ngôn ngữ có thể tự động xuất nội dung của chương trình riêng, bạn có thể đóng góp cho wiki cộng đồng này ).

Đây là . Mã ngắn nhất trong byte thắng.


5
Do dòng mới tính (như một nhân vật riêng biệt)?
zeppelin

4
Là các chương trình bao gồm hoàn toàn bằng chữ được phép? (Có rất nhiều ngôn ngữ 123123123sẽ hoạt động, như được viết hiện tại.)

2
@zeppelin Có, dòng mới được tính là một ký tự riêng biệt.
darrylyeo

2
Điều tôi muốn hỏi là, một đầu ra chương trình có thể, ví dụ như abcabcabcvới một dòng mới không?
Sản phẩm ETH

1
@ETHproductions À, tôi hiểu rồi. Không, điều đó không được phép. Ba dòng mới sẽ được chấp nhận, tuy nhiên.
darrylyeo

Câu trả lời:


59

Brain-Flak , Flakcats , Brain-Flueue , Brain-Flak Classic , SolitairelakFλak 18 byte

Đã được chứng minh tối ưu!

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

Hãy thử trực tuyến!

Giải trình

Brain-Flak, Brain-Flueue, Solitairelak và Fλak

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

Bản in này:

-3
-3
-3

(Có một dòng mới)

Brain-Flak cổ điển

Brain-Flak Classic là phiên bản gốc của Brain-Flak và có một số khác biệt quan trọng so với Brain-Flak hiện đại. Trong BFC [...]in nội dung của nó chứ không phải phủ nhận nó.

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

Khi kết thúc thực hiện nội dung của ngăn xếp ( 3 3 3) được in.

Bản in này:

1
1
1
3
3
3

(Có một dòng mới)

Flakcats

Flakcats khá khác biệt so với 4 flak khác và tôi ngạc nhiên khi nó hoạt động trong Flakcats. Ba toán tử ở đây gần giống như các toán tử mà Brain-Flak sử dụng.

Sự khác biệt chính trong chương trình đặc biệt này giữa Flakcats là (...)toán tử trong Flakcats tương đương với ([{}]...)Brain-Flak. Tuy nhiên, điều này không tạo ra sự khác biệt đối với chúng tôi bởi vì nó thu thập các số không và do đó hoạt động giống như cách mà Brain-Flak làm.

Đây là chương trình được biên dịch thành Brian-Flak:

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

Bản in này:

-3
-3
-3

(Có một dòng mới)

Bằng chứng về sự tối ưu trong Brain-Flak và Solitairelak

Đây không phải là một bằng chứng chính thức, mà là một bằng chứng không chính thức sẽ phải được mở rộng để được thực hiện nghiêm ngặt hơn

Do các hạn chế, các chương trình Brain-Flak phải là một chuỗi cân bằng và độ dài chương trình phải là bội số của 3 bất kỳ đệ trình hợp lệ nào phải là bội số của 6 chiều dài. Điều này có nghĩa là bất kỳ giải pháp nhỏ hơn 18 phải có chiều dài 12.

Do các dòng đầu ra kéo theo dòng mới, chiều cao cuối cùng của ngăn xếp phải là bội số của ba hoặc chúng tôi sẽ phá vỡ các hạn chế về đầu ra.

Bất kỳ đệ trình hợp lệ nào có độ dài 12 phải có 2 loại dấu ngoặc (có ít hơn sẽ phá vỡ các hạn chế về số lượng ký tự riêng biệt và nhiều hơn có nghĩa là nhiều hơn 12 ký tự). Vì chương trình tạo đầu ra nên nó phải có lực đẩy.

Điều này để chúng tôi chọn bộ niềng răng khác của chúng tôi. Các tùy chọn là:

<...>/<>

Điều này không thành công bởi vì chúng ta cần tạo ra "giá trị" để tạo ra bất kỳ số nào khác 0, chúng ta phải từ bỏ ()để tạo một số khiến cho không thể đẩy quá hai lần.


[...]/[]

Điều này thất bại vì lý do tương tự cuối cùng thất bại. Niềng răng vuông thực sự rất tệ trong việc tạo ra giá trị. Đơn []nguyên có thể tạo ra giá trị nhưng chúng ta cần đẩy số trước và sau đó chúng ta không có đủ số dư để đẩy ba lần.


{...}/{}

Điều này rất hứa hẹn, chúng ta có thể tạo một vòng lặp và sử dụng một vòng ()để đẩy nhiều lần, nhưng than ôi là không thể.

Để vòng lặp kết thúc, phải có một số 0 trên ngăn xếp tại một số điểm và để chúng ta có đầu ra chính xác, chúng ta phải có một cái gì đó khác 0 trên ngăn xếp ở cuối chương trình. Kể từ khi chúng tôi có không phải []và cũng không <>số không vào cuối vòng lặp phải có một số không tiềm ẩn từ tận đáy của ngăn xếp. Điều này có nghĩa là vòng lặp không thể thêm bất kỳ số mới nào vào ngăn xếp khiến nó trở nên vô dụng.


Vì không có lựa chọn niềng răng nào có thể tạo ra một chương trình có độ dài 12 nên không thể tồn tại.

Vì Solitairelak là một tập hợp con của Brain-Flak, bất kỳ chương trình miniflak ngắn nào cũng sẽ là một chương trình Brain-Flak ngắn hơn và do đó không tồn tại.

Bằng chứng về sự tối ưu trong Brain-Flueue

Brain-Flueue là một ngôn ngữ đùa dựa trên Brain-Flak. Hai người rất giống nhau, thông dịch viên của họ giống hệt nhau ở mọi nơi trừ hai dòng. Sự khác biệt giữa hai loại, như tên gọi của chúng, Brain-Flueue lưu trữ dữ liệu của nó trong hàng đợi trong khi Brain-Flak lưu trữ dữ liệu của nó trong ngăn xếp.

Để bắt đầu, chúng tôi có các hạn chế tương tự đối với kích thước chương trình do Brain-Flak tạo ra, do đó chúng tôi đang tìm kiếm một chương trình có kích thước 12. Ngoài ra, chúng tôi sẽ cần một (...)để tạo bất kỳ đầu ra và một cặp khác. các cặp <>[]các cặp không hoạt động trong Brain-Flueue vì lý do chính xác giống như chúng không hoạt động trong Brain-Flak.

Bây giờ chúng tôi biết rằng chương trình của chúng tôi phải bao gồm các nhân vật ((())){{{}}}.

Thông qua các phương pháp tương tự được sử dụng trong bằng chứng trước đây, chúng tôi có thể chứng minh rằng phải có một vòng lặp trong chương trình cuối cùng.

Bây giờ đây là nơi các bằng chứng khác nhau, bởi vì Brain-Flueue hoạt động trên các hàng đợi thay vì ngăn xếp chương trình có thể thoát khỏi một vòng lặp với các giá trị trên hàng đợi.

Để thoát khỏi vòng lặp, chúng ta sẽ cần một số 0 trong hàng đợi (hoặc một hàng đợi trống nhưng nếu hàng đợi trống, chúng ta gặp vấn đề tương tự như Brain-Flak), điều này có nghĩa là chúng ta sẽ phải mở chương trình của ({})mình để tạo số không. Chúng ta sẽ cần một cú đẩy bên trong vòng lặp để đẩy số lượng vật phẩm cần thiết vào hàng đợi. Chúng ta cũng sẽ cần phải đẩy một số khác không trước vòng lặp để chúng ta có thể nhập vào vòng lặp; điều này sẽ chi phí chúng tôi ở mức tối thiểu (()). Bây giờ chúng tôi đã sử dụng nhiều parens hơn chúng tôi có.

Do đó, không có chương trình Brain-Flueue để thực hiện nhiệm vụ 12 byte và hơn nữa, chương trình của chúng tôi là tối ưu.

Giải pháp tối ưu trong FlakcatsBrain-Flak Classic

Giải pháp sau đây là tối ưu trong Flakcats và Brain-Flak Classic.

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

Giải trình

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

Giải pháp thay thế não 24 byte thay thế

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

Hãy thử trực tuyến!

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

Hãy thử trực tuyến!

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

Hãy thử trực tuyến!


2
+1 cho bằng chứng là tốt.
HyperNeutrino

3
+1 cho polyglot là tốt, đặc biệt. không phải tất cả các kết quả đầu ra đều giống nhau
Shieru Asakoto 17/03/18

27

Thạch , 9 byte

**‘‘‘888*

Một chương trình đầy đủ in 700227072 , 888 khối.

Dùng thử trực tuyến!

Làm sao?

**‘‘‘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^3700227072? Điều đó rất thông minh, có lẽ các ngôn ngữ khác có thể sử dụng thủ thuật này.
Sản phẩm ETH

23

Polyglot của câu trả lời hoàn toàn theo nghĩa đen, 9 byte

333111222

Đây là một bài viết wiki cộng đồng để thu thập các câu trả lời chỉ là một nghĩa đen mà ngôn ngữ trong câu hỏi sẽ tự động in ra. Bởi vì đó là wiki cộng đồng, vui lòng chỉnh sửa nó để thêm nhiều ngôn ngữ nơi nó hoạt động.

Chương trình này hoạt động trong:

  • PHP
  • HTML (có thể không phải là ngôn ngữ)
  • Thạch (và M )
  • 7 (thú vị hơn, bởi vì chương trình được hiểu là cả dữ liệu mã; lần đầu tiên 3in dữ liệu, phần còn lại của chương trình là thao tác ngăn xếp vô dụng)
  • Camam
  • Japt
  • Cà rốt
  • R (màn hình R cũng xuất ra [1] dưới dạng siêu dữ liệu)
  • RProgN
  • Trên thực tế (mặc dù nó thực sự in 2\n2\n2\n1\n1\n1\n3\n3\n3\n)
  • ///
  • Noodel
  • TI-Basic
  • Đơn giản
  • ReRegex
  • Chồng
  • Tài nguyên (mặc dù điều này xuất ra chuỗi đảo ngược)

Bỏ qua dòng mới cuối cùng, điều này hợp lệ trong một vài ngôn ngữ nữa:

Hầu hết các liên kết đi đến Dùng thử trực tuyến!


3
Điều này in 2\n2\n2\n1\n1\n1\n3\n3\n3\ntrong thực tế, đó là hoàn toàn hợp lệ. Có nên thêm vào bài viết?
Sản phẩm ETH

@ETHproductions Tôi thực sự nghĩ rằng thực sự nên được thêm vào bài viết vì nó sử dụng cùng một mã;)
Kritixi Lithos

Là người thực hiện, tôi đồng ý rằng nó thuộc về bài viết này. Các dòng mới không thực sự làm cho một sự khác biệt.
Mego

Điều này cũng hoạt động trên ngôn ngữ tôi đã viết: SimpleTemplate . Nó sẽ biên dịch nó thành một kill-over echo '333111222';(trong PHP) nhưng nó hoạt động.
Ismael Miguel

4
@IsmaelMiguel: Đây là một câu trả lời wiki cộng đồng ; nó chỉ được 29% viết bởi ETHproductions (và trên thực tế, chính tôi là người ban đầu đã tạo ra câu trả lời, như bạn có thể thấy trong lịch sử sửa đổi; ETHproductions có nhiều văn bản trong phiên bản hiện tại của câu trả lời hơn bất kỳ ai khác, nhưng chắc chắn không phải là ' t chịu trách nhiệm cho toàn bộ). Toàn bộ mục đích của nó là được chỉnh sửa bởi một lượng lớn người dùng như một nỗ lực hợp tác. (Điều này khác với các câu trả lời thông thường, không được thiết kế để chỉnh sửa.)

21

C #, 114 111 118 102 byte

Nếu chúng ta không quan tâm đến việc sử dụng các từ thích hợp: (102 byte)

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

Nếu chúng ta quan tâm đến các từ thích hợp: (120 byte)

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

Trình ban đầu của tôi - trường hợp không nhạy cảm: (113 byte)

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

Tôi biết bình luận không thực sự theo tinh thần của CG, nhưng đó là tất cả những gì tôi có thể đưa ra trong một khoảng thời gian giới hạn, tôi sẽ xem liệu tôi có thể cải thiện nó trong ngày không. Chắc chắn tôi phải nhận được ít nhất một số điểm thưởng cho cái gật đầu để phiêu lưu.

Chỉnh sửa: Cảm ơn bạn roberto06 vì đã bắt được các chữ cái bị thiếu!


1
Tôi là một chàng trai C ++, không phải C #, nhưng bạn có thể không chỉ thực hiện cuộc gọi Viết trong {()} mà không ảnh hưởng đến nó không?
Sparr

1
Bạn có thể đặt dấu ngoặc đơn xung quanh đối số, thay vì toàn bộ cuộc gọi.

7
Brownie điểm cho chuối hoang dã.
darrylyeo

6
Đẹp! Tôi thích tên biến. +1
MildlyMilquetoast

1
Bạn nên xóa Vkhỏi nhận xét của mình và thêm vyt, vì Vchỉ hiện diện ở đó trong khi vcó mặt hai lần (lỗi đánh máy, tôi đoán vậy), ycũng có mặt hai lần và thiện diện 5 lần. Xem tại đây . Tuy nhiên, công việc tuyệt vời!
roberto06

18

JavaScript, 36 33 byte

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

Cảnh báo 333111222. Điều này hoạt động vì |chuyển đổi cả hai toán hạng của nó thành số nguyên 32 bit và bất kỳ giá trị nào trông không giống bất kỳ số nguyên nào (ví dụ hàm alert) được chuyển đổi thành 0. 0|00, do đó ||toán tử trả về toán hạng bên phải của nó, hoặc333111222

Một vài phiên bản thú vị hơn:

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

Đầu ra (trelalert)\"(trelalert)\"(trelalert)\".

Một giải pháp sử dụng .repeatsẽ có cùng độ dài, nhờ vào chia sẻ aert:

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

mà đầu ra (trpp.all)\"(trpp.all)\"(trpp.all)\".

Tận dụng các dấu gạch chéo ngược để loại bỏ lp gần như hoạt động:

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

Cái này đầu ra (trax.cc)"(trax.cc)"(trax.cc)"(trax.cc)"(trax.cc)"(trax.cc)".


1
Đẹp lạm dụng số thập phân!
darrylyeo

2
@darrylyeo Heh, cảm ơn. Tôi có thể dễ dàng mắc kẹt những người trong chuỗi, nhưng điều đó sẽ không vui chút nào ;-)
Sản phẩm ETH

Tôi nghĩ rằng tôi sẽ cho bạn biết rằng bạn đã đứng đầu bởi một câu trả lời ES6 .
darrylyeo

14

CJam , 9 byte

10,10,10,

Đầu ra 012345678901234567890123456789

Hãy thử trực tuyến!

Giải trình

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

không 3,3,3, làm việc cho 7 byte?
chim

Ah! vâng, yêu cầu thứ ba :)
chim

Argh, một cơ hội bị bỏ lỡ để sử dụng 99,99,99,, bởi vì tại sao không?
workoverflow

@workoverflow Bởi vì điều đó không làm việc với yêu cầu thứ ba. Chương trình cần chứa ba ký tự riêng biệt.
DLosc

@DLosc Touche, tôi quên mất điều đó!
workoverflow

11

Brainfuck , 12 byte

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

Không ai nói đầu ra phải ngắn. Điều này sẽ xuất 3 bản sao của mỗi ký tự ascii ngoại trừ 2 ký tự đầu tiên.

Bạn có thể chứng minh rằng điều này là ngắn như nó sẽ nhận được. Bạn cần xuất ra do đó bạn cần 3 '.' cần phải có các đầu ra khác nhau, do đó bạn cần 3 [+ -] bây giờ chúng tôi có tới 6. 9 ký tự phải được in, có nghĩa là thêm 6 ''. hoặc thêm một vòng lặp, sẽ thêm 6 ký tự khác.

Hãy thử trực tuyến!


10

Python 2, 36 30 byte

Vì một dòng mới không được phép, điều này có thể ngắn như nó có thể nhận được:

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

Dùng thử trực tuyến

Đầu ra \"ba lần, theo sau là ba dòng mới.


Các chương trình dưới đây không tính dòng mới, vì vậy chúng không hợp lệ.

27 byte :

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

In 54 của mỗi nhân vật trong print.

Dùng thử trực tuyến


Cùng chiều dài, đầu ra ngắn hơn:

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

Đầu ra printprint*3*3printprint*3*3printprint*3*3


24 byte:

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

Bạn có thể làm print"""printprint*3*3"""*3cho đầu ra ngắn hơn nhiều ;-)
Sản phẩm ETH

Bạn có thể không làm print 123;print 123;print 123;cho giải pháp ngây thơ?
Sản phẩm ETH

OP đã làm rõ rằng dòng mới duy nhất không được phép (xem bình luận).
FlipTack

1
@ETHproductions Chắc chắn. Nó phụ thuộc vào việc chúng ta ngây thơ như thế nào.
mbomb007

3
Thậm chí còn ngây thơ hơn:print~9;print~9;print~9;
Sp3000


9

C, 66 byte

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

Đầu ra

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

Phiên bản cũ 72 byte

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

2
Không chỉ mã của bạn nhỏ hơn nhiều so với những gì tôi đã làm, mà nó còn chứa các bit thực sự của phân và rắm. Bravo.
mờ

9

JavaScript (ES6), 30 byte

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

Đầu ra [object Object][object Object][object Object].

Hoạt động bằng cách tạo ba đối tượng:

  • hai cái đầu tiên có dạng { "alert" : alert }sử dụng ký hiệu ES6{alert}

  • thứ ba là một đối tượng trống đơn giản

Sau đó, nó sử dụng +để nối chúng lại với nhau và cả ba có một biểu thức giống hệt nhau như một chuỗi , [object Object].

Dẫn đầu +là vô dụng, chỉ hiện diện để điền vào số lượng +ký tự, nhưng vô hại với đầu ra của chương trình.


Cách để đánh bại câu trả lời JS khác!
darrylyeo

Bạn cũng nên thêm (ES6)vào tiêu đề.
darrylyeo

@darrylyeo Cảm ơn! :) Và tôi đã thêm ES6
apsillers

8

PKod , 9 byte

sonsonson

Đầu ra: 111222333


Giải trình:

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 có mã char ascii "111" ở dạng thập phân. Do đó s thêm 111 vào biến, sau đó in số. "Con trai" đầu tiên làm cho nó 111 và in 111. Tiếp theo làm cho nó 222 và in 222, cuối cùng làm cho nó 333 và in 333



7

Kính hiển vi II, 9 byte

{{{~~~}}}

Giải thích: Tạo một khối mã, nhưng không gọi nó. Khi thực hiện kết thúc, nội dung của thanh ghi chính (IE khối mã này) được in ngầm.


Bạn đã đăng một cái gì đó tương tự trong thử thách Quine?
wizzwizz4

@ wizzwizz4 {}về mặt kỹ thuật sẽ là một câu đố, nhưng tôi không nghĩ rằng nó đáp ứng định nghĩa của chúng tôi về một "câu hỏi thích hợp". Tuy nhiên, chương trình "q"q(mà tôi đã gửi đến thử thách quine), tuy nhiên.
SuperJedi224

@ wizzwizz4: Đó sẽ không phải là một câu hỏi thích hợp , bởi vì mỗi nhân vật đại diện cho chính nó.

7

Lục giác , 9 byte

x!!xx@@!@

Hãy thử trực tuyến!

In ra 120120120. xcó thể được thay thế bằng f-m(102-109)

Giải trình

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

Đây xx@@chỉ là một phụ để tuân thủ các quy tắc. Luồng chính đang lưu xvào bộ nhớ (với giá trị ASCII 120) và sau đó in thành số 3 lần.


7

C, 111 byte

(Lưu ý cách đếm byte cũng là ba số giống nhau. Wow. Bạn không thể thực hiện nhiều meta hơn thế.)

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

Bản in:

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


5

99 , 15 byte

9 9  9999
9
9
9

Đó là chín số, ba khoảng trắng và ba nguồn cấp dữ liệu, đầu ra là -1110-1110-1110 .

Hãy thử trực tuyến!

Làm sao?

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

Hai không gian được coi là một, không gian thứ ba này cũng có thể là một khoảng trắng trên bất kỳ dòng nào.


5

Bash + coreutils, 15 9 byte

id;id;id;

Hãy thử trực tuyến!

Đầu ra mẫu:

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

(Nếu bạn thử cách này, nó sẽ in uid, gid, v.v., 3 lần.)


Nếu bạn muốn tránh lặp lại cùng một chuỗi 3 lần (và cũng có cùng một đầu ra cho mọi người, không giống như câu trả lời đầu tiên của tôi), điều tốt nhất tôi tìm thấy cho các tiện ích bash + Unix là dài 15 byte:

dc<<<cczdzfzfdf

Hãy thử phiên bản thứ hai trực tuyến này!

Đầu ra:

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

(Không có dòng mới trong chương trình, 12 dòng mới trong đầu ra.)

Giải thích về chương trình dc trong câu trả lời này:

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 /)

Cái thứ hai hoạt động như thế nào?
trị liệu

@therealfarfetchd Tôi đã thêm một lời giải thích cho câu trả lời.
Spector Mitchell

Chết tiệt, dc mạnh hơn tôi tưởng rất nhiều. Công việc tốt!
trị liệu

@therealfarfetchd Cảm ơn. Tôi thích dc. Btw, có một vài lỗi chính tả trong lời giải thích mà tôi vừa sửa.
Mitchell Spector

5

LOLCODE , 273 240 ( 360 286) byte

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

Lưu ý dòng mới và thử nó trực tuyến . Dòng thứ hai ít nhiều tùy ý và có thể được thay thế bằng một lệnh ngắn hơn, nhưng tôi chỉ học LOLCODE cho câu đố này. Vì số phiên bản là bắt buộc trong dòng đầu tiên, tôi đã sử dụng các số để thêm các vòng có độ dài 1, 2 và 0 mod 3 để đảm bảo số lượng ký tự phù hợp sẽ được in. Từ đây tôi chỉ đơn giản là đếm từng ký tự (với công cụ này ). Nếu nó xuất hiện 0 mod 3 lần, không cần thực hiện hành động nào. Nếu nó xuất hiện 1 mod 3 lần, nó đã được thêm vào vòng 1- và 2 để nó xuất hiện ba lần trong đầu ra. Nếu nó xuất hiện 2 mod 3 lần, nhân vật đã được thêm vào vòng lặp 12. EDIT: Bằng cách thay thế đầu tiênVISIBLE với một bài tập (vẫn vô dụng nhưng bắt buộc phải có 12 thay vì 11 dòng mới), tôi đã có thể cắt bỏ 33 byte.

Đầu ra (60 byte):

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

Lưu ý dòng mới.

Điều tuyệt vời về giải pháp này so với các câu trả lời khác là Đầu ra có thể dễ dàng thao tác để xuất văn bản có ý nghĩa. Ví dụ (286 byte với dòng mới trailing):

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

Hãy thử trực tuyến. Đầu ra (222 byte với dòng mới theo dõi):

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! 

Đáng buồn thay, tôi không tốt với đảo chữ như tôi nghĩ: ')


1
Chào mừng đến với trang web!
DJMcMayhem

@DJMcMayhem Cảm ơn. Bất cứ điều gì tôi cần làm để có được LOLCODE một liên kết tự động tốt đẹp như tôi đã sao chép từ các bài đăng khác? (kiểu # [ngôn ngữ]) Liên kết đến mã nguồn được chứa trong câu trả lời.
SK19

Cách đơn giản nhất là, khi bạn đưa chương trình của mình vào TIO, để sử dụng menu liên kết và chọn (hoặc sao chép) lựa chọn cho "Code Golf Submission". Điều đó cung cấp cho bạn một mẫu cho một bài viết mới. Tôi đã sao chép phần mà bạn dường như bị thiếu từ đó.
Ørjan Johansen

5

CHIA SẺ

để đùa :) ( 9 byte )

ls;ls;ls;

hoặc nghiêm trọng hơn ( 24 byte )

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

Kết quả :

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

5

PHP, 24 byte

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

1
Sản lượng này là gì? Làm thế nào nó hoạt động?
DJMcMayhem

Nó sử dụng shorttag PHP <?cùng với echocâu lệnh ngay lập tức <?=để xuất 123 3 lần.
đồ ăn vặt

Phiên bản ngắn hơn bạn vừa chỉnh sửa không hợp lệ vì các <= ?>ký tự không xuất hiện bội số 3 lần.
DJMcMayhem

À, đúng rồi, tôi biết có một lý do cho phiên bản gốc như vậy - tôi hoàn toàn không tuân theo yêu cầu - tôi sẽ thay đổi lại.
đồ ăn vặt


4

Japt, 9 byte

000OoOoOo

In undefinedundefinedundefined. Kiểm tra nó trực tuyến!

Giải trình

Mã này được dịch vào JavaScript sau:

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

O.olà một hàm tạo ra một cái gì đó mà không có một dòng mới. Khi không có đối số, nó in ra undefined, có thể được coi là một lỗi, nhưng có ích ở đây. Nó cũng trả về undefined, vì vậy cả ba cuộc gọi in undefined.

Tôi chắc chắn có nhiều cách khác để làm điều này ...


1
O_o Thú vị :)
geisterfurz007

4

05AB1E , 9 byte (Tôi đoán bạn có thể nói đây là một phần của PI)

-0 byte nhờ Emigna / ETH sản phẩm, đã làm cho giải pháp chính xác hơn.

žqžqžq???

Phiên bản thay thế:

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

[g-Q] - Có thể đặt bất kỳ chữ aQ nào ở đây, miễn là tất cả chúng khớp với nhau (xem bên dưới).

Hãy thử trực tuyến!

Giải thích:

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

Kết quả:

...111111222333333333444555555555666777888999999999

Lý do chỉ có 9 byte là vì bạn không cần các loại, tôi chỉ cần đặt chúng vào để giúp minh họa.

Kết quả không có {trong mã:

3.1415926535897933.1415926535897933.141592653589793


Biểu diễn thay thế:

Các lệnh sau có thể được sử dụng thay cho 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
Hãy ra ngoài để chơi chữ; cho mánh khóe mặc dù có được một :)
geisterfurz007

Đẹp quá Tôi không nghĩ žv, žwhoặc žxlà hợp lệ mặc dù mỗi cái chỉ có 2 chữ số riêng biệt.
Sản phẩm ETH

Hmm, điểm của các lớp nhân vật ngược là gì?
Sản phẩm ETH

@ETHproductions ahhh, quên mất at least 3, chỉ là PI lúc đầu khi tôi viết nó. Bạn có ý nghĩa gì với các lớp nhân vật ngược?
Bạch tuộc ma thuật Urn

1
Lưu ý rằng điều này chỉ hợp lệ nếu bạn không tính dòng mới được in ngầm. Điều đó có thể dễ dàng được sửa chữa bằng cách thay thế JJJbằng ???mặc dù.
Emigna

4

Hình khối , 12 byte

Một chút của một câu trả lời nhàm chán thực sự. Đầu ra ba 10giây theo sau là dòng mới

N@N@NOoOoOo@

Hãy thử trực tuyến! Bản đồ cho khối lập phương

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

NĐẩy 10 đến ngăn xếp
Oox3 Kết quả 10 và dòng mới
@tạm dừng chương trình

Ban đầu N@N@không trúng.


Tôi đếm 34 chỗ trống: /
SK19 16/03/18

@ SK19 Mã N@N@NOoOoOo@này không bao gồm bất kỳ khoảng trắng nào.
MickyT 17/03/18

À, được rồi, tôi nghĩ rằng khối lập phương cũng cần phải đáp ứng yêu cầu
SK19 17/03/18

4

Pepe , 24 byte

rEeEEeeEEErreEErreEEreEE

Hãy thử trực tuyến!

Chương trình chứa 6 r, 6 e và 12 E.

Giải trình:

rEeEEeeEEErreEErreEEreEE # full program

rEeEEeeEEE               # push '103' to the stack
          rreEErreEE     # output as int (r flag: preserve)
                    reEE # output as int

Đầu ra:

103103103

3

V , 9 byte

12i12i12i

Hãy thử trực tuyến!

Đầu ra 12i24 lần:

12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i

Vim, 12 byte

12i12i12i<ESC><ESC><ESC>

Đầu ra giống như câu trả lời V



3

Befunge 93 , 9 byte

...,,,@@@

TIO

In 0 0 0(Không gian lưu trữ, theo sau là 3 byte null)

Vì ngăn xếp của Befunge được đệm bằng 0s, chúng ta có thể in cả ký tự ASCII với giá trị đó và chính số nguyên. Vì Befunge tự động in một khoảng trắng sau một số nguyên, chúng tôi chỉ còn lại 3 ký tự riêng biệt.

.in 0(dấu cách), ,in một byte null và @kết thúc chương trình

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.