Tiga-Tiga-Tiga!


66

Tulis program yang menghasilkan keluaran sehingga:

  1. Setidaknya tiga karakter berbeda muncul.
  2. Jumlah kemunculan masing-masing karakter adalah kelipatan 3.

Sebagai contoh, A TEA AT TEEadalah output yang valid karena masing-masing dari 4 karakter yang berbeda, A, E, Tdan (space), terjadi 3 kali.

Tentu saja, tantangan tentang angka 3 perlu memiliki persyaratan ketiga. Begitu:

  1. Program itu sendiri juga harus mengikuti dua persyaratan pertama. (Ini berarti program Anda akan memiliki setidaknya 9 byte.)

Anda harus menulis program lengkap, bukan fungsi. Pastikan untuk menunjukkan hasil program Anda dalam jawaban Anda.

Juga, untuk menjaga hal-hal menarik, Anda sangat dianjurkan:

  • tidak menggunakan komentar untuk memenuhi persyaratan 3 jika Anda dapat membantu
  • untuk menghasilkan output yang bukan hanya string yang diulang 3 kali
  • untuk membuat output berbeda dari program itu sendiri (untuk bahasa yang dapat secara otomatis menampilkan konten dari programnya sendiri, Anda dapat berkontribusi ke wiki komunitas ini ).

Ini adalah . Kode terpendek dalam byte menang.


5
Apakah baris baru dihitung (sebagai karakter yang berbeda)?
zeppelin

4
Apakah program yang seluruhnya terdiri dari literal diperbolehkan? (Ada banyak bahasa di mana 123123123akan berfungsi, seperti yang saat ini ditulis.)

2
@ zeppelin Ya, baris baru dihitung sebagai karakter yang berbeda.
darrylyeo

2
Apa yang ingin saya tanyakan adalah, dapatkah suatu keluaran program misalnya abcabcabcdengan garis akhir yang tertinggal?
ETHproduksi

1
@ ETHproductions Ah, begitu. Tidak, itu tidak diizinkan. Namun, ada tiga baris baru yang dapat diterima.
darrylyeo

Jawaban:


59

Brain-Flak , Flakcats , Brain-Flueue , Brain-Flak Classic , Miniflak , dan Fλak 18 byte

Terbukti optimal!

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

Cobalah online!

Penjelasan

Brain-Flak, Brain-Flueue, Miniflak, dan Fλak

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

Ini mencetak:

-3
-3
-3

(Ada baris baru yang tertinggal)

Brain-Flak Classic

Brain-Flak Classic adalah versi asli dari Brain-Flak dan memiliki beberapa perbedaan penting dari Brain-Flak modern. Dalam BFC [...]mencetak isinya daripada meniadakannya.

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

Di akhir mengeksekusi isi stack ( 3 3 3) dicetak.

Ini mencetak:

1
1
1
3
3
3

(Ada baris baru yang tertinggal)

Flakcats

Flakcats sangat berbeda dari 4 flak lainnya dan saya terkejut bahwa ini bekerja di Flakcats. Tiga operator di sini hampir sama dengan yang digunakan Brain-Flak.

Perbedaan utama dalam program khusus ini antara Flakcats adalah (...)operator yang di Flakcats setara dengan ([{}]...)di Brain-Flak. Namun ini tidak membuat perbedaan bagi kami karena mengambil nol dan dengan demikian beroperasi banyak dengan cara yang sama seperti Brain-Flak.

Inilah program yang dikompilasi ke dalam Brian-Flak:

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

Ini mencetak:

-3
-3
-3

(Ada baris baru yang tertinggal)

Bukti Optimalitas pada Brain-Flak dan Miniflak

Ini bukan bukti formal, melainkan bukti informal yang harus diperluas agar dibuat lebih ketat

Karena pembatasan bahwa program Brain-Flak harus seimbang-string dan panjang program harus kelipatan 3, setiap pengajuan yang valid harus kelipatan 6 panjangnya. Ini berarti solusi apa pun yang lebih kecil dari 18 harus panjang 12.

Karena keluaran mengikuti baris baru, ketinggian akhir tumpukan harus kelipatan tiga atau kami akan melanggar batasan pada keluaran.

Setiap pengajuan yang valid dengan panjang 12 harus memiliki 2 jenis kawat gigi (memiliki kurang akan melanggar batasan jumlah karakter yang berbeda dan lebih banyak akan berarti lebih dari 12 karakter). Karena program menghasilkan output, ia harus memiliki dorongan.

Ini membuat kita memilih set kawat gigi kita yang lain. Opsinya adalah:

<...>/<>

Ini gagal karena kita perlu menghasilkan "nilai" untuk membuat angka selain nol kita harus menyerah ()untuk membuat nomor yang membuatnya mustahil untuk mendorong lebih dari dua kali.


[...]/[]

Ini gagal karena alasan yang sama yang terakhir gagal. Kawat gigi kotak sangat buruk dalam menghasilkan nilai. The []monad dapat menciptakan nilai tapi kita perlu mendorong angka pertama dan kita kemudian tidak memiliki cukup parens tersisa untuk mendorong tiga kali.


{...}/{}

Yang ini menjanjikan, kita bisa membuat loop dan menggunakannya ()untuk mendorong beberapa kali, tapi sayangnya itu tidak mungkin.

Agar loop berakhir, harus ada nol pada stack di beberapa titik dan agar kita memiliki output yang benar, kita harus memiliki sesuatu selain nol pada stack di akhir program. Karena kita memiliki tidak []atau <>nol pada akhir loop harus menjadi nol implisit dari bawah tumpukan. Ini berarti loop tidak dapat menambahkan nomor baru ke tumpukan sehingga tidak berguna.


Karena tidak ada pilihan brace yang dapat membuat program dengan panjang 12, tidak ada yang bisa ada.

Karena Miniflak adalah bagian dari Brain-Flak, program Miniflak yang lebih pendek juga merupakan program Brain-Flak yang lebih pendek sehingga tidak ada.

Bukti Optimalitas pada Brain-Flueue

Brain-Flueue adalah bahasa lelucon yang didasarkan pada Brain-Flak. Keduanya sangat mirip, penafsirnya identik di mana-mana kecuali dua baris. Perbedaan antara keduanya adalah, seperti namanya, Brain-Flueue menyimpan datanya dalam antrian sementara Brain-Flak menyimpan datanya di tumpukan.

Untuk memulai, kami memiliki batasan yang sama pada ukuran program yang dibuat oleh Brain-Flak, jadi kami mencari program berukuran 12. Selain itu kami akan membutuhkan (...)untuk membuat keluaran dan pasangan lain. yang <>dan []pasangan tidak bekerja di Brain-Flueue untuk alasan yang sama mereka tidak bekerja di Brain-Flak.

Sekarang kita tahu bahwa program kita harus terdiri dari karakter ((())){{{}}}.

Melalui metode yang sama yang digunakan dalam bukti sebelumnya kita dapat menunjukkan bahwa harus ada loop dalam program akhir.

Sekarang di sinilah buktinya berbeda, karena Brain-Flueue beroperasi lintas antrian daripada tumpukan, program dapat keluar dari loop dengan nilai pada antrian.

Untuk keluar dari loop kita perlu nol dalam antrian (atau antrian kosong tetapi jika antrian kosong kita mendapatkan masalah yang sama seperti Brain-Flak) ini akan berarti bahwa kita harus membuka program kami dengan ({})membuat nol. Kami akan membutuhkan dorongan di dalam loop untuk mendorong jumlah item yang diperlukan ke antrian. Kita juga perlu menekan angka bukan nol sebelum pengulangan sehingga kita dapat memasukkan pengulangan sama sekali; ini akan dikenakan biaya minimum (()). Kami sekarang menggunakan lebih banyak parens daripada yang kami miliki.

Dengan demikian tidak ada program Brain-Flueue untuk melakukan tugas yang 12 byte, dan lebih jauh lagi ada program kami yang optimal.

Solusi optimal dalam Flakcats dan Brain-Flak Classic

Solusi berikut optimal di Flakcats dan Brain-Flak Classic.

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

Penjelasan

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

Alternatif 24 byte solusi Brain-Flak

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

Cobalah online!

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

Cobalah online!

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

Cobalah online!


2
+1 untuk buktinya juga.
HyperNeutrino

3
+1 untuk polyglot juga, esp. tidak semua output sama.
Shieru Asakoto

27

Jelly , 9 byte

**‘‘‘888*

Program lengkap yang mencetak 700227072 , yaitu 888 potong dadu.

TryItOnline!

Bagaimana?

**‘‘‘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^3adalah 700227072? Itu sangat pintar, mungkin bahasa lain bisa menggunakan trik ini.
ETHproduk

23

Poliglot jawaban murni literal, 9 byte

333111222

Ini adalah pos wiki komunitas untuk mengumpulkan jawaban yang hanya literal yang dicetak bahasa yang bersangkutan secara otomatis. Karena ini adalah wiki komunitas, silakan mengeditnya untuk menambahkan lebih banyak bahasa tempat kerjanya.

Program ini bekerja di:

  • PHP
  • HTML (bisa dibilang bukan bahasa)
  • Jelly (dan M )
  • 7 (lebih menarik, karena program ditafsirkan sebagai data dan kode; yang pertama 3mencetak data, sisa program adalah tumpukan tumpukan yang tidak berguna)
  • CJam
  • Japt
  • Wortel
  • R (layar R juga menampilkan [1] sebagai metadata)
  • RProgN
  • Sebenarnya (meskipun ia benar-benar mencetak 2\n2\n2\n1\n1\n1\n3\n3\n3\n)
  • ///
  • Noodel
  • TI-Basic
  • SimpleTemplate
  • ReRegex
  • Sekam
  • Sumberdaya (meskipun ini menghasilkan string terbalik)

Mengabaikan baris terakhir, ini berlaku dalam beberapa bahasa lagi:

Sebagian besar tautan menuju ke Try It Online!


3
Ini mencetak 2\n2\n2\n1\n1\n1\n3\n3\n3\npada Actually, yang sangat valid. Haruskah itu ditambahkan ke pos?
ETHproduksi

@ ETHproductions Saya benar-benar berpikir Sebenarnya harus ditambahkan ke posting karena menggunakan kode yang sama;)
Kritixi Lithos

Sebagai orang yang membuat Sebenarnya, saya setuju bahwa itu termasuk dalam pos ini. Baris baru tidak benar-benar membuat perbedaan.
Mego

Ini juga berfungsi pada bahasa yang saya tulis: SimpleTemplate . Ini akan mengkompilasinya menjadi over-kill echo '333111222';(dalam PHP) tetapi berhasil.
Ismael Miguel

4
@IsmaelMiguel: Ini adalah jawaban komunitas wiki ; itu hanya 29% ditulis oleh ETHproductions (dan pada kenyataannya, akulah yang awalnya menciptakan jawaban, seperti yang Anda lihat dari riwayat revisi; ETHproductions memiliki lebih banyak teks dalam versi jawaban saat ini daripada orang lain, tetapi jelas bukan tidak bertanggung jawab atas semuanya). Seluruh tujuannya adalah untuk diedit oleh sejumlah besar pengguna sebagai upaya kolaborasi. (Ini berbeda dari jawaban normal, yang tidak dirancang untuk diedit.)

21

C #, 114 111 118 102 byte

Jika kami tidak peduli menggunakan kata-kata yang tepat: (102 byte)

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

Jika kami peduli dengan kata-kata yang tepat: (120 byte)

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

Kiriman asli saya - tidak sensitif huruf: (113 byte)

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

Saya tahu komentar itu tidak benar-benar dalam semangat CG, tetapi hanya itu yang bisa saya dapatkan dalam waktu yang terbatas, saya akan melihat apakah saya dapat memperbaikinya sepanjang hari. Tentunya saya harus mendapatkan setidaknya beberapa poin bonus untuk anggukan menjadi petualang.

Sunting: Terima kasih kepada roberto06 karena menangkap surat-surat yang hilang!


1
Saya seorang pria C ++, bukan C #, tetapi bisakah Anda tidak hanya membungkus panggilan Panggilan dalam {()} tanpa memengaruhinya?
Sparr

1
Anda mungkin bisa menempatkan tanda kurung di sekitar argumen, daripada panggilan secara keseluruhan.

7
Brownie poin untuk pisang liar.
darrylyeo

6
Bagus! Saya suka nama variabel. +1
MildlyMilquetoast

1
Anda harus menghapus Vdari komentar Anda, dan menambahkan vyt, karena Vhanya hadir di sana sementara vhadir dua kali (salah ketik, saya kira), yjuga hadir dua kali, dan thadir 5 kali. Lihat di sini . Meskipun demikian, pekerjaan luar biasa!
roberto06

18

JavaScript, 36 33 byte

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

Lansiran 333111222. Ini berfungsi karena |mengubah kedua operan menjadi bilangan bulat 32-bit, dan nilai apa pun yang tidak terlihat seperti bilangan bulat (misalnya fungsi alert) akan dikonversi 0. 0|0adalah 0, sehingga ||operator mengembalikan operan yang tepat, atau333111222

Beberapa versi yang lebih menarik:

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

Keluaran (trelalert)\"(trelalert)\"(trelalert)\".

Solusi menggunakan .repeatakan sama panjangnya, terima kasih kepada yang dibagikan aert:

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

output yang mana (trpp.all)\"(trpp.all)\"(trpp.all)\".

Mengambil keuntungan dari backslash ekstra untuk menghilangkan ldan p hampir berfungsi:

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

Ini output (trax.cc)"(trax.cc)"(trax.cc)"(trax.cc)"(trax.cc)"(trax.cc)".


1
Penyalahgunaan desimal yang bagus!
darrylyeo

2
@dryrylyeo Heh, terima kasih. Saya bisa dengan mudah menjebak mereka di tali, tapi itu tidak akan menyenangkan ;-)
ETHproduksi

Kupikir aku akan memberitahumu bahwa kau diberi jawaban ES6 .
darrylyeo

14

CJam , 9 byte

10,10,10,

Keluaran 012345678901234567890123456789

Cobalah online!

Penjelasan

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

tidak 3,3,3, bekerja untuk 7 byte?
chim

Ah! ya, persyaratan ketiga :)
chim

Argh, kesempatan yang terlewatkan untuk digunakan 99,99,99,, karena mengapa tidak?
workoverflow

@ workoverflow Karena itu tidak berfungsi dengan persyaratan ketiga. Program perlu memuat tiga karakter berbeda.
DLosc

@Dosc Touche, saya lupa tentang itu!
alur kerja

11

brainfuck , 12 byte

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

Tidak ada yang mengatakan hasilnya harus pendek. Ini akan menghasilkan 3 salinan dari setiap karakter ascii kecuali 2 yang pertama.

Anda dapat membuktikan bahwa ini sesingkat mungkin. Anda perlu output karena itu Anda perlu 3 '.' harus ada output yang berbeda karena itu Anda perlu 3 [+ -] sekarang kita hingga 6. 9 karakter harus dicetak, yang berarti menambahkan 6 lagi '.' atau menambahkan loop, yang akan menambah 6 karakter.

Cobalah online!


10

Python 2, 36 30 byte

Karena trailing newline tidak diizinkan, ini mungkin sependek yang bisa didapat:

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

Cobalah online

Output \"tiga kali, diikuti oleh tiga baris baru.


Program-program di bawah ini tidak menghitung trailing newline, jadi mereka tidak valid.

27 byte :

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

Mencetak 54 setiap karakter dalam print.

Cobalah online


Panjang yang sama, output yang lebih pendek:

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

Keluaran printprint*3*3printprint*3*3printprint*3*3


24 byte:

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

Anda bisa melakukannya print"""printprint*3*3"""*3untuk output yang jauh lebih pendek ;-)
ETHproduk

Bisakah Anda lakukan print 123;print 123;print 123;untuk solusi naif?
ETHproduksi

OP telah mengklarifikasi bahwa single trailing newline tidak diperbolehkan (lihat komentar).
FlipTack

1
@ ETHproduk Tentu. Itu tergantung seberapa naifnya kita.
mbomb007

3
Yang lebih naif:print~9;print~9;print~9;
Sp3000

9

Perl 6 , 15 byte

.say;.say;.say;

Mencetak enam karakter yang berbeda, masing-masing tiga kali:

(Apa saja)
(Apa saja)
(Apa saja)

Cobalah online!

Bagaimana itu bekerja

  • Panggilan metode terbuka beroperasi pada topik saat ini $_,.
  • $_dimulai sebagai objek jenis Any, yang saydicetak sebagai (Any).

1
Sekarang saya punya lagu Yeah Yeah Yeahs yang tersangkut di kepala saya.
Stuart P. Bentley

9

C, 66 Bytes

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

Keluaran

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

Versi Lama 72 Bytes

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

2
Tidak hanya kode Anda jauh lebih kecil dari apa yang saya lakukan, tetapi juga mengandung bit nyata dari kotoran dan kentut. Bravo.
redup

9

JavaScript (ES6), 30 byte

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

Keluaran [object Object][object Object][object Object].

Bekerja dengan membuat tiga objek:

  • dua yang pertama adalah bentuk { "alert" : alert }menggunakan notasi ES6{alert}

  • yang ketiga adalah objek kosong yang sederhana

Kemudian digunakan +untuk menggabungkan mereka bersama-sama, dan ketiganya memiliki ekspresi yang identik sebagai string [object Object],.

Tokoh +tidak berguna, hanya hadir untuk mengisi jumlah +karakter, tetapi tidak berbahaya untuk output program.


Cara untuk mengalahkan jawaban JS lainnya!
darrylyeo

Anda juga harus menambahkan (ES6)judul.
darrylyeo

@dryrylyeo Terima kasih! :) Dan saya menambahkan ES6
apsillers

8

PKod , 9 byte

sonsonson

Output: 111222333


Penjelasan:

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 memiliki kode karakter ascii "111" dalam desimal. Jadi s menambahkan 111 ke variabel, lalu mencetak nomornya. "Anak" pertama membuatnya 111 dan mencetak 111. Selanjutnya membuatnya 222 dan mencetak 222, terakhir membuatnya 333 dan mencetak 333



7

Microscript II, 9 byte

{{{~~~}}}

Penjelasan: Membuat blok kode, tetapi tidak memintanya. Ketika eksekusi berakhir, isi register utama (yaitu blok kode ini) dicetak secara implisit.


Sudahkah Anda memposting sesuatu yang serupa di tantangan Quine?
wizzwizz4

@ wizzwizz4 {}secara teknis akan menjadi quine, tapi saya tidak berpikir itu memenuhi definisi kita tentang "quine yang tepat". Namun, program "q"q(yang saya ajukan kepada tantangan quine) melakukannya.
SuperJedi224

@ wizzwizz4: Itu bukan quine yang tepat , karena setiap karakter mewakili dirinya sendiri.

7

Hexagony , 9 byte

x!!xx@@!@

Cobalah online!

Cetak 120120120. xdapat diganti oleh f-m(102-109)

Penjelasan

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

The xx@@hanya pengisi untuk mematuhi aturan. Aliran utama adalah menyimpan xke dalam memori (dengan nilai ASCII 120) dan kemudian mencetaknya sebanyak 3 kali.


7

C, 111 byte

(Perhatikan bagaimana jumlah byte juga tiga angka yang sama. Wow. Anda tidak dapat melakukan lebih banyak meta dari itu.)

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

Cetakan:

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

6

PHP , 33 byte

<?=($s="<?;<?=;'".'"').($s).($s);

Memilih sesuatu yang lebih menarik daripada program 9-byte tanpa tag PHP.

Keluaran <?;<?=;'"<?;<?=;'"<?;<?=;'"

Cobalah online!


5

99 , 15 byte

9 9  9999
9
9
9

Itu adalah sembilan sembilan, tiga spasi, dan tiga umpan garis, outputnya adalah -1110-1110-1110 .

Cobalah online!

Bagaimana?

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

Dua ruang diperlakukan sebagai satu, ruang ketiga ini bisa menjadi ruang tambahan pada garis apa pun juga.


5

Bash + coreutils, 15 9 byte

id;id;id;

Cobalah online!

Output sampel:

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

(Jika Anda mencoba ini, itu akan mencetak uid, gid, dll, 3 kali.)


Jika Anda ingin menghindari pengulangan string yang sama 3 kali (dan juga memiliki output yang sama untuk semua orang, tidak seperti jawaban pertama saya), yang terbaik yang saya temukan untuk utilitas bash + Unix adalah sepanjang 15 byte:

dc<<<cczdzfzfdf

Coba versi kedua ini secara daring!

Keluaran:

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

(Tidak ada baris baru dalam program, 12 baris baru dalam output.)

Penjelasan program dc dalam jawaban ini:

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

Bagaimana cara kerja yang kedua?
therealfarfetchd

@therealfarfetchd Saya telah menambahkan penjelasan untuk jawabannya.
Mitchell Spector

Sial, dc jauh lebih kuat dari yang saya kira. Pekerjaan yang baik!
therealfarfetchd

@therealfarfetchd Terima kasih. Saya suka dc. Btw, ada beberapa kesalahan ketik dalam penjelasan yang baru saja saya perbaiki.
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

Perhatikan baris baru yang tertinggal dan coba online . Baris kedua kurang lebih sewenang-wenang dan mungkin bisa diganti dengan perintah yang lebih pendek, tapi saya baru belajar LOLCODE untuk puzzle ini. Karena nomor versi diperlukan di baris pertama, saya menggunakan angka-angka untuk menambahkan loop dengan panjang 1, 2 dan 0 mod 3 untuk memastikan jumlah karakter yang tepat akan dicetak. Dari sini saya cukup menghitung setiap karakter (dengan alat ini ). Jika muncul 0 mod 3 kali, tidak ada tindakan yang diperlukan. Jika muncul 1 mod 3 kali, itu ditambahkan ke loop 1 dan 2 sehingga akan muncul tiga kali dalam output. Jika muncul 2 mod 3 kali, karakter ditambahkan ke 12-loop. EDIT: Dengan mengganti yang pertamaVISIBLE dengan tugas (masih tidak berguna tetapi harus memiliki 12 bukannya 11 baris baru), saya dapat memotong 33 byte.

Output (60 byte):

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

Perhatikan baris baru yang tertinggal.

Yang menyenangkan tentang solusi ini dibandingkan dengan jawaban lain adalah bahwa Output dapat dengan mudah dimanipulasi untuk menghasilkan teks yang agak bermakna. Contoh (286 bytes dengan trailing baris baru):

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

Cobalah online. Output (222 byte dengan mengikuti baris baru):

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! 

Sedihnya, saya tidak sebagus anagram seperti yang saya kira: ')


1
Selamat datang di situs ini!
DJMcMayhem

@DJMcMayhem Terima kasih. Adakah yang harus saya lakukan untuk mendapatkan LOLCODE tautan otomatis yang bagus seperti yang saya salin dari posting lain? (gaya # [bahasa]) Tautan ke kode sumber terkandung dalam jawabannya.
SK19

Cara termudah adalah, ketika Anda meletakkan program Anda di TIO, untuk menggunakan menu tautan dan memilih (atau menyalin) pilihan untuk "Pengajuan Golf Code". Itu memberi Anda template untuk posting baru. Saya menyalin bagian yang sepertinya hilang dari sana.
Ørjan Johansen

5

KULIT

untuk bercanda :) ( 9 Bytes )

ls;ls;ls;

atau lebih serius ( 24 Bytes )

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

Hasil:

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

5

PHP, 24 byte

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

1
Apa hasil ini? Bagaimana cara kerjanya?
DJMcMayhem

Ini menggunakan shorttag PHP <?bersama dengan echopernyataan langsung <?=ke output 123 3 kali.
junkfoodjunkie

Versi pendek yang baru saja Anda edit tidak valid karena <= ?>karakter tidak muncul kelipatan 3 kali.
DJMcMayhem

Ah, benar, saya tahu ada alasan untuk versi aslinya - saya benar-benar terkelupas pada persyaratan - saya akan mengubahnya kembali.
junkfoodjunkie


4

Japt, 9 byte

000OoOoOo

Cetakan undefinedundefinedundefined. Uji secara online!

Penjelasan

Kode ini diubah menjadi JavaScript berikut:

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

O.oadalah fungsi yang menampilkan sesuatu tanpa baris baru. Ketika tidak diberi argumen, ia mencetak undefined, yang dapat dianggap sebagai bug, tetapi berguna di sini. Ini juga kembali undefined, sehingga ketiga panggilan dicetak undefined.

Saya yakin ada banyak cara lain untuk melakukan ini ...


1
O_o Menarik :)
geisterfurz007

4

05AB1E , 9 byte (saya kira Anda bisa mengatakan ini adalah bagian dari PI)

-0 byte terima kasih kepada Emigna / ETHProductions, membuat solusinya lebih benar.

žqžqžq???

Versi alternatif:

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

[g-Q] - Dapat menempatkan huruf aQ di sini, selama semuanya cocok (lihat di bawah).

Cobalah online!

Dijelaskan:

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

Hasil:

...111111222333333333444555555555666777888999999999

Alasannya hanya 9 byte adalah karena Anda tidak perlu jenis, saya hanya memasukkannya untuk membantu menggambarkan.

Hasil tanpa {kode:

3.1415926535897933.1415926535897933.141592653589793


Terjemahan Alternatif:

Perintah-perintah berikut dapat digunakan sebagai ganti 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
Keluar untuk permainan kata-kata; untuk triknya, dapatkan satu :)
geisterfurz007

Yang bagus! Saya tidak berpikir žv,, žwatau žxvalid karena mereka masing-masing hanya memiliki 2 digit berbeda.
ETHproduk

Hmm, apa gunanya kelas karakter mundur?
ETHproduk

@ ETHproductions ahhh, lupa tentang at least 3, hanya PI pada awalnya ketika saya menulisnya. Apa maksud Anda kelas karakter mundur?
Magic Gurita Guci

1
Perhatikan bahwa ini hanya valid jika Anda tidak menghitung baris baru yang dicetak secara implisit. Yang dapat dengan mudah diperbaiki dengan mengganti JJJdengan ???sekalipun.
Emigna

4

Cubix , 12 byte

Benar-benar jawaban yang membosankan. Output tiga 10s diikuti oleh baris baru

N@N@NOoOoOo@

Cobalah online! Peta ke kubus

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

NMenekan 10 ke tumpukan
Oox3 Output 10 dan baris baru
@menghentikan program

Inisial N@N@tidak terkena.


Saya menghitung 34 spasi: /
SK19

@ SK19 Kode ini N@N@NOoOoOo@dan tidak termasuk spasi.
MickyT

Ah, oke, saya pikir kubus perlu memenuhi persyaratan juga
SK19

4

Pepe , 24 byte

rEeEEeeEEErreEErreEEreEE

Cobalah online!

Program berisi 6 r, 6 e, dan 12 E's.

Penjelasan:

rEeEEeeEEErreEErreEEreEE # full program

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

Keluaran:

103103103

3

V , 9 byte

12i12i12i

Cobalah online!

Output 12i24 kali:

12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i

Vim, 12 byte

12i12i12i<ESC><ESC><ESC>

Keluaran sama dengan jawaban V



3

Menembus 93 , 9 byte

...,,,@@@

TIO

Cetakan 0 0 0(Trailing space, diikuti oleh 3 null byte)

Karena tumpukan Befunge diisi dengan 0s, kita dapat mencetak karakter ASCII dengan nilai itu, dan integer itu sendiri. Karena Befunge secara otomatis mencetak spasi setelah integer, kita dibiarkan dengan 3 karakter berbeda.

.mencetak 0(spasi tambahan), ,mencetak byte nol, dan @mengakhiri program

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.