Trinity Hall Prime’ın çıktısını alın


38

Bu Math.SE sorusuna dayanarak ; Bu cevaptan kopyalanan numara . Tabii ki bir Numberphile videosundan asıl .

Göreviniz aşağıdaki 1350 basamaklı asal sayıyı vermektir:

888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888111111111111111111111111888888111111111111111111111111888888111111811111111118111111888888111118811111111118811111888888111188811111111118881111888888111188811111111118881111888888111888811111111118888111888888111888881111111188888111888888111888888111111888888111888888111888888888888888888111888888111888888888888888888111888888111888888888888888888111888888811188888888888888881118888188811188888888888888881118881188881118888888888888811188881118888111888888888888111888811111888811118888888811118888111111188881111111111111188881111111118888111111111111888811111111111888811111111118888111111111111188881111111188881111111111111118888811118888811111111111111111888881188888111111111111111111118888888811111111111111111111111888888111111111111111111111111118811111111111111111111111111111111111111111111062100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001

İsteğe bağlı olarak çıktıya yeni satırlar ekleyebilirsiniz.

kurallar

  • Bu , yani girdi yok.
  • Programınız standart bir bilgisayarda bir saat içinde sonlandırılmalıdır - eğer yakınsa test için mayını kullanacağım. Programınız bir dakikadan daha uzun bir süre boyunca çalışıyorsa veya TIO'da sonlandırılmıyorsa, lütfen bilgisayarınızdaki süreyi de ekleyin.
  • Bu , yani bayt cinsinden en kısa kod kazanır.

3
"aslen bir numaralı videodaki numara" sanırım asıl profesör mckee'den: P
undergroundmonorail

Peki ya bu asal ?
sergiol,

Yanıtlar:


31

Jelly , 74 71 69 68 66 bayt

“©ạ-3ṗÇñ"ỤḍV8żṢ?ḤsMVE[,Ṃƭ"ḞÇsẇʂ(ụFsẠʂẆŀṣ’ḃ19ĖŒṙị⁾81s30m0Z062 ȷ446‘

Çevrimiçi deneyin!

Nasıl çalışır

Hazır bilgi “©ạ-3ṗÇñ"ỤḍV8żṢ?ḤsMVE[,Ṃƭ"ḞÇsẇʂ(ụFsẠʂẆŀṣ’, Jelly'in kod sayfasındaki tüm karakterleri kod noktaları ile değiştirir ve sonucu aşağıdaki (tamsayıyı) veren 250 numaralı bir sayı olarak yorumlar.

103877200905186099028820568168804302565394743652609510039112658230540917082292838565138059974

Ardından, ḃ19bu sayıyı aşağıdaki sayı dizisini veren, biblo tabanına 19 dönüştürür.

16,14,18,12,19,11,3,12,5,10,3,14,4,9,3,15,4,8,3,6,6,4,4,7,3,4,10,3,4,6,3,3,12,3,4,5,3,2,14,3,4,4,3,7,9,4,3,4,3,8,9,4,3,3,3,9,8,4,4,2,3,9,8,5,3,2,3,9,8,6,3,1

Şimdi, ĖŒṙrakamları numaralandırır ve aşağıdaki diziyi veren çalışma uzunluğu kod çözme işlemini gerçekleştirir.

1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,14,14,14,14,14,14,14,14,14,15,15,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,18,18,18,18,19,19,19,20,20,20,20,20,20,21,21,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,24,24,24,25,25,25,26,26,26,26,27,27,27,27,27,27,27,27,27,27,28,28,28,29,29,29,29,30,30,30,30,30,30,31,31,31,32,32,32,33,33,33,33,33,33,33,33,33,33,33,33,34,34,34,35,35,35,35,36,36,36,36,36,37,37,37,38,38,39,39,39,39,39,39,39,39,39,39,39,39,39,39,40,40,40,41,41,41,41,42,42,42,42,43,43,43,44,44,44,44,44,44,44,45,45,45,45,45,45,45,45,45,46,46,46,46,47,47,47,48,48,48,48,49,49,49,50,50,50,50,50,50,50,50,51,51,51,51,51,51,51,51,51,52,52,52,52,53,53,53,54,54,54,55,55,55,56,56,56,56,56,56,56,56,56,57,57,57,57,57,57,57,57,58,58,58,58,59,59,59,59,60,60,61,61,61,62,62,62,62,62,62,62,62,62,63,63,63,63,63,63,63,63,64,64,64,64,64,65,65,65,66,66,67,67,67,68,68,68,68,68,68,68,68,68,69,69,69,69,69,69,69,69,70,70,70,70,70,70,71,71,71,72

Daha sonra, tekli sayıları 8 karakteriyle , hatta 1 karakteriyle sayıyı değiştirerek ị⁾81dizeye 81 endeksler . Daha sonra, sonucu uzunluk 30'a bölünür. Satır başına bir öbek görüntüler, sonuç aşağıdaki gibi görünür.s30

888888888888888811111111111111
888888888888888888111111111111
888888888888888888811111111111
888111111111111888881111111111
888111111111111118888111111111
888111111111111111888811111111
888111111888888111188881111111
888111188888888881118888111111
888111888888888888111888811111
888118888888888888811188881111
888111111188888888811118881111
888111111118888888881111888111
888111111111888888881111888811
888111111111888888881111188811
888111111111888888881111118881

Şimdi, parça m0dizisini ters çevrilmiş bir kopyasıyla birleştiriyor. Daha sonra, Zsatır ve sütunları transpoze ederek sonucu sıkıştırır.

888888888888888888888888888888
888888888888888888888888888888
888888888888888888888888888888
888111111111111111111111111888
888111111111111111111111111888
888111111811111111118111111888
888111118811111111118811111888
888111188811111111118881111888
888111188811111111118881111888
888111888811111111118888111888
888111888881111111188888111888
888111888888111111888888111888
888111888888888888888888111888
888111888888888888888888111888
888111888888888888888888111888
888811188888888888888881118888
188811188888888888888881118881
188881118888888888888811188881
118888111888888888888111888811
111888811118888888811118888111
111188881111111111111188881111
111118888111111111111888811111
111111888811111111118888111111
111111188881111111188881111111
111111118888811118888811111111
111111111888881188888111111111
111111111118888888811111111111
111111111111888888111111111111
111111111111118811111111111111
111111111111111111111111111111

0Parlatılamaz bir nilad olduğundan, daha önce elde edilen sonuç yazdırılır (satır kesilmeden) ve dönüş değeri 0 olarak ayarlanır .

62başka bir çözümlenemez nilad olduğundan, önceki ( 0 ) sonucu yazdırılır ve dönüş değeri 62 olarak ayarlanır .

ȷ446bir başka düzeltilemez nilad. 62 yazdırılır ve dönüş değeri 10 446 olarak ayarlanır .

Son olarak, sonucu arttırır. Nihai sonuç ( 10 446 + 1 ) program bittiğinde yazdırılır.


ooo cool Lütfen bir açıklama ekleyin: D
HyperNeutrino

@HyperNeutrino çıktıyı temel alıyor (fakat Jelly bilgisi eksikliğimden dolayı), bazı yansıtmalar oluyor veya bunun gibi bir şey var
Stephen

1
@Stephen Peki, önce bir fantezi numarası ve sonra "biblif temelli bir şeye" dönüşme demek istiyorum (bu ne anlama gelirse onu çözeceğim), ve sonra sıralıyorum, sonra da koşu uzunluğu ve daha sonra [8, 1]... Oh, bu akıllı! Bu numarayı çalıyorum umarım sakıncası yoktur :))) ve sonra evet bütün o garip 06210..01 şeyleri ekleyin. nice :)
HyperNeutrino

2
@HyperNeutrino Bir açıklama eklendi.
Dennis,

Yalnızca, "grafikler" için oy kullanıldı. Bu :) Ben Jelly anlaşılan dilek, hoş tatlı
pinkfloydx33

7

SOGL V0.12 , 81 78 75 73 bayt

$!╚Qαūπōθ(└↓Υ8Π⁶!√|ΠΚψ░⅜Υ‛⁷>∙↓ts3]δεΧ‰“8«─'½Κ81¹¹I⌡_¹◄ø∑'¹n╬³0621"η“⌡01⁰∑

Burada dene!

Açıklama:

...“                 push a big number of the RLE lengths of the top part
    8«─              convert from base 10 to base 16 (15 was the max length, and making it base 15 wasn't worth it)
       '½Κ           prepend to the array 48
          81¹        push [8, 1]
             ¹       wrap those two in an array
              I      rotate clockwise, resulting in [[8, 48], [1, 2], [8, 9], [1, 12], ...]
               ⌡_¹   flatten (iterate over, splat current items contents on stack, collect the contents in an array)
                  ◄  run-length decode

ø∑                   join as a string
  '¹n                split into lines of length 15
     ╬³              palindromize horizontally with no overlap
       0621          push 0, 6, 2, and 1
           "η“       push 445
              ⌡      that many times do
               0       push 0
                1    push 1
                 ⁰∑  join the stack together in a string

6

Jöle , 136 bayt

“ßṪṭAƭẠvµM⁾ṖOḥ⁻Ɠ×Ṣ~*pṭẒFỵṿ¦4ÇḟọLÑOcKɲ⁶2*Ḣɲ’b45;@€1ẋ/€ø“Œ\⁴rrNỊġ:,xƙŒ#ṠƲQçḷĠ%&⁻ɼiḂŀB<Ȧƈg(Ṇb>TḥḄ|ḃṘƬ#l7ƇØṃ’b94;@€8ẋ/€ðżF;0;6;2;1;0ẋ445¤;1Ḍ

Çevrimiçi deneyin!

Açıklama (sayıları kısaltılmış)

“ßṪṭ...*Ḣɲ’b45;@€1ẋ/€ø“Œ\⁴...ƇØṃ’b94;@€8ẋ/€ðżF;0;6;2;1;0ẋ445¤;1Ḍ  Main link
“ßṪṭ...*Ḣɲ’b45;@€1ẋ/€                                             Run-length encoded 1s
“ßṪṭ...*Ḣɲ’                                                      The base-45 encoding of the list of the run-lengths of 1s
           b45                                                    in base 45
                €                                                 For each element
              ;@                                                  prepend
                 1                                                1
                    €                                             For each sublist
                   /                                              Reduce over
                  ẋ                                               Repeat list (this gets a bunch of lists of 1s)
                     ø“Œ\⁴...ƇØṃ’b94;@€8ẋ/€                       Run-length encoded 8s
                      “Œ\⁴...ƇØṃ’                                 The base-94 encoding of the list of the run-lengths of 8s
                                 b94                              in base 94
                                      €                           For each element
                                    ;@                            prepend
                                       8                          8
                                          €                       For each sublist
                                         /                        Reduce over
                                        ẋ                         Repeat list (this gets a bunch of lists of 8s)
                                           ðżF;0;6;2;1;0ẋ445¤;1Ḍ  With both of the previous lists of lists, construct the final string
                                            ż                     Interleave them
                                             F                    Flatten it
                                              ;0                  Append 0
                                                ;6                Append 6
                                                  ;2              Append 2
                                                    ;1            Append 1
                                                      ;           Append
                                                       0ẋ445¤     (Nilad)
                                                       0          0
                                                        ẋ445      445 times
                                                             ;1   Append 1
                                                               Ḍ  Convert decimal digits to a number

-121 bayt Dennis sayesinde “...’normal sayılar yerine değişmezleri kullanıyor


“...’değişmezler bir sürü baytı kurtarır. tio.run/…
Dennis

@Dennis Oh Tanrım, bu daha okunaklı değil. Güzel! Teşekkürler! : D
HyperNeutrino

0;6;2;1;çok kötü görünüyor.
Magic Octopus Urn

@ MagicOctopusUrn Evet, muhtemelen biraz kısaltabilirim; Bunu araştıracağım: P
HyperNeutrino

6

Jelly ,  133 84  73 bayt

“÷iþṃL7[ḲʂƘⱮ=ƬƤ¬`RẹŀẹY÷n£ị€ıø&ḟ"gPƲ_ÇḊṪ’b⁴48;ĖŒṙḂ×7‘s15m€0F;“¡©£¢‘Ḍ×ȷ446‘

Çevrimiçi deneyin! (altbilgi, ondalık sayıyı armayı oluşturan boyutlarla biçimlendirir).

Nasıl?

Silah ceket sol tarafında bir ikili biçimde bir sayı-uzunluk kodlanmış bir şekilde 8S ve 1bir önceki satıra çalıştırılması 0621ile yansıtılan 0621ilave edildi ve daha sonra tarafından çarpılan 10 446 ve arttırılır.

“...’b⁴48;ĖŒṙḂ×7‘s15m€0F;“¡©£¢‘Ḍ×ȷ446‘ - Link: no arguments
“...’                                  - base 250 number
     b⁴                                - to base 16
       48;                             - prepend a 48
          Ė                            - enumerate [[1,48],[2,12],[3,3],[4,12],[5,3],...
           Œṙ                          - run-length decode (48 1s then 12 2s then ...)
             Ḃ                         - modulo by 2 (vectorises) evens->0 odds->1
              ×7                       - multiply by 7 (vectorises)
                ‘                      - increment (vectorises) - now all 8s and 1s
                 s15                   - split into chunks of length 15
                    m€0                - reflect each chunk
                       F               - flatten
                         “¡©£¢‘        - code-page indices = [0,6,2,1]
                        ;              - concatenate
                               Ḍ       - from decimal list to number
                                 ȷ446  - 10^446
                                ×      - multiply
                                     ‘ - increment

5

Kömür , 107 104 98 96 87 79 bayt

E³⁰✂”}∧Pt→8⌕LJε`‽∨↑¬KαfGⅉKMκ⎆wp◧⪫⊘^≦#⁸¹"π✂×OγX‹nI”×ι¹⁵×⊕ι¹⁵‖CM²⁸←621M²⁵¦¹⁴1UB0

Çevrimiçi deneyin! Açıklama için ayrıntılı kod bağlantısı


4

Proton , 368 bayt

s=(map("8"&(*),[93,6,6,1,1,6,2,2,6,3,3,6,3,3,6,4,4,6,5,5,6,6,6,6,18,6,18,6,18,7,16,4,3,16,3,4,14,4,4,12,4,4,8,4,4,4,4,4,4,4,4,4,5,5,5,5,8,6,2]),map("1"&(*),[24,24,6,10,6,5,10,5,4,10,4,4,10,4,3,10,3,3,8,3,3,6,3,3,3,3,3,3,3,3,3,1,3,3,2,3,3,3,3,3,5,4,4,7,14,9,12,11,10,13,8,15,4,17,2,20,23,26,44]))
q=''.join(s[0][i]+s[1][i]for i:0..len(s[0]))
print(q+'0621'+'0'*445+'1')

Çevrimiçi deneyin!


4

Ruby , 180 bayt

s=0;"".unpack('H*')[0].split(?f).map{|a|a.chars.map{|c|s^=2**c.to_i(16)};t=("%015b"%s).gsub ?0,?8;$><<t+t.reverse};puts'0621'+?0*445+?1

Çevrimiçi deneyin!

178 bayt + 2 bayt -Kn(ASCII kodlamasını zorlar.)

İlk alıntılar arasında çoğunlukla 43 basılamaz karakter. HexDump:

00000000: 733d 300a 22ff f012 3456 789a bff5 f6f7  s=0."...4Vx.....
00000010: ff8f 4f3f 012f ff8b fef7 af69 df45 8cf0  ..O?./.....i.E..
00000020: 1237 bf6a f59f 48f2 37f1 6f04 5f3f 12f0  .7.j..H.7.o._?..
00000030: 222e 756e 7061 636b 2827 482a 2729 5b30  ".unpack('H*')[0
00000040: 5d2e 7370 6c69 7428 3f66 292e 6d61 707b  ].split(?f).map{
00000050: 7c61 7c61 2e63 6861 7273 2e6d 6170 7b7c  |a|a.chars.map{|
00000060: 637c 735e 3d32 2a2a 632e 746f 5f69 2831  c|s^=2**c.to_i(1
00000070: 3629 7d3b 743d 2822 2530 3135 6222 2573  6)};t=("%015b"%s
00000080: 292e 6773 7562 203f 302c 3f38 3b24 3e3c  ).gsub ?0,?8;$><
00000090: 3c74 2b74 2e72 6576 6572 7365 7d0a 7075  <t+t.reverse}.pu
000000a0: 7473 2730 3632 3127 2b3f 302a 3434 352b  ts'0621'+?0*445+
000000b0: 3f31                                     ?1

Nasıl?

Diğer herkes koşu boyu kodlama yapıyordu, bu yüzden farklı bir şey denemek istedim.

Asalın biçimlendirilmiş "resim" versiyonu iki kısma ayrılabilir - 8'lerin ve 1'lerin 30x30'lık bir ızgarası ve çoğunlukla kodlanabilen sıfırların ikinci bir bölümü. İlk bölüme odaklanarak, merkezin altından simetrik olduğunu gözlemledik, böylece sol yarısını üretebilirsek, her çizginin yarısını tersi ile basabiliriz.

Bir satırın yarısı 15 karakter uzunluğundadır. 8'leri sıfırlarla değiştirirsek, her satır 15 bit ikili sayı olarak yorumlanabilir. Elverişli olarak, çoğunlukla, her bir ardışık çizgi arasındaki düzenleme mesafesi küçüktür, bu yüzden , her seferinde sonucu yazdırmak için ilk çizgiyi s( 888888888888888sadece 0 olur) depolayan ve bir dizi bit çevirme işlemi uygulayarak çözümümü uygulamaya karar verdim. s.

Her satır 15 bit uzunluğunda olduğundan, bu işlemleri onaltılık basamak olarak kodladım - örneğin, işlem b(veya 11) ise, o zaman bit 11'i çeviririz. Bazı satırlar bir bitden daha fazla farklılık gösterir, bu yüzden onaltılık bir dize isterler. basamak. Bir bitimiz kaldı ( f), bu yüzden bu dizgiler arasında sınırlayıcı olarak ve aynı zamanda "hiçbir şey yapmama" değeri olarak kullanabiliriz. Aşağıdaki Örnek (sen bu satırları görebilirsiniz sonrası söz başvurulan):

Line 3: 000000000000000
Line 4: 000111111111111  <-- flip bits 0 through b
Line 5: 000111111111111  <-- do nothing
Line 6: 000111111011111  <-- flip bit 5

Hepsini bir araya koymak için 0123456789ab, sonra ayrıştırır f, hiçbir şey yapmaz f, sonra kodlardık 5. Bu çalışmalar yapacağız çünkü .split(?f)verecektir hattı ile operasyonların, her set almak için daha sonra ["0123456789ab", "", "5"], ve ""bir no-op olacaktır.

Yukarıdaki satır 3 ve 4 arasındaki fark en uzun düzenleme kümesidir ve iki ardışık satır arasındaki düzenleme mesafesi genellikle 0-2'dir, bu yüzden kodlamanın makul derecede ucuz olduğunu söyleyebilirim. geliştirilebilir.

Kodlanmış dizenin fff0123456789abff5f6f7ff8f4f3f012fff8bfef7af69df458cf01237bf6af59f48f237f16f045f3f12f0tamamı 30x30 ızgarayı elde edecek şekilde (86 bayt) olur. Ama henüz bitmedi ...

Onaltılık sayılar 4 bit ( b-> 1100, vb.) İle gösterilebilir. Bu, dizgimizi 4 bit kodunu bayt kullanmak yerine kodlamak isteyeceğimiz anlamına gelirse, dizenin uzunluğunu yarıya indirebiliriz. Yani ben de öyle yaptım - hexdump 43 byte'ta gösterilen dizgiyi gösteriyor. Bundan sonra, Ruby'nin şık kullanmanın meselesi dize # unpack ile H*86 bayt bildiğimiz sürümü ve aşka 43 bayt dizesini genişletmek için (onaltılık dize, yüksek nibble ilk olarak yorumlamak) ve operasyonların her kümesi üzerinde döngü saygısız bitleri - saklanan dizgimiz sve ilgili biti çevirmek için cyaptığımız bir işlem s ^ 2**c.to_i(16)için.

Her bir düzenleme seti tamamlandıktan sonra, sonuçtaki binary değerini 15 bite sıkıştırır, 0'ların hepsini 8'lere geri alırız ve sonucu ve tersini yazdırırız. Daha önce belirtildiği gibi, sayının 30x30 ızgaradan sonraki kısmı kodlanabilir, bu yüzden bunu yaparız puts'0621'+?0*445+?1.

Kodlanmış son dizginin TIO üzerinde çalışma imkanı yoktur, bu nedenle TIO sürümü hala çalışan ancak daha uzun süren çıkışları kullanır.


3

Piton 2 , 760 523 329 205 196 bayt

-237 bayt Stephen sayesinde. Jonathan Frech sayesinde -124 bayt.

print''.join((ord(j)-34)*'81'[i%2]for i,j in enumerate(":(:((#,#(('$,$'(&%,%&(&%,%&(%&,&%(%'*'%(%(((%(%4%(%4%(%4%)%2%&#%%2%%$&%0%&%&%.%&'&&*&&)&0&+&.&-&,&/&*&1'&'3'$'6*9(<$N"))+'0621'+'0'*445+'1'

Çevrimiçi deneyin!


526 bayt için değişkenleri bildirerek 8ve 1ve birleştirme621
Stephen

Ah. XD Sadece otomatikleştirdim, bu yüzden görmedim 621. Teşekkürler!
tamamen insan

2
205 byte listeyi sıkıştırarak. Birkaç tane daha yazdırılabilir bayt kullanmak istiyorsanız.
Jonathan Frech

2

CJam, 532 412 340 231 210 209 bayt

" $ MBZp ve 8OIoLs7Rv / BEqN # 1 r ~ e $ O,% 6 ^ UO = \ z: (lw] l \ LQ.g.aWf + {2; ile | YP'y $. Lc dolar, $ GMCg ve bayan # y0 * z` Z, Cı-| Hf6 b / o-0 | FNK5R: yağ verene} { '' CJ} LOXMSA, ve vzl5scm5y0 {om = A _ # / WF "' # fm92bs: A;" 6NLkB) h% @ {u`hp_v + YK "'# fm92bYb2f + {[A / (\ s: A)]}% e ~ 0445 * 1

Çevrimiçi Deneyin

Çalışma uzunluğu kodlaması, taban 92'den genişletildi (Taban 250, çok bölmeli karakterlere yol açtı, bu yüzden ayarlamak zorunda kaldı). Ayrıca, 4341089843357287864910309744850519376taban 92'den genişletilir ve ikiliye dönüştürülür. A 1, koşu uzunluğunun iki rakam olduğunu, 0 ise bir rakam olduğunu gösterir. Örneğin, ikili gösterimin ilk 4 basamağı 1101'dir, çünkü ilk dört çalışma [93,8],[24,1],[6,8],[24,1](93 8, 24 1, vb ...)


2

JavaScript, 454 450 332 207 204 bayt

Stephen sayesinde -4 byte. Shaggy ve Dom Hastings sayesinde -125 bayt.

_=>[...`]






,`].map((j,i)=>'81'[i%2].repeat(j.charCodeAt())).join``+0+621+"0".repeat(445)+1

Bu cevapta yazdırılamayan bir gemi dolusu var, işte bir hexdump:

00000000: 5f3d 3e5b 2e2e 2e60 5d18 0618 0606 010a  _=>[...`].......
00000010: 0106 0605 020a 0205 0604 030a 0304 0604  ................
00000020: 030a 0304 0603 040a 0403 0603 0508 0503  ................
00000030: 0603 0606 0603 0603 1203 0603 1203 0603  ................
00000040: 1203 0703 1003 0401 0303 1003 0302 0403  ................
00000050: 0e03 0403 0403 0c03 0405 0404 0804 0407  ................
00000060: 040e 0409 040c 040b 040a 040a 0408 040f  ................
00000070: 0504 0511 0502 0514 0817 061a 022c 605d  .............,`]
00000080: 2e6d 6170 2828 6a2c 6929 3d3e 2738 3127  .map((j,i)=>'81'
00000090: 5b69 2532 5d2e 7265 7065 6174 286a 2e63  [i%2].repeat(j.c
000000a0: 6861 7243 6f64 6541 7428 2929 292e 6a6f  harCodeAt())).jo
000000b0: 696e 6060 2b30 2b36 3231 2b22 3022 2e72  in``+0+621+"0".r
000000c0: 6570 6561 7428 3434 3529 2b31            epeat(445)+1

f=
_=>[...`]






,`].map((j,i)=>'81'[i%2].repeat(j.charCodeAt())).join``+0+621+"0".repeat(445)+1

document.write(f())


Değeri bir işlevden döndürmenin geçerli olacağını düşünüyorum.
Stephen

Oh, doğru teşekkürler. HTML kısmını da yapabilir misiniz? : PI ciddiye bu kadar çok şey bilmiyorum, sadece düzenli regex yerine JS aldı. EDIT : Teşekkürler. : D
tamamen insan

En son alıntıları +'1'zaten bir Stringve +'0621'olabileceği gibi göz ardı edebilirsiniz +0+621!
Dom Hastings

1
222 bayt - Sonuncusu , söz veriyorum!
Shaggy

3
[...`]beni çok kızdırıyor
ETHproductions

2

JavaScript (ES6), 206 205 204 203 198 197 194 bayt

Her zaman bir çözüm üzerinde çalıştığımda bununla karşılaştım, kendi başına göndermeyi garanti etmek için yeterince farklı olduğunu düşündüm.

Bu, arasında ]ve arasında yazdırılamayan bir yük içerir , ,bu nedenle Unicode kaçışlarıyla görüntülemek için aşağıdaki TIO bağlantısını izleyin (her biri sırasıyla \u4 basamaklı sayıları 1 bayt olarak sayar).

_=>`],0621ƽ1`.replace(/\D/g,(x,y)=>"810"[y<122?y&1:2].repeat(x.charCodeAt()))

Çevrimiçi deneyin


2

MATLAB / Octave , 319 318 bayt

Bu benim bu zorluğa ilk girişim. Hala biraz büyük ve muhtemelen bunu yapmanın daha etkili yolları var, ancak yöntem sadece sıkıştırmaktan daha ilginç olduğu için yine de göndereceğimi düşündüm.

for i=reshape('|871%871%8%1 8)1 8%1%8$1!8)1!8$1%8#1"8)1"8#1%8#1"8)1"8#1%8"1#8)1#8"1%8"1$8''1$8"1%8"1%8%1%8"1%8"118"1%8"118"1%8"118"1&8"1/8"1#8 1"8"1/8"1"8!1#8"1-8"1#8"1#8"1+8"1#8$1#8#1''8#1#8&1#8-1#8(1#8+1#8*1#8)1#8,1#8''1#8.1$8#1$801$8!1$831''861%891!8K1 0 6 2 1~0~0~0~0`0 1',2,[]);fprintf(repmat(i(2),1,i(1)-31));end

Çevrimiçi deneyin!

Burada kullanılan yöntem, bir tür Uzunluk-Kodlama şemasını kullanmaktır.

Orijinal numara ile başlıyoruz ve ardışık basamak sayısını sayıyoruz. Bunlar aşağıdaki sonuç olarak doğrudan sayının takip ettiği rakam olarak yazılmıştır (netlik için ayrılmış alan).

938 241 68 241 68 61 8 101 8 61 68 51 28 101 28 51 68 41 38 101 38 41 68 41 38 101 38 41 68 31 48 101 48 31 68 31 58 81 58 31 68 31 68 61 68 31 68 31 188 31 68 31 188 31 68 31 188 31 78 31 168 31 48 1 38 31 168 31 38 21 48 31 148 31 48 31 48 31 128 31 48 51 48 41 88 41 48 71 48 141 48 91 48 121 48 111 48 101 48 131 48 81 48 151 58 41 58 171 58 21 58 201 88 231 68 261 28 441 0 6 2 1 4450 1

Değerlerden herhangi biri 95'ten büyükse, bunu 95 ya da daha az çoklu parçaya böleriz - bu sadece 445 0 için olur, bunun yerine dört küme 95 0 ve 65 0'lık bir grup olur. Tüm öğeleri üç karakter uzunluğunda yapmak için 0'dan 10'dan küçük sayıları da dolduruyoruz. Bu alan kaldırılmış olarak verim:

938241068241068061018101018061068051028101028051068041038101038041068041038101038041068031048101048031068031058081058031068031068061068031068031188031068031188031068031188031078031168031048011038031168031038021048031148031048031048031128031048051048041088041048071048141048091048121048111048101048131048081048151058041058171058021058201088231068261028441010016012011950950950950650011

Bu noktada, her şeyi bir araya getirmeden önce bu adımı yapabilirdim, ama siz yaşayıp öğrenirsiniz. Her grubun sayımını almak için zekice bir şey yaparız (2 hane) ve 31 ekleriz. Bunların hepsi <96 olduğundan, sonuçtaki sayı yazdırılabilir bir karakter için ASCII değeridir (32 - 126). Bize verilen sayıları:

|7%7%% ) %%$!)!$%#")"#%#")"#%"#)#"%"$'$"%"%%%"%"1"%"1"%"1"&"/"# ""/""!#"-"#"#"+"#$##'##&#-#(#+#*#)#,#'#.$#$0$!$3'6%9!K    ~~~~` 

Kod çözme işlemine daha elverişli hale getirmek için MATLAB'da bir miktar yeniden şekillendirme yaptıktan sonra ve sonra 'karakterlerle birlikte kaçan karakterleri ''(aksi takdirde MATLAB orada dizelerin harflerini böler), zekice dizeyle kalırız:

|871%871%8%1 8)1 8%1%8$1!8)1!8$1%8#1"8)1"8#1%8#1"8)1"8#1%8"1#8)1#8"1%8"1$8''1$8"1%8"1%8%1%8"1%8"118"1%8"118"1%8"118"1&8"1/8"1#8 1"8"1/8"1"8!1#8"1-8"1#8"1#8"1+8"1#8$1#8#1''8#1#8&1#8-1#8(1#8+1#8*1#8)1#8,1#8''1#8.1$8#1$801$8!1$831''861%891!8K1 0 6 2 1~0~0~0~0`0 1

Bu kodun köküdür. Tek yaptığım kodda, diziyi 128 çift karakterli 2D dizgiye yeniden şekillendirmek. Her çift için ilk karakter 31 çıkarıldı ve ardından ikinci karakter birçok kez görüntülenir.

Sonuç, asal asıldır:

888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888111111111111111111111111888888111111111111111111111111888888111111811111111118111111888888111118811111111118811111888888111188811111111118881111888888111188811111111118881111888888111888811111111118888111888888111888881111111188888111888888111888888111111888888111888888111888888888888888888111888888111888888888888888888111888888111888888888888888888111888888811188888888888888881118888188811188888888888888881118881188881118888888888888811188881118888111888888888888111888811111888811118888888811118888111111188881111111111111188881111111118888111111111111888811111111111888811111111118888111111111111188881111111188881111111111111118888811118888811111111111111111888881188888111111111111111111118888888811111111111111111111111888888111111111111111111111111118811111111111111111111111111111111111111111111062100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001

Düzenlemeler:

  • sihirli dizgiyi yeniden düzenledim, böylece yeniden şekillendirmeden sonra bir devrikten kurtulabildim. Bir bayt kaydeder.

2

05AB1E , 76 bayt

•ŒÆÿ¹т£Ƶ‘β\,ä¸γλaXë«Š¸þaγG(žÃÇ…»šKþÈ/?`'•20BS20öDg81s∍Ss×J30ôø.∞0D445×621s1J

Çevrimiçi deneyin!


Bunu Dennis'den çaldım:

888888888888888811111111111111
888888888888888888111111111111
888888888888888888811111111111
888111111111111888881111111111
888111111111111118888111111111
888111111111111111888811111111
888111111888888111188881111111
888111188888888881118888111111
888111888888888888111888811111
888118888888888888811188881111
888111111188888888811118881111
888111111118888888881111888111
888111111111888888881111888811
888111111111888888881111188811
888111111111888888881111118881

Her zaman 8 ile 1 arasında değiştiğini fark ettim, bu yüzden her koşunun uzunluğunu saydım (Base 20):

['G', 'E', 'I', 'C', 'J', 'B', '3', 'C', '5', 'A', '3', 'E', '4', '9', '3', 'F', '4', '8', '3', '6', '6', '4', '4', '7', '3', '4', 'A', '3', '4', '6', '3', '3', 'C', '3', '4', '5', '3', '2', 'E', '3', '4', '4', '3', '7', '9', '4', '3', '4', '3', '8', '9', '4', '3', '3', '3', '9', '8', '4', '4', '2', '3', '9', '8', '5', '3', '2', '3', '9', '8', '6', '3', '1']

Hepsini bir araya getirip, 10 tabanlı bir tamsayıya dönüştürdü:

3954184379309026812828704944878416720438306456270310298603957651230861078960874182787979106461

Base-255'e daha da sıkıştırılmış:

ŒÆÿ¹т£Ƶ‘β\,ä¸γλaXë«Š¸þaγG(žÃÇ…»šKþÈ/?`'

Sonra sıkıştırılmış ucu oluşturduktan sonra ... Sadece orijinal haline getirmek zorundayız ..

20B                                 # Back to base 20.
   S                                # Each char separate...
    20ö                             # As their base 10 values...
       Dg81s∍                       # Extend '81' to the length of the array.
             Ss×J                   # Push that many 8 or 1's as told by the array.
                 30ôø.∞             # Split by the symmetrical pattern, flip it, mirror.
                       0D445×621s1  # Create the part that doesn't fit into a pattern.
                                  J # Join whole stack together.

Nihai çıktı:

88888888888888888888888888888
88888888888888888888888888888
88888888888888888888888888888
88811111111111111111111111888
88811111111111111111111111888
88811111181111111118111111888
88811111881111111118811111888
88811118881111111118881111888
88811118881111111118881111888
88811188881111111118888111888
88811188888111111188888111888
88811188888811111888888111888
88811188888888888888888111888
88811188888888888888888111888
88811188888888888888888111888
88881118888888888888881118888
18881118888888888888881118881
18888111888888888888811188881
11888811188888888888111888811
11188881111888888811118888111
11118888111111111111188881111
11111888811111111111888811111
11111188881111111118888111111
11111118888111111188881111111
11111111888881118888811111111
11111111188888188888111111111
11111111111888888811111111111
11111111111188888111111111111
11111111111111811111111111111
11111111111111111111111111111062100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001

2

C (gcc) , 277 bayt

İpin bir şekilde kısaltılacağı hissine kapılıyorum.

#define F(c,n)for(c=0;c<n;c++)
i,j,k;r(d,n){F(k,n)printf("%d",d);}f(){r(8,90);F(i,128)F(j,6)r(("8111i8111i8915i8=1=i8?1Mi8?1Mi8@1mi8P1oi8p1pi8pppi8pppi8pppi@opPm?opPMOmp@Omip8@iRpR8a41a4Q81i21@1m11O1O11mR@11id811Qp2111p1111="[i]-49>>j)&1?8:1,1);r(1,42);printf("0621%0446d",1);}

Çevrimiçi deneyin!


1

Perl 5 , 307 bayt

$d=1;print((map{($d^=9)x$_}(93,24,6,24,6,6,1,10,1,6,6,5,2,10,2,5,6,4,3,10,3,4,6,4,3,10,3,4,6,3,4,10,4,3,6,3,5,8,5,3,6,3,6,6,6,3,6,3,18,3,6,3,18,3,6,3,18,3,7,3,16,3,4,1,3,3,16,3,3,2,4,3,14,3,4,3,4,3,12,3,4,5,4,4,8,4,4,7,4,14,4,9,4,12,4,11,4,10,4,13,4,8,4,15,5,4,5,17,5,2,5,20,8,23,6,26,2,44)),0,621,0 x445,1)

Çevrimiçi deneyin!


1

Bubblegum , 88 bayt

00000000: edc9 310a 0250 10c4 d02b fdb1 90dc ff64  ..1..P...+.....d
00000010: 96c1 80a2 8885 60aa d97d 7cb3 3de8 75c5  ......`..}|.=.u.
00000020: 37ab 820a 51ee 9537 942a 55c4 aaec 76b4  7...Q..7.*U...v.
00000030: cfb5 1cdc 33dd 908b ac1c 74a0 894e 03c8  ....3.....t..N..
00000040: 11cc 99ab 9c1d c661 32c5 bad6 8aad 96d2  .......a2.......
00000050: b95e 76fe fd6e bb01                      .^v..n..

Çevrimiçi deneyin!


1

Ruby , 194 bayt

$><<?8+"~:(:((#,#(('$,$'(&%,%&(&%,%&(%&,&%(%'*'%(%(((%(%4%(%4%(%4%)%2%&#%%2%%$&%0%&%&%.%&'&&*&&)&0&+&.&-&,&/&*&1'&'3'$'6*9(<$N".bytes.reduce(""){|s,x|s+(s[-1]==?8??1:?8)*(x-34)}+"0621"+?0*445+?1

Üst kısım RLE kodludur, gerisi sadece kodlanmıştır.

Çevrimiçi deneyin!


1

Kotlin , 339 bayt

val s="8J188J1888138<13881887148<14871886158<15861886158<15861885168<16851885178:178518851888188518851D8518851D8518851D8519851B85168315851B85158416851@85168516851>85168716861:861689168@168;168>168=168<168?168:168A1786178C1784178F1:8I188L148^130363231ǯ031"
fun x()=(0..s.length-1 step 2).map{i->(1..(s[i].toInt()-50)).map{print(s[i+1])}}

Çevrimiçi deneyin!


1

CJam ( 108 81 bayt)

"u{èl>`#ö^½³ó!;kMðSÀËndEyvY3ÉÊÅBà#®"256bFbee{)*~}%"81"f=15/_Wf%zT6Y446,:!1

Çevrimiçi demo

Karakter kodlamanın yukarıdakileri kullanması durumunda, işte xxd kodlu:

0000000: 2275 1e7b e86c 3e60  8d23 80f6 5ebd b3f3  "u.{.l>`.#..^...
0000010: 213b 968d 6b4d f053  c0cb 6e64 1c45 7976  !;..kM.S..nd.Eyv
0000020: 5933 c9ca 8dc5 42e0  23ae 2232 3536 6246  Y3....B.#."256bF
0000030: 6265 657b 292a 7e7d  2522 3831 2266 3d31  bee{)*~}%"81"f=1
0000040: 352f 5f57 6625 7a54  3659 3434 362c 3a21  5/_Wf%zT6Y446,:!
0000050: 31                                        1

8s ve 1'lerin ilk çalıştırması, yalnızca sol yarıma bölünür ve çalışma uzunluğu, yalnızca değişen çalışmaların uzunlukları olarak kodlanır. 24'ten fazla olan çalıştırmalar, en fazla 24 olan çalıştırmalara ayrılır, 0 çalıştırmalarıyla ayrılır, böylece uzunluklar taban 25 ile kodlanabilir ve daha sonra bunları bazmak için baz-256 ile kodlanabilir.


1

JavaScript (ES2017), 287 bayt

_=>"00000000000000000027wr2027wr2027a9ko261b7c23jerc23jerc1yjm0o1y8coo1y2ou01xx5q01xx5q01xx5q00yykxc9ull699d4au9dk75xffo1v2fgptj4fh8jrj3hhwvgfhmlev3hour5rhq24n3hqytj3hr4hdrhr8ykfhra0hr".replace(/.{6}/g,n=>parseInt(n,36).toString(2).replace(/0/g,8).padStart(30,8))+0+621+"0".repeat(445)+1

@İcrieverytim'in cevabına biraz farklı bir yaklaşım kullanır . -Shaggy'nin kullanımreplace yerine önerisi sayesinde -10 bayt match!

f=
_=>"00000000000000000027wr2027wr2027a9ko261b7c23jerc23jerc1yjm0o1y8coo1y2ou01xx5q01xx5q01xx5q00yykxc9ull699d4au9dk75xffo1v2fgptj4fh8jrj3hhwvgfhmlev3hour5rhq24n3hqytj3hr4hdrhr8ykfhra0hr".replace(/.{6}/g,n=>parseInt(n,36).toString(2).replace(/0/g,8).padStart(30,8))+0+621+"0".repeat(445)+1
;
p.innerHTML=f()
pre{word-wrap:break-word;white-space:normal}
<pre id=p></pre>



1

/// , 260 bayt

/;/88%//:/1&13%13"//9/\/\///7/"1#95/!!!!94/%""93/8889-/000009,/11#9'/###9&/#88"9%/"""9#/389"/1119!/-----0/'''''''##8%4#;4&"8%18""&11;188"1::1&#%1#"&#8"",8"&&"&&'&&'&&'&#3"'#"#13"'#"3,"##&#"#"'"#",7#7"7%",%#%"#%,%1#%7"",4#8784,8,8%%,#%%",;411;%%41106215555!0001

Çevrimiçi deneyin!

Çok ilginç bir şey değil, sadece biraz sıkıştırma.



1

Python 2 , 191 190 188 bayt

s='0621'+'0'*445+'1'
a=1
for c in'L":&7(4%"%1%$%/$($-$*$+$,$)$.$\'$$($$%$#,#$#$#.#$"##0##!$#0#\'#2#&#2#&#2#&#&&&#&#%(%#&#$*$#&$#*#$&$#*#$&%"*"%&&!*!&&8&8}':s=`a`*(ord(c)-32)+s;a^=9
print s

Çevrimiçi deneyin!

Buradaki cevabımla aynı müdü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.