क्या तुमने आज मूत दिया है?


9

डेबियन लिनक्स वितरण (और Ubuntu, काली और अन्य की तरह डेबियन-आधारित डिस्ट्रोस) APT नामक एक पैकेज-प्रबंधक का उपयोग करता है। प्रोग्राम स्थापित करने के लिए fooआप एक टर्मिनल में टाइप करेंगे

sudo apt-get install foo

एपीटी का एक छोटा ईस्टर अंडा निम्नलिखित है

apt-get moo

जो टाइप करने के बाद निम्न आउटपुट का उत्पादन करेगा

                 (__) 
                 (oo) 
           /------\/ 
          / |    ||   
         *  /\---/\ 
            ~~   ~~   
..."Have you mooed today?"...

आपको एक प्रोग्राम लिखना होगा जो इस EXACT आउटपुट को यथासंभव कम बाइट्स में बनाता है। (अनुगामी रिक्त स्थान और एक नई पंक्ति सहित)

\nन्यूलाइन वर्णों *का प्रतिनिधित्व करने के लिए और अनुगामी स्थानों का प्रतिनिधित्व करने के लिए यहां एक ही आउटपुट जोड़ा गया है

                 (__)*\n
                 (oo)*\n
           /------\/*\n
          / |    ||***\n
         *  /\---/\*\n
            ~~   ~~***\n
..."Have you mooed today?"...\n

जैसा कि टिप्पणियों में अनुरोध किया गया है, यहां म्यूडिंग का md5sum है।

35aa920972944a9cc26899ba50024115  -

1
मुझे लगता है कि यह एपीटी है, योग्यता नहीं; एप्टीट्यूड में सुपर काउ पॉवर्स नहीं है
एडिट्स ने छोड़ दिया क्योंकि एसई ईवीआईएल

@aditsu ओह, मुझे लगता है कि मैंने गलत समझा है कि योग्यता क्या है। मुझे लगा कि एप्टीट्यूड, apt-get का नाम है।
जेम्स

संदर्भ के लिए, क्या आप का आउटपुट पोस्ट कर सकते हैं apt-get moo|md5sum?
एडित्सू ने छोड़ दिया क्योंकि SE को EVIL

25
बैश, 11 बाइट्स:: apt-get mooपी
डेनिस

5
@ डेनिस आर्क लिनक्स पर काम नहीं करता ... परिणाम को पुन: पेश नहीं कर सकता: पी
ओटोमो

जवाबों:


6

बैश, 95 बाइट्स

0000000: 7a 63 61 74 3c 3c 27 27 0a 1f 8b 08 01 01 01 01 01  zcat<<''.........
0000011: 02 03 53 40 07 1a f1 f1 9a 0a 5c 98 c2 f9 f9 a8 c2  ..S@......\......
0000022: fa ba 60 10 a3 8f 2c aa af 50 03 a2 6a 40 24 42 58  ..`...,..P..j@$BX
0000033: 0b 28 11 03 54 ab 1f 83 6a 70 5d 1d 8c e0 d2 d3 d3  .(..T...jp]......
0000044: 53 f2 48 2c 4b 55 a8 cc 2f 55 c8 cd cf 4f 4d 51 28  S.H,KU../U...OMQ(
0000055: c9 4f 49 ac b4 57 02 ca 70 01                       .OI..W..p.

ऊपर एक प्रतिवर्ती हेक्सडंप है। फ़ाइल बनाने के लिए, निष्पादित करें

xxd -r -c 17 > 55918.sh

हेक्सडम्प पेस्ट करें और दबाएँ Enter, फिर Ctrl+ D

बनाई गई फ़ाइल को चलाने के लिए, निष्पादित करें

bash 55918.sh 2>&-

कोई और फ़ाइलनाम करेगा।

मैंने कंप्रेसर के रूप में zopfli को चुना क्योंकि यह कोरुटिल्स प्रोग्राम zcat के साथ संगत है और gzip, bzip2 और xz की तुलना में बेहतर संपीड़न प्राप्त करता है।

zcat<<''निम्नलिखित लाइनों (EOF तक) को पढ़ेंगे और उन्हें इनपुट के रूप में फीड करेंगे zcat

ध्यान दें कि zcat एक चेतावनी प्रिंट करेगा (चूंकि मैंने संपीड़ित फ़ाइल का चेकसम छीन लिया है), जैसा कि बैश होगा (चूंकि HEREDOC एक खाली लाइन द्वारा समाप्त नहीं किया गया है)। इन चेतावनियों को STDERR (द्वारा दबा दिया गया 2>&-) पर मुद्रित किया जाता है , जिसे मेटा पर सर्वसम्मति से डिफ़ॉल्ट रूप से अनुमति दी जाती है ।


10

सीजेम, 96

यह बहुत सारे गंदा बाइट्स का उपयोग करता है, इसलिए यहां इसका एक हेक्स डंप है:

00000000  22 ee 51 1e 53 41 15 ee  51 20 53 41 15 9a 5f 5a  |".Q.SA..Q SA.._Z|
00000010  b9 5f 41 15 8c 5f 41 f9  38 24 2a 15 7e 55 1c 5f  |._A.._A.8$*.~U._|
00000020  b9 30 5f b9 41 15 a8 26  2a 26 2a 15 36 45 91 c3  |.0_.A..&*&*.6E..|
00000030  ed cb 41 f3 df eb 41 db  20 cb c9 41 e9 df c9 c3  |..A...A. ..A....|
00000040  f3 7f 45 36 15 22 7b 69  32 6d 64 5c 5f 63 5c 37  |..E6."{i2md\_c\7|
00000050  6d 64 22 20 5f 6f 2d 7c  7e 2e 22 3d 2a 3f 7d 2f  |md" _o-|~."=*?}/|

आप जावा इंटरप्रेटर के साथ फाइल चला सकते हैं; ISO-8859-1 एन्कोडिंग का उपयोग करना आवश्यक हो सकता है, जैसे:
java -Dfile.encoding=ISO-8859-1 …

इसे ऑनलाइन आज़माएं

समतुल्य (और बहुत लंबा) ASCII संस्करण:

[238 81 30 83 65 21 238 81 32 83 65 21 154 95 90 185 95 65 21 140 95 65 249 56 36 42 21 126 85 28 95 185 48 95 185 65 21 168 38 42 38 42 21 54 69 145 195 237 203 65 243 223 235 65 219 32 203 201 65 233 223 201 195 243 127 69 54 21]:c
{i2md\_c\7md" _o-|~."=*?}/

इसे ऑनलाइन आज़माएं

स्पष्टीकरण:

7 वर्ण हैं जिनमें पुनरावृत्तियाँ हैं _o-|~.:। उनमें से प्रत्येक को 0 से 6 तक की संख्या n के रूप में एन्कोड किया जा सकता है। प्रत्येक दोहराए जाने वाले अनुक्रम के लिए, मैं एक ही बाइट में वर्ण के सूचकांक (n) और दोहराव की संख्या (k) दोनों को एन्कोड कर रहा हूं: इसके 2 * (k * 7 + n)साथ एक चरित्र के रूप में लिखा गया है। कोड। और मैं किसी भी एकल वर्ण को एन्कोडिंग कर रहा हूं 2 * c + 1, जहां ग ASCII कोड है। सब कुछ प्रारंभिक स्ट्रिंग में चला जाता है, और बाकी कार्यक्रम इसे डिकोड कर रहा है:

{…}/      for each character in the string
  i       convert to integer (extended-ASCII code)
  2md     integer division by 2, obtaining the quotient (q) and remainder (r)
           r decides whether it's a repetition or single character
  \_      swap q and r, and duplicate q
  c\      convert q to character and move it before the other q
           this is for the r=1 case (single character)
  7md     divide q by 7, obtaining the quotient (k) and remainder (n)
  "…"=    get the corresponding character from that string (decoding n)
  *       repeat the character k times
  ?       use the single character or the repetition, depending on r

पुराना संस्करण (109):

" H(_2) 
 H(o2) 
 B/-6\/ 
 A/ | 4|2 3
 9* 2/\-3/\ 
 C~2 3~2 3
.6"{_'M,48>&{~*}&}/3/"Have you mooed today?"`*N

इसे ऑनलाइन आज़माएं


6

अजगर, १००

r"17 (__) 
17 (oo) 
11 /6-\/ 
10 / |4 ||3 
9 *  /\\3-/\ 
12 ~~3 ~~3 
3.\"Have you mooed today?\"3."9

इसे ऑनलाइन आज़माएँ: प्रदर्शन

r"string"9 रन-लेंथ-स्ट्रिंग को डीकोड करता है।

संपादित करें:

यहाँ एक 97 चार समाधान है: प्रदर्शन । बहुत संभावना है कि यह 97 बाइट्स (iso-8859-1 में) भी है। लेकिन बाइट्स लिखने और स्पष्टीकरण करने के लिए बहुत थक गए। कल शाम, मुझे लगता है।


4

गोल्फस्क्रिप्ट (107 बाइट्स)

यह एक बहुत ही सरल एन्कोडिंग है: नई लाइनों को बदल दिया जाता है ^, और रिक्त स्थान रन-लेंथ-एन्कोडेड होते हैं। परिणाम में कुछ गैर-मुद्रण योग्य वर्ण शामिल हैं, इसलिए मैं इसे यहां xxdआउटपुट के रूप में प्रस्तुत करता हूं :

0000000: 2711 285f 5f29 015e 1128 6f6f 2901 5e0b  '.(__).^.(oo).^.
0000010: 2f2d 2d2d 2d2d 2d5c 2f01 5e0a 2f01 7c04  /------\/.^./.|.
0000020: 7c7c 035e 092a 022f 5c2d 2d2d 2f5c 015e  ||.^.*./\---/\.^
0000030: 0c7e 7e03 7e7e 035e 2e2e 2e22 4861 7665  .~~.~~.^..."Have
0000040: 0179 6f75 016d 6f6f 6564 0174 6f64 6179  .you.mooed.today
0000050: 3f22 2e2e 2e27 7b2e 3332 3c7b 2220 222a  ?"...'{.32<{" "*
0000060: 7d2a 7d25 225e 222f 6e2a 0a              }*}%"^"/n*.

ऑनलाइन डेमो

ध्यान दें कि यह संबंधित CJam कोड से छोटा एक वर्ण है। ट्रेडऑफ़ 'मुख्य स्ट्रिंग के लिए सीमांकक के रूप में उपयोग कर रहा है (दो \एस से बचने के लिए "), iडिकोडिंग लूप में पूर्णांक को चरित्र मानों को परिवर्तित करने के लिए बचत करता है, और एक निशुल्क अनुगामी न्यूलाइन प्राप्त करता है; एकल-वर्ण स्ट्रिंग शाब्दिक को बदलने के लिए वर्ण शाब्दिक बनाम।


चूँकि इस सवाल को संक्षिप्त में टैग किया गया था , मैंने केवल (108) मुद्रण योग्य वर्णों के साथ एक संस्करण बनाया:

'Y(__)I
Y(oo)I
S/------\/I
R/I|L||K
Q*J/\---/\I
T~~K~~K
..."HaveIyouImooedItoday?"...'{.82-.*82<{72-' '*}*}%

पात्रों के रूप में रिक्त स्थान की रन लंबाई एन्कोडिंग के बजाय ^Aकरने के लिए ^R(और एन्कोडिंग ^Jके रूप में ^से बचने के टकराव के लिए), यह नई-पंक्तियों अछूता छोड़ देता है और के रूप में रन-लंबाई को कूटबद्ध Iकरने के लिए Y

संयोग से, मेरा सामान्य-उद्देश्य गोल्फस्क्रिप्ट कोलमोगोरोव कार्यक्रम 120-बाइट प्रोग्राम का उत्पादन करता है।


1

लुआ, 186 178 बाइट्स

8 बाइट्स ने @DJ McMayhem द्वारा एक सुझाव के लिए धन्यवाद बचाया

p=print s=" "a=s:rep(17)b=s:rep(9)p(a.."(__) ")p(a.."(oo) ")p(b.."  /------\\/ ")p(b.." / |    ||   ")p(b.."*  /\\---/\\ ")p(b.."   ~~   ~~   ")p"...\"Have you mooed today?\"..."

Ungolfed:

p=print --Save the print function for later use
s=" " --Space character
a=s:rep(17) --string.rep(string, times) repeats the given string
b=s:rep(9)
p(a.."(__) ") --print out the lines
p(a.."(oo) ")
p(b.."  /------\\/ ")
p(b.." / |    ||   ")
p(b.."*  /\\---/\\ ")
p(b.."   ~~   ~~   ")
p"...\"Have you mooed today?\"..."

आप 5 बाइट्स को पंक्ति 2 के स्थान परa=repeat(" ",17)
जेम्स

आह धन्यवाद :) मैं यह पता लगाने की कोशिश कर रहा था कि क्या मैं ऐसा कुछ कर सकता हूं ...
निकोलाई 97

1

> <> , 217 बाइट्स

!v"                 (__) "a"                 (oo) "a"           /------\/ "a"          / |    ||   "a"         *  /\---/\ "a"            ~~   ~~   "a"..."c3*2-"Have you mooed today?"c3*2-"..."a!
 >r>l0)?v;
    ^   o<

दुर्भाग्य से यह एक बहुत उबाऊ जवाब है। यह एक स्ट्रिंग को पढ़ने से शुरू होता है जो पूरी गाय को खींचता है, जिसमें 10 से स्टैक (ए) के मूल्य को जोड़कर बनाई गई नई सुर्खियां होती हैं। यह तब एक पाश में चला जाता है जो सिर्फ गाय को बाहर निकालता है।

मैंने मूल रूप से रिक्त स्थान के एक सेट में जोड़ने के लिए एक लूप बनाया था, लेकिन यह वास्तव में केवल रिक्त स्थान डालने की तुलना में अधिक महंगा बाइट वार था।

संपादित करें: भूल गए कि मछली को "> <>" लिखा जाता है


1

पॉवरशेल, 144 बाइट्स

$a="        "
"$a$a (__) "
"$a$a (oo) "
"$a   /------\/ "
"$a  / |    ||   "
"$a *  /\---/\ "
"$a    ~~   ~~   "
'..."Have you mooed today?"...'

उपरोक्त कोड उन वातावरणों में ठीक से काम करेगा, जो यूनिक्स-शैली के न्यूलाइन्स ( \n) को प्रिंट करते हैं । यह लिनक्स पर , उदाहरण के लिए, पॉश के साथ सही आउटपुट उत्पन्न करता है ।

गणितीय रूप से, PowerShell के लिए, $aवैरिएबल के लिए 8 रिक्त स्थान होना इष्टतम है, क्योंकि चर और गाय के बीच बहुत अधिक अतिरिक्त रिक्त स्थान एक $bसार्थक बनाने के लिए है, और अधिक मतलब है कि हम पहले दो लाइनों के लिए डबल-अप नहीं कर सकते हैं सिर।


4
मेरा तर्क है कि "न्यूलाइन वर्ण" स्थानीय / प्लेटफ़ॉर्म पर निर्भर है, जो आपके आउटपुट को किसी अन्य के रूप में योग्य बनाता है।
22 मई को स्लब्लैक

1. "न्यूलाइन कैरेक्टर" जैसी कोई चीज नहीं है। \rएक गाड़ी वापसी है, \nएक लाइनफ़ीड है। साथ में, \r\nविंडोज पर एक नई लाइन बनाता है। 2. PowerShell केवल Windows नहीं है। मैंने आपके कोड को पश (मोनो के लिए विंडोज पॉवरशेल का एक ओपन-सोर्स कार्यान्वयन) के साथ परीक्षण किया है और आउटपुट में उचित एमडी 5 एचएच है। 3. उपरोक्त के कारण, मैंने आपके पद को खोलने के लिए स्वतंत्रता ली। यदि आप इससे सहमत नहीं हैं, तो कृपया इसे पुनः विकी करें।
डेनिस

, बहुत दिलचस्प @Dennis ... मैं के बीच मतभेद के बारे में पता कर रहा हूँ \r\nऔर \n, लेकिन जैसे मैंने कहा, मैं विंडोज पर MD5 सही कुछ प्रबल बिना नहीं मिल सका। हालांकि उस संपादन के लिए धन्यवाद। पहले मैंने पश के बारे में सुना है, इसलिए, इसके लिए भी धन्यवाद। मुझे आश्चर्य है कि Cygwin के तहत निर्माण करने के लिए कितना जटिल होगा ... ;-)
AdmBorkBork

0

अणु , 145 बाइट्स

"   "_____:a"  (__) 
";a____"  (oo) 
";a__"  /------\\/ 
";a__" / |    ||   
";a__"*  /\\---/\\ 
";a____"~~"b"~~
...\"Have you mooed today?\"..."

मेरा पहली बार ASCII कला को संपीड़ित करने की कोशिश कर रहा है: पी

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.