Üç Üç Üç!


66

Böyle bir çıktı üreten bir program yazın:

  1. En az üç farklı karakter görünür.
  2. Her karakterin oluşum sayısı 3'ün katıdır.

Örneğin, A TEA AT TEE4 ayrı her karakter, çünkü geçerli bir çıktı olan A, E, Tve (space)3 kez meydana gelir.

Tabii ki, 3 sayısı ile ilgili bir meydan okuma üçüncü bir şartı olması gerekiyor. Yani:

  1. Programın kendisi de ilk iki şartı yerine getirmelidir. (Bu, programınızın en az 9 bayt uzunluğunda olacağı anlamına gelir.)

İşlev değil, tam bir program yazmalısınız. Cevabınızdaki programın çıktısını gösterdiğinizden emin olun.

Ayrıca, olayları ilginç kılmak için çok teşvik edilirsiniz:

  • değil bunu yardımcı olabilir ihtiyacını karşılamak için 3 yorumlar kullanmak
  • Sadece 3 kez tekrarlanan bir dize olmayan çıktı üretmek için
  • Çıktıyı programın kendisinden farklı kılmak için (kendi programının içeriğini otomatik olarak çıkaran diller için bu topluluk vikisine katkıda bulunabilirsiniz ).

Bu . Bayt cinsinden en kısa kod kazanır.


5
Yeni satırlar sayılır mı (ayrı bir karakter olarak)?
zeplin

4
Tamamen değişmezlerden oluşan programlara izin verilir mi? (Şu 123123123anda yazıldığı gibi çalışacak birçok dil var .)

2
@zeppelin Evet, yeni satırlar ayrı bir karakter olarak sayılır.
darrylyeo

2
Sormak istediğim, bir program çıktısı örneğin abcabcabcyeni bir satırsonu olabilir mi?
ETHProductions

1
@ETHporoductions Ah, anlıyorum. Hayır, buna izin verilmiyor. Ancak sondaki üç satırsonu kabul edilebilir.
darrylyeo

Yanıtlar:


59

Brain-Flak , Flakcats , Beyin-Baca , Brain-Flak Klasik , Miniflak ve Fλak 18 bayt

Kanıtlanmış optimal!

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

Çevrimiçi deneyin!

açıklama

Beyin Flak, Beyin Flueue, Miniflak ve Fλak

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

Bu yazdırır:

-3
-3
-3

(Sonunda yeni bir satır var)

Brain-Flak Klasik

Brain-Flak Classic, Brain-Flak'ın orjinal versiyonudur ve modern Brain-Flak'tan bazı önemli farklılıklar göstermektedir. BFC'de [...], olumsuzlamak yerine içeriğini yazdırır.

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

İşlemin sonunda yığının ( 3 3 3) içeriği yazdırılır.

Bu yazdırır:

1
1
1
3
3
3

(Sonunda yeni bir satır var)

Flakcats

Flakcats diğer 4 faştan oldukça farklı ve bunun Flakcats'de işe yaramasına şaşırdım. Buradaki üç operatör, Brain-Flak'ın kullandıklarıyla neredeyse aynı.

Bu özel programda Flakcats arasındaki ana fark, (...)Flakcats'deki ([{}]...)Brain-Flak ile aynı olan operatördür . Ancak bu bizim için bir fark yaratmaz çünkü sıfırları toplar ve böylece Brain-Flak'ın yaptığı gibi çalışır.

İşte Brian-Flak'a derlenmiş program:

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

Bu yazdırır:

-3
-3
-3

(Sonunda yeni bir satır var)

İçinde En iyilik Kanıtı Beyin-Flak ve Miniflak

Bu resmi bir kanıt değil, daha titiz yapılması için genişletilmesi gereken gayri resmi bir kanıttır.

Brain-Flak programlarının dengeli bir dize olması ve program uzunluğunun 3 katı olması gerektiği kısıtlamaları nedeniyle, herhangi bir geçerli gönderim uzunluğu 6 katı olmalıdır. Bu, 18'den küçük herhangi bir çözümün uzunluğu 12 olması gerektiği anlamına gelir.

Çıktıların son satırındaki yeni satır nedeniyle, yığının son yüksekliği üçün katı olmalı, yoksa çıktı üzerindeki kısıtlamaları kıracağız.

Herhangi bir geçerli uzunluk uzunluğu (12), 2 tip paranteze sahip olmalıdır (farklı karakterlerin sayısındaki kısıtlamaları daha az kıracak ve daha fazlası, 12 karakterden fazla anlamına gelecektir). Program çıktı ürettiğinden, zorlamalıdır.

Bu bize diğer kaşlı ayraçlarımızı seçmemizi sağlar. Seçenekler şunlardır:

<...>/<>

Bu başarısız olur, çünkü sıfırdan farklı bir sayı oluşturmak için "değer" üretmemiz gerekir, ()ikiden fazla itmeyi imkansız kılan bir tane oluşturmaktan vazgeçmeliyiz .


[...]/[]

Bu, son başarısızlığın aynı nedeni ile başarısız olur. Köşeli parantezler değer kazanmakta çok kötü. []Monad olabilir değer yaratmak ama biz ilk sayılarını itmek gerekir ve biz daha sonra yeterli parens üç kez itmek arta kalan yok.


{...}/{}

Bu umut verici, bir döngü yaratabilir ve ()birçok kez basmak için bir tane kullanabiliriz , ancak ne yazık ki mümkün değil.

Döngünün sona ermesi için yığında bir noktada sıfır olması gerekir ve doğru çıktının elde edilebilmesi için programın sonunda yığında sıfırdan başka bir şey olmalı. Döngü sonunda ne []ne <>de sıfır bulunduğundan, yığının altından örtük bir sıfır olmalıdır . Bu, döngünün yığına herhangi bir yeni sayı ekleyemeyeceği anlamına gelir, bu da onu işe yaramaz hale getirir.


Ayraç seçimlerinden hiçbiri 12 uzunluğunda bir program oluşturamayacağından, hiçbiri mevcut olamaz.

Miniflak, Brain-Flak'ın bir alt kümesi olduğundan, daha kısa bir Miniflak programı da daha kısa bir Brain-Flak programı olacaktır ve dolayısıyla mevcut değildir.

Beyin-Bacadaki Optimalliğin Kanıtı

Beyin-Flueue Brain-Flak merkezli bir şaka dilidir. İkisi birbirine çok benziyor, tercümanları her yerde aynı, iki satır. İkisi arasındaki fark, adından da anlaşılacağı gibi Brain-Flueue verilerini sıralarda saklarken Brain-Flak verilerini yığınlarda saklar.

Başlamak için, Brain-Flak tarafından yaratılan program boyutunda aynı kısıtlamalara sahibiz, bu nedenle 12 boyutunda bir program arıyoruz. Ayrıca, (...)herhangi bir çıktı ya da başka bir çift oluşturmak için bir ihtiyacımız olacak . <>ve []çiftleri onlar Beyin-Flak çalışmaz aynı nedenden dolayı Beyin Flueue çalışmaz.

Artık programımızın karakterlerden oluşması gerektiğini biliyoruz ((())){{{}}}.

Önceki kanıtlarda kullanılan aynı yöntemlerle, final programında bir döngü olması gerektiğini gösterebiliriz.

İşte ispatların farklı olduğu yer burası çünkü Brain-Baca, programların sıradaki değerleri içeren bir döngüden çıkmasını istiflemekten ziyade sıralar boyunca işler.

Döngüden çıkmak için sıradaki sıfıra ihtiyacımız olacak (ya da boş bir sıra, ancak sıra boşsa Brain-Flak ile aynı problemi alırız) bu, program ({})oluşturmak için programımızı açmak zorunda kalacağımız anlamına gelir . sıfır. Gerekli sayıda öğeyi kuyruğa itmek için döngünün içine doğru bir itmeye ihtiyacımız olacak. Ayrıca döngüden önce sıfır olmayan bir sayıya basmamız gerekir; böylece döngüye hiç girebiliriz; bu bize asgari olarak mal olacak (()). Şimdi sahip olduğumuzdan daha fazla ebeveyn kullandık.

Dolayısıyla, 12 baytlık bir görevi yerine getirmek için Beyin-Baca programı yoktur ve ayrıca programımız en uygunudur.

Flakcats ve Brain-Flak Classic'te optimum çözüm

Aşağıdaki çözüm Flakcats ve Brain-Flak Classic'te en uygunudur.

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

açıklama

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

Alternatif 24 byte Brain-Flak çözümleri

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

Çevrimiçi deneyin!

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

Çevrimiçi deneyin!

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

Çevrimiçi deneyin!


2
Ayrıca kanıt için +1.
HyperNeutrino

3
Poliglot için de +1, esp. tüm çıkışlar aynı değildir.
Shieru Asakoto

27

Jöle , 9 bayt

**‘‘‘888*

888 küp küp olan 700227072 yazdıran tam bir program .

TryItOnline!

Nasıl?

**‘‘‘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^3nedir 700227072? Çok zekice, belki başka diller bu numarayı kullanabilir.
ETHProductions

23

Tamamen değişmez cevapların polyglot'u, 9 bayt

333111222

Bu, söz konusu dilin otomatik olarak yazdırılabileceği bir hazır bilgi olan cevapları toplamak için kullanılan bir topluluk wiki gönderisidir. Bir topluluk wiki olduğu için, çalıştığı yere daha fazla dil eklemek için düzenlemekten çekinmeyin.

Bu program çalışır:

  • PHP
  • HTML (tartışmalı bir dil değil)
  • Jöle (ve M )
  • 7 (daha ilginç program verilerine hem de yorumlanabilir çünkü ve kod birinci 3baskı veri programın geri kalanı gereksiz yığın Manpulation olan)
  • CJam
  • Japt
  • Havuç
  • R (R ekran ayrıca [1] 'i meta veri olarak da verir)
  • RProgN
  • Aslında (gerçekte bassa bile 2\n2\n2\n1\n1\n1\n3\n3\n3\n)
  • ///
  • Noodel
  • TI-Temel
  • SimpleTemplate
  • ReRegex
  • kabuk
  • Kaynak (bu, dizenin tersine çevrilmiş olmasına rağmen)

Son satırın yok sayılmasıyla, bu birkaç dilde daha geçerlidir:

Bağlantıların çoğu Çevrimiçi Deneyin!


3
Bu 2\n2\n2\n1\n1\n1\n3\n3\n3\n, gerçekten geçerli olan yazdırır . Bu yazıya eklenmeli mi?
ETHProductions

@ETHproductions Aslında aynı kodu kullandığından aslında gönderiye eklenmesi gerektiğini düşünüyorum;)
Kritixi Lithos

Aslında yapan kişi olarak, bu yazıya dahil olduğunu kabul ediyorum. Yeni çizgiler gerçekten bir fark yaratmıyor.
Mego

Bu ayrıca yazdığım dilde de çalışıyor: SimpleTemplate . Öldürmek için echo '333111222';(PHP'de) derleyecektir ancak çalışır.
Ismael Miguel,

4
@IsmaelMiguel: Bu bir topluluk wiki cevabıdır; ETHproductions tarafından yazılan sadece% 29'du (ve aslında, gözden geçirme geçmişinden görebileceğiniz gibi cevabı orijinal olarak oluşturan bendim; ETHproductions, cevabın şu anki versiyonunda herkesten daha fazla metin içeriyordu, ama kesinlikle değil). Her şeyden sorumlu değil. Amacı, ortak bir çaba olarak geniş bir kullanıcı yelpazesi tarafından düzenlenmektir. (Bu, düzenlenmek üzere tasarlanmamış normal yanıtlardan farklıdır.)

21

C #, 114 111 118 102 bayt

Doğru kelimeleri kullanmakla ilgilenmiyorsak: (102 bytes)

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

Doğru kelimeleri önemsiyorsak: (120 byte)

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

Orijinal gönderim - küçük harf duyarsız: (113 bayt)

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

Yorumun CG'nin ruhu içinde olmadığını biliyorum, ancak sınırlı bir süre içinde elde edebileceğim tek şey, bunu gün boyunca geliştirip geliştiremeyeceğimi göreceğim. Kuşkusuz, başını sallayacağı macera için en azından bazı bonus puanları almalıyım.

Düzenleme: Eksik harfleri yakaladığınız için roberto06'ya teşekkür ederiz!


1
Ben bir C ++ kişisiyim, C # değil, sadece {()} içindeki Yazma çağrısını etkilemeden kapatamaz mısınız?
Sparr

1
Parantezleri, aramanın tümü yerine, argümanın etrafına koyabilirsiniz.

7
Brownie vahşi muzu işaret ediyor.
darrylyeo

6
Güzel! Değişken isimlerini severim. +1
MildlyMilquetoast

1
Yorumunuzdan çıkarmalı Vve eklemelisiniz vyt, çünkü Vorada yalnızca viki kez var olurken (yazım hatası, sanırım), yiki kez de var ve t5 kez var. Buraya bakınız . Bununla birlikte, harika bir iş!
roberto06,

18

JavaScript, 36 33 bayt

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

Uyarılar 333111222. Bu işe yarıyor, çünkü |hem operand'larını 32 bit tam sayılara dönüştürüyor, hem de bir tamsayı gibi görünmeyen herhangi bir değere (örneğin fonksiyon alert) dönüştürülüyor 0. 0|0olduğunu 0, bu nedenle ||operatör onun sağ işlenen verir, ya da333111222

Birkaç daha ilginç sürüm:

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

Çıkışlar (trelalert)\"(trelalert)\"(trelalert)\".

.repeatPaylaşılanlar sayesinde bir çözüm aynı uzunlukta olacaktır aert:

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

hangi çıktılar (trpp.all)\"(trpp.all)\"(trpp.all)\".

Kurtulmak için ekstra ters eğik çizgilerin avantajından lve p neredeyse işe yaraması

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

Bu bir çıktı (trax.cc)"(trax.cc)"(trax.cc)"(trax.cc)"(trax.cc)"(trax.cc)".


1
Ondalık suistimal!
darrylyeo

2
@darrylyeo Heh, teşekkürler.
Telleri

Bir ES6 cevabı aldığını bilmeni isterim .
darrylyeo,

14

CJam , 9 bayt

10,10,10,

çıktılar 012345678901234567890123456789

Çevrimiçi deneyin!

açıklama

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 bayt için çalışmıyor mu?
chim

Ah! evet, üçüncü şart :)
şimşek

Argh, kullanmak için kaçırılmış bir fırsat 99,99,99,, çünkü neden olmasın?
workoverflow

@ workoverflow Çünkü bu üçüncü şartla çalışmaz. Programın üç ayrı karakter içermesi gerekiyor.
DLosc

@Dosc Touche, bunu unuttum!
workoverflow

11

brainfuck , 12 bayt

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

Kimse çıktının kısa olması gerektiğini söylemedi. Bu, ilk 2 dışındaki her asci karakterinin 3 kopyasını çıkartacaktır.

Bunun alacağı kadar kısa olduğunu kanıtlayabilirsiniz. Çıktı yapmanız gerekiyor, bu nedenle 3 '' e ihtiyacınız var. farklı çıktılar olması gerekiyor, bu yüzden 3 [+ -] seviyesine ihtiyacınız var. Şimdi 6'ya düştük. 9 karakterin basılması gerekiyor. veya başka bir 6 karakter daha ekleyecek olan bir döngü ekleyerek.

Çevrimiçi deneyin!


10

Python 2, 36 30 bayt

Sondaki bir yeni satıra izin verilmediğinden, bu muhtemelen alabileceği kadar kısa:

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

Çevrimiçi deneyin

Çıkışlar \"üç satırbaşıyla ardından üç kez.


Aşağıdaki programlar takip eden yeni satırı saymaz, bu nedenle geçerli değil.

27 bayt :

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

İçindeki her karakterden 54 basar print.

Çevrimiçi deneyin


Aynı uzunluk, daha kısa çıktı:

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

çıktılar printprint*3*3printprint*3*3printprint*3*3


24 bayt:

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

Sen yapabileceğini print"""printprint*3*3"""*3;-) çok daha kısa bir çıkış için
ETHproductions

print 123;print 123;print 123;Saf bir çözüm için yapamaz mısın?
ETHProductions

OP, sondaki tek satırsonuna izin verilmediğini açıkladı (yorumlara bakın).
FlipTack

1
@ETHproductions Tabii. Ne kadar saf olduğumuza bağlı.
mbomb007

3
Daha da saf:print~9;print~9;print~9;
Sp3000

9

Perl 6 , 15 bayt

.say;.say;.say;

Her biri üç defa olmak üzere altı ayrı karakter yazdırır:

(Herhangi bir)
(Herhangi bir)
(Herhangi bir)

Çevrimiçi deneyin!

Nasıl çalışır

  • Geçerli konu üzerinde çıplak bir yöntem çağrısı çalışır $_.
  • $_olarak başlar türü nesne Çeşidi Any, sayolarak basar (Any).

1
Şimdi kafama sıkışmış bir Evet Evet Evet şarkısı var .
Stuart P. Bentley

9

C, 66 Bayt

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

Çıktı

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

Eski Sürüm 72 Bayt

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

2
Sadece senin kodun benim yaptığımdan daha küçük değil, aynı zamanda gerçek kaka ve osuruk parçaları da içeriyor. Bravo.
loş

9

JavaScript (ES6), 30 bayt

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

Çıkışlar [object Object][object Object][object Object].

Üç nesne oluşturarak çalışır:

  • ilk ikisi { "alert" : alert }ES6 notasyonu kullanan formdadır.{alert}

  • üçüncüsü basit bir boş nesnedir

Sonra +bunları birleştirmek için kullanır ve üçünün de bir dize olarak özdeş bir ifadeleri vardır [object Object].

Lider +yararsızdır, sadece +karakter sayısını doldurmak için hazırdır, ancak programın çıktısına zarar vermez.


Diğer JS cevabını yenmenin yolu!
darrylyeo,

Ayrıca (ES6)başlığa da eklemelisiniz .
darrylyeo,

@darrylyeo Teşekkürler! :) Ve ES6'yı ekledim
apsillers

8

PKod , 9 bayt

sonsonson

Çıktılar: 111222333


Açıklama:

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 ondalık karakterde "111" ascii karakter kodu bulunur. Böylece s değişkene 111 ekler, ardından sayıyı yazdırır. İlk önce "evlat" 111 yapar ve 111 basar. Sonra 222 yapar ve 222 basar, en son 333 yapar ve 333 basar.



7

Mikroscript II, 9 bayt

{{{~~~}}}

Açıklama: Bir kod bloğu oluşturur, ancak onu çağırmaz. Yürütme sona erdiğinde, ana yazıcının içeriği (bu kod bloğunun IE'si) örtük olarak yazdırılır.


Quine mücadelesinde benzer bir şey mi yayınladınız?
wizzwizz4

@ wizzwizz4 {}teknik olarak bir terim olurdu, ama "uygun bir terim" tanımımızı karşıladığını sanmıyorum. Program "q"q(Ben quine meydan teslim etmedi) ancak yapar.
SuperJedi224

@ wizzwizz4: Bu her zaman kendini temsil ettiği için uygun bir olmazdı .

7

Altıgen , 9 bayt

x!!xx@@!@

Çevrimiçi deneyin!

Çıktı al 120120120. xtarafından değiştirilebilir f-m(102-109)

açıklama

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

Bu xx@@sadece kurallara uymak için bir dolgu maddesidir. Ana akış xhafızaya kaydediliyor (ASCII değeri 120 ile) ve ardından 3 kez yazdırıyor.


7

C, 111 bayt

(Bayt sayısının da aynı üç sayı olduğunu unutmayın. Vay. Bundan daha fazla meta yapamazsınız.)

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

Baskılar:

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

6

PHP , 33 bayt

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

PHP etiketi olmayan 9 baytlık programdan daha ilginç şeyler seçti.

çıktılar <?;<?=;'"<?;<?=;'"<?;<?=;'"

Çevrimiçi deneyin!


5

99 , 15 bayt

9 9  9999
9
9
9

Bu dokuz dokuz, üç boşluk ve üç satır beslemesidir, çıktı -1110-1110-1110'dur .

Çevrimiçi deneyin!

Nasıl?

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

İki boşluk bir olarak ele alınır, bu üçüncü boşluk da herhangi bir satırda sondaki boşluk olabilir.


5

Bash + coreutils, 15 9 bayt

id;id;id;

Çevrimiçi deneyin!

Örnek çıktı:

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

(Bunu denerseniz, kullanıcı adınızı, gid, vb., 3 kez yazdıracaktır.)


Aynı dizeyi 3 kez tekrarlamaktan kaçınmak istiyorsanız (ve ilk cevabımın aksine herkes için aynı çıktıya sahipseniz), bash + Unix yardımcı programları için bulduğum en iyi değer 15 bayttır:

dc<<<cczdzfzfdf

Bu ikinci sürümü çevrimiçi deneyin!

Çıktı:

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

(Programda yeni satır yok, çıktıda 12 yeni satır var.)

Bu cevaptaki dc programının açıklaması:

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

İkincisi nasıl çalışır?
therealfarfetchd

@therealfarfetchd Cevabın için bir açıklama ekledim.
Mitchell Spector

Kahretsin, dc düşündüğümden çok daha güçlü. İyi iş!
therealfarfetchd

@therealfarfetchd Teşekkürler. Ben dc'i severim. BTW, açıklamada az önce düzelttiğim birkaç yazım hatası vardı.
Mitchell Spector

5

LOLCODE , 273 240 ( 360 286) bayt

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

Sondaki yeni satırı not alın ve çevrimiçi deneyin . İkinci satır az ya da çok isteğe bağlıydı ve muhtemelen daha kısa bir komutla değiştirilebiliyordu, ancak bu yapboz için LOLCODE'u yeni öğrendim . İlk satırda sürüm numarası gerektiğinden, doğru sayıda karakterin yazdırılmasını sağlamak için sayıları 1, 2 ve 0 mod 3 uzunluğunda döngüler eklemek için kullandım. Bundan sadece her karakteri saydım (bu araçla ). 3 kez 0 mod göründüğünde, herhangi bir işlem yapılması gerekmedi. 1 mod 3 kez göründüyse, 1- ve 2 döngüsüne eklenir, böylece çıktıda üç kez görünür. 2 mod 3 kez belirirse, karakter 12 döngüye eklenir. EDIT: İlk değiştirerekVISIBLE (hala işe yaramaz ancak 11 yeni satır yerine 12 tane olması gerekiyordu) bir atama ile 33 bayt kestim.

Çıktı (60 bayt):

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

Sondaki yeni satıra dikkat edin.

Bu çözümle ilgili diğer cevaplara kıyasla güzel olan şey Çıkışın bir miktar anlamlı metin çıktısı almak için kolayca manipüle edilebilmesidir. Örnek (yeni satırdaki 286 bayt):

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

Çevrimiçi deneyin. Çıktı (izleyen yeni satır ile 222 bayt):

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! 

Ne yazık ki, düşündüğüm gibi anagramlarla iyi değilim: ')


1
Siteye Hoşgeldiniz!
DJMcMayhem

@DJMcMayhem Teşekkürler. LOLCODE'u diğer mesajlardan kopyaladığım kadar güzel bir otomatik bağlantı elde etmek için yapmam gereken bir şey var mı? (# [dil] stili) Kaynak kodun bağlantısı cevabın içinde bulunur.
SK19

En kolay yol, programınızı TIO'ya koyduğunuzda, bağlantı menüsünü kullanmak ve "Kod Golf Gönderimi" seçimini seçmek (veya kopyalamak) şeklindedir. Bu size yeni bir yazı için bir şablon verir. Oradan kaçırmış göründüğün kısmı kopyaladım.
Ørjan Johansen

5

KABUK

şaka :) ( 9 Bayt )

ls;ls;ls;

veya daha ciddi ( 24 Bytes )

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

Sonuç:

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

5

PHP, 24 bayt

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

1
Bu çıktı ne? O nasıl çalışır?
DJMcMayhem

123 3 kez çıktı almak <?için hemen echoifade ile birlikte PHP kısa etiketini kullanır <?=.
junkfoodjunkie

Az önce düzenlediğiniz en kısa sürüm geçersiz; <= ?>karakterler 3 kez görünmüyor.
DJMcMayhem

Ah, doğru, orjinal versiyonun olduğu gibi bir sebep olduğunu biliyordum - gereksinimi tamamen ortadan kaldırdım - onu değiştireceğim.
junkfoodjunkie


4

Japt, 9 bayt

000OoOoOo

Yazdırır undefinedundefinedundefined. Çevrimiçi test edin!

açıklama

Bu kod aşağıdaki JavaScript'e çevrilir:

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

O.oizleyen bir yeni satır olmadan bir şey çıkaran bir işlevdir. Herhangi bir argüman verilmediğinde, undefinedbir hata olarak kabul edilebilecek, ancak burada kullanışlıdır. Aynı zamanda geri döner undefined, böylece üç arama da yazdırılır undefined.

Eminim bunu yapmanın birçok yolu vardır ...


1
O_o İlginç :)
geisterfurz007

4

05AB1E , 9 bayt (Sanırım bunun bir PI parçası olduğunu söyleyebilirsin)

-0 Bayt sayesinde Emigna / ETHProductions, çözümü daha doğru hale getirdi.

žqžqžq???

Alternatif sürümler:

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

[g-Q] - Herhangi bir AQ harfini, hepsi eşleştiği sürece buraya koyabilir (aşağıya bakınız).

Çevrimiçi deneyin!

Açıklaması:

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

Sonuç:

...111111222333333333444555555555666777888999999999

Bunun sadece 9 bayt olmasının nedeni, çeşitlere ihtiyaç duymamanızdır, sadece onları örneklemeye yardımcı olmak için koydum.

Sonuç {kodda w / o :

3.1415926535897933.1415926535897933.141592653589793


Alternatif yorumlamalar:

PI yerine aşağıdaki komutlar kullanılabilir:

ž 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
Pun için çıkın; hile için olsa bir tane olsun :)
geisterfurz007

Güzel! Sanmıyorum žv, žwya žxda her birinin yalnızca 2 ayrı basamağı olmasına rağmen geçerli değil .
ETHProductions

Hmm, geriye doğru karakter sınıflarının amacı nedir?
ETHProductions

@ETHproductions ahhh, unuttum at least 3, ilk yazdığımda sadece PI oldu. Geriye dönük karakter sınıfları ne demek?
Sihirli Ahtapot Urn

1
Bunun yalnızca dolaylı olarak yazdırılan yeni satırı saymazsanız geçerli olduğunu unutmayın. Bu olsa JJJile değiştirerek kolayca düzeltilebilir ???.
Emigna

4

Cubix , 12 bayt

Gerçekten çok sıkıcı bir cevap. Çıktıları üç 10saniye sonra newlines

N@N@NOoOoOo@

Çevrimiçi deneyin! Küple eşleşir

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

N10'u
Oox3 yığınına iter. 10 çıkışı verir ve yeni satır
@programı durdurur.

İlk N@N@vuruş değil.


34 boşluk sayıyorum: /
SK19

@ SK19 Kod, N@N@NOoOoOo@boşluk içeriyor ve içermiyor.
MickyT

Ah, tamam, küpün de gereksinimi yerine getirmesi gerektiğini düşünmüştüm
SK19

4

Pepe , 24 bayt

rEeEEeeEEErreEErreEEreEE

Çevrimiçi deneyin!

Program 6 r, 6 e ve 12 E içerir.

Açıklama:

rEeEEeeEEErreEErreEEreEE # full program

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

Çıktı:

103103103

3

V , 9 bayt

12i12i12i

Çevrimiçi deneyin!

Çıkışlar 12i24 saatleri:

12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i

Vim, 12 bayt

12i12i12i<ESC><ESC><ESC>

V cevabı ile aynı çıktılar



3

Befunge 93 , 9 bayt

...,,,@@@

TIO

Baskılar 0 0 0(Arkadaki boşluk, ardından 3 boş bayt)

Befunge'nin yığını 0s ile doldurulduğundan , bu değere sahip ASCII karakterini ve tamsayının kendisini yazdırabiliriz. Befunge bir tamsayıdan sonra otomatik olarak bir boşluk yazdırdığından, 3 farklı karakterle birlikte kalıyoruz.

.yazdırır 0(sondaki boşluk), ,boş bir bayt yazdırır @ve programı sonlandırır

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.