हम गोल्फ को कोड करने के लिए कोई अजनबी नहीं हैं, आप नियमों को जानते हैं, और इसलिए मैं


252

रिक एस्टले द्वारा "नेवर गोना गिव यू अप" के पूरे गीत को छापने वाले सबसे छोटे कार्यक्रम को लिखें ।

नियम:

  • गीतों का ठीक उसी तरह आउटपुट करना चाहिए जैसा कि वे उपरोक्त पास्टबिन * में दिखाई देते हैं। यहाँ कच्ची डंप है: http://pastebin.com/raw/wwvdjvEj
  • किसी भी बाहरी संसाधनों पर भरोसा नहीं किया जा सकता है - सभी गीतों को कोड में / अंतर्निहित होना चाहिए।
  • जब तक आप अपने कोड में पूर्ण एल्गोरिथ्म शामिल नहीं करते हैं तब तक मौजूदा संपीड़न एल्गोरिदम (जैसे gzip / bzip2) का कोई उपयोग नहीं होता है।
  • किसी भी भाषा का उपयोग करें, सबसे छोटी कोड जीत।

अद्यतन, 1 जून 2012:
गैर- ASCII पाठ वाले समाधानों के लिए, आपके समाधान का आकार यूटीएफ -8 एन्कोडिंग के आधार पर बाइट्स में गिना जाएगा। यदि आप कोडपॉइंट का उपयोग करते हैं जो UTF-8 में एन्कोड नहीं किया जा सकता है, तो आपके समाधान को वैध नहीं माना जाएगा।

अद्यतन,
solutions जून २०१२: आपके सभी भयानक समाधानों के लिए धन्यवाद! मैं कल दोपहर सबसे छोटा जवाब स्वीकार करूंगा। अभी, पीटर टेलर का गोल्फस्क्रिप्ट उत्तर जीत रहा है, इसलिए यदि आप उसे हरा देना चाहते हैं तो कुछ सुधारों पर क्रैक करें! :)

* पास्टबिन में एक टाइपो है (पंक्ति 46, "पता" को "ज्ञात" होना चाहिए)। आप इसे अपने विवेक पर दोहरा सकते हैं या नहीं।


4
@ w0lf आप सही हैं। मैंने केवल उनकी सटीकता को सत्यापित करने के लिए गीतों को स्कैन किया, मुझे वह याद करना चाहिए। मैं या तो "पता" या "ज्ञात" को स्वीकार करूंगा।
बहुपद

10
26k + विचार केवल 3 दिनों में। वाह ...
गफ्फी

9
दुनिया में इसने कितने विचार और वोट उत्पन्न किए? उसने जो भी किया, मैं उसे रिवर्स करने जा रहा हूं।
फीनोटपी

39
@PhiNotPi गुड लक रिवर्स इंजीनियरिंग "जेफ एटवुड आपको ट्वीट करते हुए"।
ब्रेडबॉक्स

9
UTF-8 के साथ प्रतिबंध का कोई मतलब नहीं है। क्या होगा यदि मेरा कोड UTF-16 के रूप में या लैटिन -1 के रूप में कूटबद्ध किया जाता है? आपको या तो बाइट्स की संख्या या वर्णों की संख्या की गणना करनी चाहिए, लेकिन लेखक को एन्कोडिंग छोड़ दें।
तिमवी

जवाबों:


81

रूबी 576 557 556 (552) चार्ट और& PHP 543 चार्ट

एक और खोज और बदलें समाधान। ध्यान दें कि समाधान के लिए इस प्रपत्र अनिवार्य रूप से एक व्याकरण आधारित संपीड़न कोड http://en.wikipedia.org/wiki/Grammar-based_code की जाँच करें http://www.cs.washington.edu/education/courses/csep590a/07au /lectures/lecture05small.pdf एक साधारण से संपीड़न उदाहरण को समझने के लिए।

मैंने प्रतिस्थापन नियम लिखे हैं ताकि प्रत्येक प्रतिस्थापन के लिए शुरुआती चरित्र की गणना की जाए (वे क्रमिक ASCII क्रम में हैं); यह संक्रमण डेटा में मौजूद होने की आवश्यकता नहीं है।

i=44
s="We; n7trangMsL8loT63Ke rules5s8d8I
AJull commit4nt'sChatFKink: of6CHldn'tRetKisJrom<ny@Ruy-/A= if?<sk 42DS'tLE 4?;Lo8bli=L7ee..
O,R1)O,R001)/-.."
"
I justCannaLE?2Gotta >u=Msta=.|
Ng1Nlet? downNrun<rH=5desMt?N>cryNsayRoodbyeNtE< lie5hurt?|

We'T3n each@Jor s8lSg6r hear9<ch: but6;Lo7hyL7BInsideCe both3Cha9Ro: S
We3KeRa45we;QplB|1)O)NgiT, nPgiT
(G|iT? up| howFJeel:
| know|me|<= |
YH|8s|o |t's been|ing|'re| a|nd|make? | yH| othM|A|ay it
| w|D|ell| I'm|G|ou|I| f|Lh| t|er|
NP|
(Ooh|eTrQ|RSna | g|on|ve".scan(/[^|]+/){s.gsub!((i+=1).chr,$&)}
puts s

कार्यान्वयन नोट

  • उपरोक्त समाधान 556 वर्ण लंबा है, लेकिन स्रोत कोड से नईलाइनों को हटाने के साथ स्कोर 552 है। यह मूल 556 चार समाधान की तुलना में थोड़ा बेहतर है जो मैंने 554 स्कोर किया था।
  • मैं "पता" के बजाय "ज्ञात" का उपयोग करता हूं; यह कविता दोहराव को समान बनाता है और संपीड़न को बेहतर बनाना चाहिए
  • मैंने मूल रूप से प्रतिस्थापन के लिए बार-बार खोज करके नियमों को अनुकूलित किया जो वर्तमान कोड आकार में सबसे अधिक कमी लाएगा। हालाँकि, मैंने पाया कि RiderOfGiraffe के प्रतिस्थापन नियम मेरे से थोड़े बेहतर थे, इसलिए मैं अब उनके नियमों के संशोधित संस्करण का उपयोग कर रहा हूं।
  • मैंने नियमों को पुन: व्यवस्थित करने के लिए समय बिताया ताकि एक एकल प्रतिस्थापन पास सब कुछ विघटित कर सके।
  • प्रतिस्थापन नियमों में गणना की गई प्रारंभिक चरित्र के कारण, मेरी नियम सूची में एक सन्निहित ASCII सीमा में प्रत्येक वर्ण के लिए एक नियम है। मैंने पाया कि कुछ "डमी" प्रतिस्थापन नियम सभी वास्तविक नियमों की तुलना में कोड आकार के लिए बेहतर थे और एक अंतिम पाठ निर्धारण प्रतिस्थापन कोडिंग।
  • यह उदाहरण काफी छोटा है कि आप शायद नियमों के इष्टतम (कम से कम कुल लागत) सेट को खोजने के लिए सफलतापूर्वक एक कार्यक्रम लिख सकते हैं। मुझे उम्मीद नहीं है कि ऐसा करने से कुछ बाइट्स के आकार में कमी आएगी।

पुराने कार्यान्वयन

इस पुराने कार्यान्वयन में 576 अक्षर हैं और बदसूरत बैश / sed कार्यान्वयन से प्रतिस्थापन नियमों के साथ शुरू किया गया है। प्रतिस्थापन चर नामकरण को अनदेखा करते हुए, मेरे पहले 28 प्रतिस्थापन बिल्कुल वैसा ही हैं जैसा कि बदसूरत कार्यक्रम में प्रदर्शन किया जाता है। मैंने समग्र बाइट की संख्या को कम करने के लिए कुछ और जोड़ा। यह संभव है क्योंकि मेरे नियम बदसूरत कार्यान्वयन में उन लोगों की तुलना में अधिक कुशलता से प्रतिनिधित्व करते हैं।

i=44
puts"WeM noHtraLersB loJ;6 C rules=so do $
& full commitment'sGhat<thinkDof;Gouldn'tKet this fromFny oCrKuy.
-&E if9ask me1~on't @ me:MBo bliEBHee//

3300-.//|
We'J6n each oCr forHo loL;r hear2FchDbut;MBoHhyBH7$nsideGe both6Gha2ADon
We6 CKame=weM>pl7|
$ justGanna @:1#otta 8uEerstaE/|
5?9up5let9down5runFrouE=desert:58cry5sayAodbye5@F lie=hurt:|(Ooh)5?, nI>?
(#4| how<feeliL
|t's been|(Ooh,K4|iJ9up)
|
NI>| know|ay it
|make9|: | you|
You| $'m |FE |Anna |giJ|tell|Ko| to|the|iL |nd| a| w| s|eJr|ve| g|ng|'re".split("|").inject{|m,o|m.gsub((i+=1).chr,o)}.tr('&~#$',"ADGI")

मैंने इस एक में प्रतिस्थापन नियमों के अनुकूलन की कोशिश नहीं की।

प्रतियोगिता नोट करें

इस प्रतियोगिता के लिए खोज-और-प्रतिस्थापित डिकम्प्रेसन योजना अच्छी तरह से काम करती है क्योंकि अधिकांश भाषाओं में पूर्व-निर्मित दिनचर्या होती है जो ऐसा कर सकती हैं। पाठ की इतनी कम मात्रा उत्पन्न होने के साथ, जटिल अपघटन की योजनाएं संभव नहीं लगती हैं।

मैंने केवल ASCII पाठ का उपयोग किया है और अप्रमाणित ASCII वर्णों का उपयोग करने से भी बचा है। इन प्रतिबंधों के साथ, आपके कोड में प्रत्येक वर्ण अधिकतम 6.6 बिट्स की जानकारी का प्रतिनिधित्व कर सकता है; यह वास्तविक संपीड़न तकनीकों की तुलना में बहुत अलग है जहां आप सभी 8 बिट्स का उपयोग करते हैं। कुछ अर्थों में, यह gzip / bzip2 कोड आकार की तुलना में "उचित" नहीं है, क्योंकि वे एल्गोरिदम सभी 8 बिट्स का उपयोग करेंगे। एक कट्टर डिकंप्रेसन एल्गोरिथ्म संभव हो सकता है यदि आप अपने तार में पारंपरिक रूप से अप्राप्य ASCII को शामिल कर सकते हैं और प्रत्येक अनचाहे चरित्र को अभी भी एक बाइट के रूप में आपके कोड में लिखा गया है।

PHP समाधान

<?=str_replace(range('-',T),split(q,"
I justCannaLE?2Gotta >u=Msta=.q
Ng1Nlet? downNrun<rH=5desMt?N>cryNsayRoodbyeNtE< lie5hurt?q

We'T3n each@Jor s8lSg6r hear9<ch: but6;Lo7hyL7BInsideCe both3Cha9Ro: S
We3KeRa45we;QplBq1)O)NgiT, nPgiT
(GqiT? upq howFJeel:
q knowqmeq<= q
YHq8sqo qt's beenqingq'req aqndqmake? q yHq othMqAqay it
q wqDqellq I'mqGqouqIq fqLhq tqerq
NPq
(OohqeTrQqRSna q gqonqve"),"We; n7trangMsL8loT63Ke rules5s8d8I
AJull commit4nt'sChatFKink: of6CHldn'tRetKisJrom<ny@Ruy-/A= if?<sk 42DS'tLE 4?;Lo8bli=L7ee..
O,R1)O,R001)/-..");

उपरोक्त समाधान "उदास दोस्त" से PHP लेता है और इसे मेरे प्रतिस्थापन नियमों के साथ जोड़ता है। PHP के उत्तर में सबसे छोटा अपघटन कोड होता है। देखें http://ideone.com/XoW5t


मेरा sedसमाधान निश्चित रूप से इसे हरा नहीं सकता। मैं एक ऐसी चीज पर काम कर रहा हूं, जिसमें उम्मीद है कि आपके पास एक मौका है - आपके पास ओवरहेड के 75 बाइट्स हैं, शायद मैं इसे काट दूंगा (रूबी में नहीं)।
बदसूरत

मुझे आपके प्रोग्राम में 555 बाइट्स मिलेंगी (बिना किसी ट्रेसिंग न्यूलाइन के)।
रेस

1
ओपी की स्कोरिंग विधि ascii स्रोत कोड में newline विभाजकों को बाहर करने के लिए है, इसलिए ऐसा लगता है कि यह 554 स्कोर करना चाहिए ।
रेस

महान समाधान! :)
बहुरूपिया

ऐसा लगता है कि सबसे छोटा विघटन कोड PHP में था। यहाँ एक 543 बाइट समाधान है (मेरे नियम, "एक दुखी दोस्त" से कोड स्निपेट का उपयोग करके) ideone.com/XoW5t
Ed H.

73

बैश / सैड, 705 650 588 582 चार्ट

तर्क :
मूल विचार सरल प्रतिस्थापन है। उदाहरण के लिए, लिखने के बजाय Never gonna give you up\nNever gonna let you down, मैं लिखता हूं Xgive you up\nXlet you downऔर सभी Xको प्रतिस्थापित करता हूं Never gonna
यह sedप्रपत्र में, नियमों के एक सेट के साथ चलकर प्राप्त किया जाता है s/X/Never gonna /g
प्रतिस्थापनों को नस्ट किया जा सकता है। उदाहरण के लिए, Never gonnaसामान्य है, लेकिन gonnaअन्य संदर्भों में ऐसा है । तो मैं दो नियमों का उपयोग कर सकता हूं: s/Y/ gonna/gऔर s/X/NeverY/g
नियमों को जोड़ते समय, गीत ग्रंथों के कुछ हिस्सों को एकल वर्णों द्वारा प्रतिस्थापित किया जाता है, इसलिए यह छोटा हो जाता है। नियम लंबे हो जाते हैं, लेकिन अगर स्ट्रिंग को बदल दिया जाता है, तो यह लंबे और अक्सर होता है, यह इसके लायक है।
अगला कदम sedखुद आदेशों से पुनरावृत्ति को दूर करना है। अनुक्रम s/X/something/gकाफी दोहरावदार है।
इसे छोटा करने के लिए, मैं दिखने के लिए sed कमांड बदलता हूं Xsomething। तब मैं sedइसे एक सामान्य sedकमांड में बदलने के लिए उपयोग करता हूं । कोड sed 's#.#s/&/#;s#$#/g;#यह करता है।
अंतिम परिणाम एक sedकमांड है, जिसके तर्क किसी अन्य sedकमांड द्वारा , बैक-कोट्स में उत्पन्न किए जाते हैं ।
आप इस लिंक में अधिक विस्तृत विवरण पा सकते हैं ।

कोड:

sed "`sed 's#.#s/&/#;s#$#/g#'<<Q
LMWe'veKn each o!r for-o longPr hearHzchJbutP're2o-hy2-@Insidexe bothKxhaHCJonMWeK ! game+we'reZpl@
TMI justxanna _UFGotta QuXerstaXR
RM~Squp~letqdown~runzrouX+desertU~Qcry~sayCodbye~_z lie+hurtU
E(Ooh)~S, neverZSM(GV
F how=feelingM
Ht's been
%(Ooh, gV
Vivequp)M
~MNeverZ
K know
@ay itM
Qmakeq
qU 
U you
PMYou
= I'm 
+zX 
ZCnna 
Sgive
_tell
C go
2 to
!the
Jing 
Xnd
z a
x w
- s
M\n`"<<_
We're no-trangers2 lovePK ! rules+so do I
A full commitment'sxhat=thinkJofPxouldn't get this fromzny o!r guyT
LAX ifqask meFDon't _ meU're2o bliX2-eeRRMM%%EELTRR

नोट:
अपघटन इंजन केवल 40 वर्ण लंबा है। अन्य 543 अनुवाद तालिका और संपीड़ित पाठ हैं। bzip2गाने को 500 बाइट्स (इंजन के बिना) को कम्प्रेस करता है, इसलिए इसमें सुधार की गुंजाइश होनी चाहिए (हालाँकि मैं यह नहीं देखता कि मैं हफ़मैन एन्कोडिंग को कैसे जोड़ूँ या इस तरह का कुछ और सस्ता हो)।
<<Q(या <<_) किसी दिए गए चरित्र तक पढ़ने के लिए उपयोग किया जाता है। लेकिन स्क्रिप्ट का अंत (या अभिव्यक्ति की पृष्ठभूमि) काफी अच्छा है। यह कभी-कभी चेतावनी का कारण बनता है।

पुराना और सरल उपाय, 666 वर्ण:

sed "
s/L/ MWe'veKn each other for so longMYour heart's been aching butMYou're too shy to say itMInside we bothK what's been going onMWeK the game+we'reZplay itM/;
s/T/MI just wanna tellU how I'm feelingMGotta makeU understandR/;
s/R/M ~giveU up~letU down~run around+desertU~makeU cry~say goodbye~tell a lie+hurtU/g;
s/E/(Ooh)~give, neverZgiveM(GV/g;
s/V/iveU up)M/g;
s/U/ you/g;
s/+/ and /g;
s/K/ know/g;
s/~/MNeverZ/g;
s/Z/ gonna /g;
s/M/\n/g
"<<Q
We're no strangers to love
YouK the rules+so do I
A full commitment's what I'm thinking of
You wouldn't get this from any other guyT
LAnd ifU ask me how I'm feeling
Don't tell meU're too blind to seeRRM M(Ooh, gV(Ooh, gVEEL TRR

यह बहुत अच्छा है, लेकिन आपके आउटपुट में रिक्त लाइनों पर एक अतिरिक्त स्थान वर्ण होता है। यह पेस्टबिन से कट-एंड-पेस्ट के साथ एक मुद्दा हो सकता है? इसके अलावा, आप के \0साथ की जगह एक बाइट को बचाने में सक्षम होना चाहिए &
ब्रेडबॉक्स

यह अब तक का सबसे छोटा और मेरा पसंदीदा दोनों है। मैं सोच रहा था कि जब तक कोई किसी सेड सॉल्यूशन के साथ सामने नहीं
आएगा, तब तक

@breadbox, कट और पेस्ट वास्तव में इस स्थान को लाया। मैंने इसे हटा दिया, 4 वर्णों को बचाया। आपके साथ &यह 5.
बदसूरत

2
@res, एक बेहतर स्पष्टीकरण जोड़ा।
ugoren

1
धन्यवाद, "अधिक विस्तृत विवरण" लिंक के लिए जासूसी; ओ))))
Res

72

व्हॉट्सएप - 33115 अक्षर

StackExchange ने मेरे उत्तर को टाल दिया, यहाँ स्रोत है: https://gist.github.com/lucaspiller/85858585

महान नहीं ... मुझे लगता है कि मैं इसे थोड़ा कम करने में सक्षम हो सकता हूं।

(यदि आप नहीं जानते कि व्हाट्सएप क्या है: http://en.wikipedia.org/wiki/Whitespace_(programming_language )


2
मैं अनुमान लगा रहा हूँ कि आपने इसे व्हॉट्सएप में संकलित करने के लिए कुछ टूल का इस्तेमाल किया है?
badcandybag

53
+1 मैंने अब तक CodeGolf पर देखा सबसे लंबा समाधान बनाने के लिए।
बहुपत्नी

6
(+1) मैं इसे 27,493 बाइट्स (या 25,623 बाइट्स तक प्राप्त कर सकता हूं यदि केवल कम-कड़े डब्ल्यूएस दुभाषियों में से एक का उपयोग करके) केवल प्रत्यक्ष चरित्र-दर-वर्ण प्रसंस्करण का उपयोग करके - अनिवार्य रूप से 1,943 "पुश-एंड-आउटपुट" कथन कोई कूदता है, कोई छोरों के साथ, कोई सबरूटीन, पुन: उपयोग के लिए कोई भंडारण / पुनः प्राप्त मूल्यों के साथ - इसलिए लंबाई अभी भी बहुत कम हो सकती है।
रेस

39

जावास्क्रिप्ट, 590 588 बाइट्स

f="WeP nTstrangersZTloMX^Zhe rules[sTdTIqA fuFcommitment'sEhat I'mZhinkQofXEouldn'tJetZhis from anyRguy{Sn}AH ifCask me_Don'tZeFmexPZoTbliHZTsee~~qU,J`)U,Jzz`)S}{~~~q|g`|letCdown|run arouH[desertx|Lcry|sayJoodbye|teFa lie[hurtx} eachRfor sTlongXr hearVachQbutXPZoTshyZTsKInsideEe both^EhaVgoQonqWe^ZheJame[weP]plK|qNeMr]{qI justEannaZellx_Gotta LuHerstaH~z`)U)|giM, neMr]giMq(GCyouq\n`iMCup_ how I'm feelingq^ know]Jonna [ aH Z tXqYouVt's been Uq(OohTo SqqWe'M^R other Qing P'reMveLmakeCKay itqJ gHndFll E wCx ";for(i in g="CEFHJKLMPQRSTUVXZ[]^_`qxz{|}~")e=f.split(g[i]),f=e.join(e.pop())

स्ट्रिंग "मुद्रित" होने के तरीके पर थोड़ा निर्भर करता है।

https://gist.github.com/2864108


1
वास्तव में शानदार।
जिम ब्लैकलर

लूप के लिए अतिरिक्त जी के सदस्यों के रूप में कार्यों के कारण इसे शान्ति में तोड़ सकते हैं। इसे ठीक करने if(g.indexOf(g[i])!=-1)से पहले जोड़ें e=
Tesserex

3
मुझे इस बात पर ज़रा सा भी अंदाज़ा नहीं है कि यह कैसे काम करता है ... क्या हमें कोई स्पष्टीकरण मिल सकता है?
स्पेडवर्ड

1
लूप with(f.split(g[i]))f=join(pop())में उपयोग करने से for..inबाइट
Oki

2
@ संभावना है कि इस कार्यक्रम के साथ js1k js1k.com/2012-love/demo/1189
ओकी

21

C # 879 816 789 वर्ण

कोडगॉल्फ में पहला प्रयास निश्चित रूप से विजेता नहीं है, बहुत यकीन है कि यह नास्तिकता के बावजूद वैध है।

string e="N£give, n£give",f="(Give ! up)",g="(Ooh)",h=@"I just wanna tell ! how I'm feeling
Gotta make ! understand",i="(Ooh, give ! up)",j="N£",k=@"We've known each other for so long
Your heart's been aching but
You're too shy to say it
Inside we both know what's been going on
We know the game and we're gonna play it",l="",a=String.Join("\n"+j,l,"give ! up","let ! down","run around and desert !","make ! cry","say goodbye","tell a lie and hurt !"),b=String.Join("\n",@"We're no strangers to love
You know the rules and so do I
A full commitment's what I'm thinking of
You wouldn't get this from any other guy",h,a,l,k,@"And if ! ask me how I'm feeling
Don't tell me !'re too blind to see",a,a,l,i,i,g,e,f,g,e,f,l,k,l,h,a,a,a).Replace("!","you").Replace("£","ever gonna ");

2
+1 "निश्चित रूप से विजेता नहीं" -> सिर्फ इसलिए कि आप C # का उपयोग करते हैं आप पहले से ही मेरे लिए विजेता हैं। बहुत अच्छी भाषा है! :) BTW: आप समान संकेतों के आसपास के रिक्त स्थान को हटाकर कुछ वर्णों को बचा सकते हैं।
क्रिस्टियन लुपस्कू

3
इसके अलावा: var s1="a";var s2="b";उपयोग करने की कोशिश की तरह कुछ के बजाय string s1="a",s2="b"; यदि आपके पास 2+ घोषणाएं हैं, तो यह छोटा है।
क्रिस्टियन लुपस्कू

आप एक प्रमुख स्थान डालकर !और इसे हर जगह से बाहर ले जाकर बहुत सारे पात्रों को शेव कर सकते हैं ।
स्टैकस्टॉक

17

पायथन, 597 589 बाइट्स

बाइट्स के एक और जोड़े को निचोड़ना संभव हो सकता है:

d="""ellU wTay it
S otherRConna Qmake4 PveMndL aK'reJingHt's beenFo E gC
(OohB
Youz txKL q know9
N28 how I'm feelH
7iM4 up66)B)8giM, n2giM
(G5 you4
I justTannaxU47Gotta PuLerstaL03eMrQ2

We'M9n eachR for sElongzr hearFKchH butzJxoEshyxEsSInsideTe both9ThaFCoH on
We9xheCameqweJQplS1
8g68let4 down8runKrouLqdesert48Pcry8sayCoodbye8tUK lieqhurt40WeJ nEstrangersxEloMz9xhe rulesqsEdEI
A full commitment'sThat I'mxhinkH ofzTouldn'tCetxhis fromKnyRCuy31AL if4Ksk me7Don'txU me4JxoEbliLxEsee00
B,C6)B,C556)1300"""
for s in'UTSRQPMLKJHFECBzxq9876543210':a,b=d.split(s,1);d=b.replace(s,a)
print d

2
(+1) बहुत अच्छा। BTW, मैं 588 बाइट्स के साथ कोई अनुगामी newline पाते हैं।
रेस

17

ब्रेनफक - 9905

++++++++++[>+>+++>++++>+++++++>+++++++++>++++++++++>+++++++++++>++++++
+++++>++++++++++++<<<<<<<<<-]>>>>>---.>+.<<<-.>>>>>++++.<<.<<<<++.>>>>
>.+.<<<<<.>>>>>>+.+.--.<<----.>-.<++++++.--.>>.+.<<<<<<.>>>>>>+.<+.<<<
<<.>>>>>---.+++.>++.<<.<<<<<.>>>>++.>>.>-.<<<<<<.>>>>>----.+++.+.>>-.<
<<<<<<.>>>>>>-.<<+++.---.<<<<.>>>>>>--.+++.<---.<.>>--.<<<<<<.>>>>----
.>++.<+++.<<<<.>>>>>>.<+.<<<<<.>>>>.>.<<<<<.>>+++.<<<.>>>--------.<<.>
>>>++.>>++.<---..<<<<<.>>>>---.>+++.--..<++++++.>>-.<.<----.>+.>.<<<<<
.>>>>>-.<<<<<<.>>>>>>>.<<<+++.-------.>>+.<<<<<<.>>++++++++.<.>>>>-.<<
<<<.>>>>>>.<<+++++++.+.>+.---.<.>+++.<--.<<<<.>>>>>+.<-.<<<<<.>>>>.>>.
>+.<<<<<<.>>>>>>>.<<.>.<---.<--.>++.<<<<.>>>>>-.<<<<<<.>>>>+++.--.>>.<
<<<<<.>>>>>>.<<+++.+.>>-.<<<<<<.>>>>---.>>-.<+.--.<<<<<.>>>>-----.>+.>
>++.<<<<<<<.>>>>>+.>++.<<+++++++.---.>>--.<<<<<<.>>>>++.>>+++.>.<<<<<<
<<.>>>.<<.>>>>>-----.>.--.+.<<<<<<.>>>>>>>--.<<<------.>++++..<.<<<<.>
>>>>>.<<++++.>--..<<<<<.>>>>>>>++.<<+++.>+.<<<<<<.>>>>+++.>.>>--.<<<<<
<<.>>.<.>>>>--.<<<<<.>>>>--.-..>-.<++++.>++.<--.<<<<<.>>>--.>>>+.>-..<
<------.<<<<.>>>>>--.<.>--.<++++.<<<<.>>>>>>>++.<<++++.>+.<<<<<<.>>>>>
>.<-.<-.+.>>---.+.+.<<----.>.<+++.<<<<<..>>>+++++++.>>+.>>++.<<.>>----
.<<<<<<.>>>>++.>+.-..<------.<<<<.>>>>++++++.++.>>++++.<<----.<<<<.>>>
>>>>.<<+.>-.<<<<<<.>>>>>>.<+.<<<<<<.>>>.>>.>>+.<<.>>----.<<<<<<.>>>>++
.>-.-..<------.<<<<.>>>>>--.<++++.>>++.<<<<<<.>>>>>>>.<<+++.>+.<<<<<<.
>>>>-.>.>>--.<<-.<<<<<<.>>>.>>+.>>+.<<.>>----.<<<<<<.>>>>++.>+.-..<---
---.<<<<.>>>>>>.+++.<.<<<<<.>>>>.>>---.<+.>+++.<-.<+++.<<<<.>>>>---.>.
<+++.<<<<.>>>>.+.>>--.<<.>>-.++.<<<<<<.>>>>>>>++.<<+.>+.<<<<<<<.>>>.>>
.>>+.<<.>>----.<<<<<<.>>>>++.>.-..<------.<<<<.>>>>>-.<.>--.<++++.<<<<
.>>>>>>>.<<++++.>+++.<<<<<<.>>>>--.>>---.>.<<<<<<<<.>>>.>>++.>>++++.<<
.>>----.<<<<<<.>>>>++.>.-..<------.<<<<.>>>>>>+.<<.>>>.<<<<<<<.>>>>+++
+++.>+..<---.--.>>>.<<<+++.<<<<<.>>>.>>.>>+++.<<.>>----.<<<<<<.>>>>++.
>.-..<------.<<<<.>>>>>>++.<<++++.>--..<<<<<.>>>>----.<<<<.>>>>>.<++++
++++.----.<<<<.>>>>----.>++.<+++.<<<<.>>>>++++.>>+.---.++.<<<<<<.>>>>>
>>.<<+.>+.<<<<<<<..>>>>--.>---.<<<.>>>>>+.<<.<<<<.>>>>>----.+++.+.>>--
.<<-.<<<<<.>>>>.----.++.+++++.<<<<.>>>>>+.>--.<<.---.>>--.<<<<<<.>>>>+
.>.>.<<<<<<.>>>>>>+.<.<<<<<.>>>>>---.+++.-.<+.<<<<<.>>>>++.>>+.>++.---
.<<<<<<.>>>>+.---.----.>>.++.<<<<<.>>>>>-.<<<<<<.>>>>+.+++..>-.<<<<<.>
>>>----.++.+++++.+.>.<--.<<<<.>>>>-----.>>++.-.<<<<<<<.>>>>.>>+.>+.<<<
<<.>>>>>---.<<+++.<<<<.>>>>>>++.<..<<<<<.>>>>>>-.<<+++.>>>++.<<<<<<<.>
>>>>>+.<.<<<<<.>>>>>>-.<<-------.>>>.<<<<<<<.>>>>++++++++.>>+.<<<<<<<.
>>>-----.>>>-.>-.<<.-----.+.<<<<.>>>>>>>--.<<<.<<<<.>>>>---.>+.>+.<<++
++++.<<<<.>>>>>----.+++.+.>>.<<<<<<<.>>>>>>>.<<<.-------.>>.<<<<<.>>>>
>-.<<<<<<.>>>>+.+++..>-.<<<<<.>>>>++.>+.<++.>-.<--.<<<<.>>>>>+.-.<<<<<
<.>>>>--.>--.<<<<.>>>>>---.+++.+.>>.<<<<<<<.>>>>>>+.<<+++.---.<<<<.>>>
>++.------.>--.<++++.<<<<.>>>>----.>+.<+++.<<<<.>>>>>>>.<<<+.<<<.>>>>>
--.<<.<<<<.>>>>++.>+.-..<------.<<<<.>>>>>++.----.<.>>>++.<<<<<<<.>>>>
++++++++.>>++.<<<<<<<.>>>--------.>>>++.<-----.<<<<.>>>>+++++.---.<<<<
.>>>>>>>.<<+.>+.<<<<<<.>>>>-----.>>--.<----.<<<<<.>>>>>++.<++++.<<<<.>
>>>+++.>++.>>--.<<<<<<<.>>++++++++.<.>>>>--.<<<<<.>>>>--.-..>-.<++++.>
++.<--.<<<<<.>>>-----.>>>+.-.<<<<.>>>>>+.<<<<<<.>>>>>>.<<--.>--..<<<<<
.>>>>>+.<.<<<<.>>>>>>>++.<<++.>+.<<<<<.>>>>>---.<<.<<<<.>>>>>>++.<..<<
<<<.>>>>---.>---.<+++++++.>++.<-----.<<<<.>>>>>>.<+.<<<<<.>>>>>>-.<<+.
.<<<<<..>>>++++++++++.>>.>>+++.<<.>>----.<<<<<<.>>>>++.>.-..<------.<<
<<.>>>>++++++.++.>>++++.<<----.<<<<.>>>>>>>.<<+.>-.<<<<<<.>>>>>>.<+.<<
<<<<.>>>.>>.>>+.<<.>>----.<<<<<<.>>>>++.>-.-..<------.<<<<.>>>>>--.<++
++.>>++.<<<<<<.>>>>>>>.<<+++.>+.<<<<<<.>>>>-.>.>>--.<<-.<<<<<<.>>>.>>+
.>>+.<<.>>----.<<<<<<.>>>>++.>+.-..<------.<<<<.>>>>>>.+++.<.<<<<<.>>>
>.>>---.<+.>+++.<-.<+++.<<<<.>>>>---.>.<+++.<<<<.>>>>.+.>>--.<<.>>-.++
.<<<<<<.>>>>>>>++.<<+.>+.<<<<<<<.>>>.>>.>>+.<<.>>----.<<<<<<.>>>>++.>.
-..<------.<<<<.>>>>>-.<.>--.<++++.<<<<.>>>>>>>.<<++++.>+++.<<<<<<.>>>
>--.>>---.>.<<<<<<<<.>>>.>>++.>>++++.<<.>>----.<<<<<<.>>>>++.>.-..<---
---.<<<<.>>>>>>+.<<.>>>.<<<<<<<.>>>>++++++.>+..<---.--.>>>.<<<+++.<<<<
<.>>>.>>.>>+++.<<.>>----.<<<<<<.>>>>++.>.-..<------.<<<<.>>>>>>++.<<++
++.>--..<<<<<.>>>>----.<<<<.>>>>>.<++++++++.----.<<<<.>>>>----.>++.<++
+.<<<<.>>>>++++.>>+.---.++.<<<<<<.>>>>>>>.<<+.>+.<<<<<<<..>>>.>>---.>>
+.<<.>>----.<<<<<<.>>>>++.>.-..<------.<<<<.>>>>++++++.++.>>++++.<<---
-.<<<<.>>>>>>>.<<+.>-.<<<<<<.>>>>>>.<+.<<<<<<.>>>.>>.>>+.<<.>>----.<<<
<<<.>>>>++.>-.-..<------.<<<<.>>>>>--.<++++.>>++.<<<<<<.>>>>>>>.<<+++.
>+.<<<<<<.>>>>-.>.>>--.<<-.<<<<<<.>>>.>>+.>>+.<<.>>----.<<<<<<.>>>>++.
>+.-..<------.<<<<.>>>>>>.+++.<.<<<<<.>>>>.>>---.<+.>+++.<-.<+++.<<<<.
>>>>---.>.<+++.<<<<.>>>>.+.>>--.<<.>>-.++.<<<<<<.>>>>>>>++.<<+.>+.<<<<
<<<.>>>.>>.>>+.<<.>>----.<<<<<<.>>>>++.>.-..<------.<<<<.>>>>>-.<.>--.
<++++.<<<<.>>>>>>>.<<++++.>+++.<<<<<<.>>>>--.>>---.>.<<<<<<<<.>>>.>>++
.>>++++.<<.>>----.<<<<<<.>>>>++.>.-..<------.<<<<.>>>>>>+.<<.>>>.<<<<<
<<.>>>>++++++.>+..<---.--.>>>.<<<+++.<<<<<.>>>.>>.>>+++.<<.>>----.<<<<
<<.>>>>++.>.-..<------.<<<<.>>>>>>++.<<++++.>--..<<<<<.>>>>----.<<<<.>
>>>>.<++++++++.----.<<<<.>>>>----.>++.<+++.<<<<.>>>>++++.>>+.---.++.<<
<<<<.>>>>>>>.<<+.>+.<<<<<<<..>>+.>+.>>>.<.<<<++++.<.>>>>-.++.>>+.<<---
-.<<<<.>>>>>>>.<<.>-.<<<<<<.>>>>>>.<+.<<<<---.<<.>>-.>.>>>-.<+++.<<<++
++.<.>>>>-.++.>>+.<<----.<<<<.>>>>>>>.<<.>-.<<<<<<.>>>>>>.<+.<<<<---.<
<.>>-.>.>>>-.<+++.<<<+.<<.>>>-.>>---.>>+.<<.>>----.<<<<<<.>>>>++.>.-..
<------.<<<<.>>>>++++++.++.>>++++.<<----.<<<+++.<.>>>>>.<.>>.<<.>>----
.<<<<<<.>>>>++.>+.-..<------.<<<<.>>>>++++++.++.>>++++.<<----.<<<<<.>>
----.>-------.>>++++.>>.<<----.<<<<.>>>>>>>.<<+.>-.<<<<<<.>>>>>>.<+.<<
<<+.<<.>>-.>++++++++.>>>-.<+++.<<<+.<<.>>>-.>>---.>>+.<<.>>----.<<<<<<
.>>>>++.>.-..<------.<<<<.>>>>++++++.++.>>++++.<<----.<<<+++.<.>>>>>.<
.>>.<<.>>----.<<<<<<.>>>>++.>+.-..<------.<<<<.>>>>++++++.++.>>++++.<<
----.<<<<<.>>----.>-------.>>++++.>>.<<----.<<<<.>>>>>>>.<<+.>-.<<<<<<
.>>>>>>.<+.<<<<+.<<..>>>>.>.<<<--.>>>>>+.<<.<<<<.>>>>>-----.+++.+.>>--
.<<<<<<<.>>>>.----.++.+++++.<<<<.>>>>>.>--.<<.---.>>--.<<<<<<.>>>>+.>.
>.<<<<<<.>>>>>>+.<.<<<<<.>>>>>---.+++.-.<+.<<<<<.>>>>++.>>+.>++.---.<<
<<<<.>>>>+.---.----.>>.++.<<<<<.>>>>>-.<<<<<<.>>>>+.+++..>-.<<<<<.>>>>
----.++.+++++.+.>.<--.<<<<.>>>>-----.>>++.-.<<<<<<<.>>>>.>>+.>+.<<<<<.
>>>>>---.<<+++.<<<<.>>>>>>++.<..<<<<<.>>>>>>-.<<+++.>>>++.<<<<<<<.>>>>
>>+.<.<<<<<.>>>>>>-.<<-------.>>>.<<<<<<<.>>>>++++++++.>>+.<<<<<<<.>>>
++.>>>-.>-.<<.-----.+.<<<<.>>>>>>>--.<<<.<<<<.>>>>---.>+.>+.<<++++++.<
<<<.>>>>>----.+++.+.>>.<<<<<<<.>>>>>>>.<<<.-------.>>.<<<<<.>>>>>-.<<<
<<<.>>>>+.+++..>-.<<<<<.>>>>++.>+.<++.>-.<--.<<<<.>>>>>+.-.<<<<<<.>>>>
--.>--.<<<<.>>>>>---.+++.+.>>.<<<<<<<.>>>>>>+.<<+++.---.<<<<.>>>>++.--
----.>--.<++++.<<<<.>>>>----.>+.<+++.<<<<.>>>>>>>.<<<+.<<<.>>>>>--.<<.
<<<<.>>>>++.>+.-..<------.<<<<.>>>>>++.----.<.>>>++.<<<<<<<.>>>>++++++
++.>>++.<<<<<<<..>>>.<<.>>>>>--.>+.--.+.<<<<<<.>>>>>>>--.<<<--------.>
++++..<.<<<<.>>>>>>.<<++++.>--..<<<<<.>>>>>>>++.<<+++.>+.<<<<<<.>>>>++
+.>.>>--.<<<<<<<.>>.<.>>>>--.<<<<<.>>>>--.-..>-.<++++.>++.<--.<<<<<.>>
>--.>>>+.>-..<<------.<<<<.>>>>>--.<.>--.<++++.<<<<.>>>>>>>++.<<++++.>
+.<<<<<<.>>>>>>.<-.<-.+.>>---.+.+.<<----.>.<+++.<<<<<..>>>+++++++.>>+.
>>++.<<.>>----.<<<<<<.>>>>++.>+.-..<------.<<<<.>>>>++++++.++.>>++++.<
<----.<<<<.>>>>>>>.<<+.>-.<<<<<<.>>>>>>.<+.<<<<<<.>>>.>>.>>+.<<.>>----
.<<<<<<.>>>>++.>-.-..<------.<<<<.>>>>>--.<++++.>>++.<<<<<<.>>>>>>>.<<
+++.>+.<<<<<<.>>>>-.>.>>--.<<-.<<<<<<.>>>.>>+.>>+.<<.>>----.<<<<<<.>>>
>++.>+.-..<------.<<<<.>>>>>>.+++.<.<<<<<.>>>>.>>---.<+.>+++.<-.<+++.<
<<<.>>>>---.>.<+++.<<<<.>>>>.+.>>--.<<.>>-.++.<<<<<<.>>>>>>>++.<<+.>+.
<<<<<<<.>>>.>>.>>+.<<.>>----.<<<<<<.>>>>++.>.-..<------.<<<<.>>>>>-.<.
>--.<++++.<<<<.>>>>>>>.<<++++.>+++.<<<<<<.>>>>--.>>---.>.<<<<<<<<.>>>.
>>++.>>++++.<<.>>----.<<<<<<.>>>>++.>.-..<------.<<<<.>>>>>>+.<<.>>>.<
<<<<<<.>>>>++++++.>+..<---.--.>>>.<<<+++.<<<<<.>>>.>>.>>+++.<<.>>----.
<<<<<<.>>>>++.>.-..<------.<<<<.>>>>>>++.<<++++.>--..<<<<<.>>>>----.<<
<<.>>>>>.<++++++++.----.<<<<.>>>>----.>++.<+++.<<<<.>>>>++++.>>+.---.+
+.<<<<<<.>>>>>>>.<<+.>+.<<<<<<<..>>>.>>---.>>+.<<.>>----.<<<<<<.>>>>++
.>.-..<------.<<<<.>>>>++++++.++.>>++++.<<----.<<<<.>>>>>>>.<<+.>-.<<<
<<<.>>>>>>.<+.<<<<<<.>>>.>>.>>+.<<.>>----.<<<<<<.>>>>++.>-.-..<------.
<<<<.>>>>>--.<++++.>>++.<<<<<<.>>>>>>>.<<+++.>+.<<<<<<.>>>>-.>.>>--.<<
-.<<<<<<.>>>.>>+.>>+.<<.>>----.<<<<<<.>>>>++.>+.-..<------.<<<<.>>>>>>
.+++.<.<<<<<.>>>>.>>---.<+.>+++.<-.<+++.<<<<.>>>>---.>.<+++.<<<<.>>>>.
+.>>--.<<.>>-.++.<<<<<<.>>>>>>>++.<<+.>+.<<<<<<<.>>>.>>.>>+.<<.>>----.
<<<<<<.>>>>++.>.-..<------.<<<<.>>>>>-.<.>--.<++++.<<<<.>>>>>>>.<<++++
.>+++.<<<<<<.>>>>--.>>---.>.<<<<<<<<.>>>.>>++.>>++++.<<.>>----.<<<<<<.
>>>>++.>.-..<------.<<<<.>>>>>>+.<<.>>>.<<<<<<<.>>>>++++++.>+..<---.--
.>>>.<<<+++.<<<<<.>>>.>>.>>+++.<<.>>----.<<<<<<.>>>>++.>.-..<------.<<
<<.>>>>>>++.<<++++.>--..<<<<<.>>>>----.<<<<.>>>>>.<++++++++.----.<<<<.
>>>>----.>++.<+++.<<<<.>>>>++++.>>+.---.++.<<<<<<.>>>>>>>.<<+.>+.<<<<<
<<..>>>.>>---.>>+.<<.>>----.<<<<<<.>>>>++.>.-..<------.<<<<.>>>>++++++
.++.>>++++.<<----.<<<<.>>>>>>>.<<+.>-.<<<<<<.>>>>>>.<+.<<<<<<.>>>.>>.>
>+.<<.>>----.<<<<<<.>>>>++.>-.-..<------.<<<<.>>>>>--.<++++.>>++.<<<<<
<.>>>>>>>.<<+++.>+.<<<<<<.>>>>-.>.>>--.<<-.<<<<<<.>>>.>>+.>>+.<<.>>---
-.<<<<<<.>>>>++.>+.-..<------.<<<<.>>>>>>.+++.<.<<<<<.>>>>.>>---.<+.>+
++.<-.<+++.<<<<.>>>>---.>.<+++.<<<<.>>>>.+.>>--.<<.>>-.++.<<<<<<.>>>>>
>>++.<<+.>+.<<<<<<<.>>>.>>.>>+.<<.>>----.<<<<<<.>>>>++.>.-..<------.<<
<<.>>>>>-.<.>--.<++++.<<<<.>>>>>>>.<<++++.>+++.<<<<<<.>>>>--.>>---.>.<
<<<<<<<.>>>.>>++.>>++++.<<.>>----.<<<<<<.>>>>++.>.-..<------.<<<<.>>>>
>>+.<<.>>>.<<<<<<<.>>>>++++++.>+..<---.--.>>>.<<<+++.<<<<<.>>>.>>.>>++
+.<<.>>----.<<<<<<.>>>>++.>.-..<------.<<<<.>>>>>>++.<<++++.>--..<<<<<
.>>>>----.<<<<.>>>>>.<++++++++.----.<<<<.>>>>----.>++.<+++.<<<<.>>>>++
++.>>+.---.++.<<<<<<.>>>>>>>.<<+.>+.

मुझे यकीन है कि मैं इसे ट्यूनिंग करके थोड़ा बेहतर कर सकता हूं, लेकिन अभी के लिए यह बहुत अच्छा है। यह मानते हुए कि आपको मूल पाठ की तुलना में बहुत बड़ा होने में कोई समस्या नहीं है।


मुझे लगता है कि आप इसके बजाय यूनरी का उपयोग करके थोड़ा सा गोल्फ कर सकते हैं।
रोमन ग्रफ

यह golfable लगता है ...
MilkyWay90

16

स्काला, 613 बाइट्स

print(("""We'r%e %n&o &strangers9 t&9lo#ve#4
You47 know7 [th[%rules0 aZndZ 0s&d&I
A full commitment's what1 I'm 1[ink=ing= of4 wouldn't get [is from any! o[er !guy>
I just wanna <tell<]- ]you-3 how1feel=
3Gotta _make]_uZerstaZ@>
.
Ne#r$./$ gonna /g2i#]up2$let]down$run arouZ0desert-$_cry$say goodbye$< a lie0hurt-@?

We'#7n each!for s&long4r hear;t's been ;ach= but4:'r%to&:shy9say8 it
8Insid%w%bo[7 wha;going on
We7 [%game0we're/play8?AZ if]ask me3Don't < me-:bliZ9see@@

5(Ooh, g2)
556(Ooh)$gi#, ne#r/gi#^
6(G2)^^?>@@
"""/:("!#$%&Z[]^_"++('-'to'@'))){(x,c)=>val y=x.split(c);y(0)+y(1)+y.drop(2).mkString(y(1))}

यह एक पाठ विघटन एल्गोरिथ्म है, जो कि उस नियम को लागू करता है ~stuff~ blah ~ ~जिसे परिवर्तित किया जाना चाहिए stuff blah stuff stuff(यानी पहली बार जब आप किसी अपरिचित प्रतीक जोड़ी को देखते हैं, तो यह कॉपी करने के लिए परिसीमन करता है। इसके बाद, जब आप इसे देखते हैं तो आप मूल्य में भर जाते हैं)।

नोट: अंत में एक अतिरिक्त गाड़ी वापसी हो सकती है, यह इस बात पर निर्भर करता है कि आप कैसे गिनती करते हैं। यदि यह स्वीकार्य नहीं है, तो आप split(" ",-1)615 बाइट्स के लिए पिछले एक को छोड़ सकते हैं (एक वर्ण को बचाते हुए) और (3 वर्णों को खर्च करते हुए) में विभाजन को बदल सकते हैं ।


बहुत अच्छा। संपीड़न मेरे समाधान से थोड़ा बेहतर है - Nलंबाई की पुनरावृत्ति के लिए L, आप L+N+1चार्ट का उपयोग करते हैं, जबकि मैं उपयोग करता हूं L+N+2। लेकिन अपने विसंपीड़न कोड, 102 वर्ण है, जबकि मेरा 40. है
ugoren

@ यूगोरेन - वास्तव में; स्काला उस संबंध में बहुत अधिक क्रियात्मक है, और बनाने के लिए 62 उत्पादक विकल्प नहीं हैं। फिर भी, मुझे लगा कि यह एक दिलचस्प दृष्टिकोण था (जैसा कि आपका था)।
रेक्स केर

दिलचस्प है, लेकिन REPL में मेरे लिए काम नहीं करता है। अंत में एक और गोल समापन parens की आवश्यकता है; लेकिन फिर यह काम करता है।
उपयोगकर्ता अज्ञात

14

589, सी (केवल लाइब्रेरी फंक्शन पुचर है)

c,k;main(n){char*s="&-P;nDstrKgQsLlove>@rules<sDdD-i7Rfull commitUnMVtASTkEof> wWldNget Sis from Ky?guy10-XifYask U6doNF U5OblTdLseeG//G442201//&383letYdown3run arWnd<desQt53Bcry3sZ[odbye3F Rlie<hurt5G&7P've:n each?for sDlong>r hear=achEbut>OshyLsH7Tside P boS: V=[Eon7P@gaU<P;CplHG&7i just wKnRF56[ttRBundQstKdG/&J)3I, 9IG(-8)G&79&J, 8)G& yW& howAfeelTg7&G-&IYup&nevQ C& know&'re & X&Mbeen &7yW& oSQ &: Se & -i'm &makeY&[nnR&o &Tg &tell&\n&Zit&give&(-ooh&an& tD&t's &n't &;toD&we&er&a &th&in&me&wha&ou&Kd &5 &ay &go";for(k|=32*!n;c=*s++;c-38?n?0:c-45>48U?k=!putchar(c-k):main(c-45):n--);}
  • प्रतिस्थापन नियमों की तालिका जहां श्रेणी में वर्ण -.._ (45..90) निर्दिष्ट करते हैं कि किस नियम को लागू करना है, इस प्रकार कुछ 48 नियम (कोड में 45, सी -45> U48), अन्य वर्ण मुद्रित किए जाने हैं

  • नियमों को 'और' वर्ण द्वारा सीमांकित किया जाता है (कोड में 38, n शून्य तक घटाया जाता है और इस प्रकार सही नियम को इंगित करता है)

  • नियम 0 इंगित करता है कि अगले वर्ण को कैपिटल किया जाना चाहिए (कोड में k = 32 सेट करके), यह नियमों के लिए वर्णों की एक बड़ी निरंतर श्रेणी को जोड़ने के लिए अधिक स्थान मुक्त करता है

  • मुख्य (..) को 1 के साथ कहा जाता है (शून्य तर्क सी कार्यक्रम के अनुसार), और इस तरह नियम 1 मूल नियम है

कोड का विकास

  • बदसूरत सुझाव के लिए धन्यवाद एक और 9 बाइट्स मुंडा

  • एक और 36 बाइट्स को हाथ से करने के बजाय एल्गोरिथम बनाकर और "" "टिप के जरिए शेव किया

  • एक और 15 बाइट्स को चार * तालिका से बदल कर एक सिंगल स्ट्रिंग में बदल दिया, जहाँ 'और' अंशों का परिसीमन होता है

  • एक और 19 बाइट्स का मुंडन बदसूरत से अधिक युक्तियों के लिए धन्यवाद

  • अधिक नियमों को जोड़कर 31 बाइट्स मुंडाए, विशेष नियम बनाकर पूंजीकरण किया, इस प्रकार नियम अनुक्रमितों के लिए अधिक स्थान की अनुमति दी।

  • मुंहतोड़ जवाब देने के लिए 10 बाइट्स मुंहतोड़ जवाब देते हैं, और तत्काल नियमों को थोड़ा और मोड़ने के लिए


1
*p>>4^3?putchar(*p):e(r[*p-48])
बदसूरत

आह! धन्यवाद, अब कोड में शामिल है।
बेबी-खरगोश

इसके अलावा, "\'"अनुवाद की जरूरत नहीं है। "We're"एक वैध स्ट्रिंग है। ingएक बेहतर उम्मीदवार है।
6

अच्छा बदलाव। कई मानक गोल्फिंग ट्रिक लागू किए जा सकते हैं: d(int n)-> d(n)। बदले *s=='~'के लिए *s-'~' and reverse the ? , also saving parenthesis around ! N ..: 0 . Using 126 instead of '~' `बेकार है, लेकिन क्यों ~?
ugoren

इसके अलावा, आपको दो कार्यों की आवश्यकता नहीं है - mainपुनरावर्ती बनाएं । प्रारंभिक कॉल है main(1)के बजाय d(0), लेकिन यह (शायद एक प्रमुख से निपटा जा सकता ~में s)। इसके अलावा, ~टैब का सबसे अच्छा विकल्प (ascii 9 - एकल अंक) है।
ugoren

14

पर्ल, 724 714 883 बाइट्स

तो लैटिन -1 प्रकार के उपयोग से दंडित नियमों के परिवर्तन ने मेरे समाधान को मार दिया। यह एक अलग पर्याप्त दृष्टिकोण है जिसे मैं सिर्फ इसे हटाने के लिए नफरत करता हूं, हालांकि, यहां एक प्रतिबंधित संस्करण है जो केवल 7-बिट एएससीआईआई का उपयोग करता है, नए नियमों के अनुसार, आकार में भारी वृद्धि पर।

sub d{($d=$d{$_})?d(@$d):print for@_}sub r{%d=map{chr,($d=pop)&&[$d,pop]}0..96,113..127;&d}r"We^P nEstraKersPElo~^_-SP< 5lesMsEdEI
A3ull commitment's#hat I'mPhink9 of^_#}ldn't^?/Phis3romVny %<r^?uy
I just#azP6UhS I'm3eH9
G%ta +JTerstaT^HX5^D    1^@^U^F^CXt^E^Y^X

We'~-; each %<r3or sEloK^_r <aL's=ee8ch9=ut^_^PPoEshyPE& it
Insi.#e=%h-S#hat's=een|9 on
We-SP<^?am7we^Px pl? it
ARif]Vsk me hS I'm3eH9
Don'tP6 me]^PPoEb*RtE1e^HX5^D   1^@^U^F^CXt^E^Y^X^HX5^D 1^@^U^F^CXt^E^Y^X

(Ooh,FB)
(Ooh,FB)
(Ooh)4, n^F
(GQB)
(Ooh)4, n^F
(GQB)

We'~-; each %<r3or sEloK^_r <aL's=ee8ch9=ut^_^PPoEshyPE& it
Insi.#e=%h-S#hat's=een|9 on
We-SP<^?am7we^Px pl? it

I just#azP6UhS I'm3eH9
G%ta +JTerstaT^HX5^D    1^@^U^F^CXt^E^Y^X^HX5^D 1^@^U^F^CXt^E^Y^X^HX5^D 1^@^U^F^CXt^E^Y^X
g evuoo^?nna{0z|000000xry q~_e}`0^N[
0 Z0a  ]dnwo T~it 00RVtrgnuU0le0Q^? o0]LpJ00yaamb ehnSekKiVnMelHurFZf k es0teedn20:>il000?sto0w 0}Y0!
+XXy}rB4Cu7*^ZhdUr'|&bdMT^[
U^^e^V^QC^W/X^R;^N^Ll0.^S^K^MV6^To ^G^\8ey^]r^Bc^A^O"=~/./gs

बेशक नियंत्रण वर्ण अभी भी यहां पर हैं, इसलिए आप अभी भी बेस 64-एन्कोडिंग का उपयोग करना चाहेंगे:

c3ViIGR7KCRkPSRkeyRffSk/ZChAJGQpOnByaW50IGZvckBffXN1YiByeyVkPW1hcHtjaHIsKCRk
PXBvcCkmJlskZCxwb3BdfTAuLjk2LDExMy4uMTI3OyZkfXIiV2UQIG5Fc3RyYUtlcnNQRWxvfh8t
U1A8IDVsZXNNc0VkRUkKQTN1bGwgY29tbWl0bWVudCdzI2hhdCBJJ21QaGluazkgb2YfI31sZG4n
dH8vUGhpczNyb21WbnkgJTxyf3V5CkkganVzdCNhelA2VWhTIEknbTNlSDkKRyV0YSArSlRlcnN0
YVQIWDUECTEAFQYDWHQFGRgKCldlJ34tOyBlYWNoICU8cjNvciBzRWxvSx9yIDxhTCdzPWVlOGNo
OT11dB8QUG9Fc2h5UEUmIGl0Ckluc2kuI2U9JWgtUyNoYXQncz1lZW58OSBvbgpXZS1TUDx/YW03
d2UQeCBwbD8gaXQKQVJpZl1Wc2sgbWUgaFMgSSdtM2VIOQpEb24ndFA2IG1lXRBQb0ViKlJ0RTFl
CFg1BAkxABUGA1h0BRkYCFg1BAkxABUGA1h0BRkYCgooT29oLEZCKQooT29oLEZCKQooT29oKTQs
IG5eRgooR1FCKQooT29oKTQsIG5eRgooR1FCKQoKV2Unfi07IGVhY2ggJTxyM29yIHNFbG9LH3Ig
PGFMJ3M9ZWU4Y2g5PXV0HxBQb0VzaHlQRSYgaXQKSW5zaS4jZT0laC1TI2hhdCdzPWVlbnw5IG9u
CldlLVNQPH9hbTd3ZRB4IHBsPyBpdAoKSSBqdXN0I2F6UDZVaFMgSSdtM2VIOQpHJXRhICtKVGVy
c3RhVAhYNQQJMQAVBgNYdAUZGAhYNQQJMQAVBgNYdAUZGAhYNQQJMQAVBgNYdAUZGApnIGV2dW9v
f25uYXswenwwMDAwMDB4cnkgcX5fZX1gMF5OWwowIFowYSAgXWRud28gVH5pdCAwMFJWdHJnbnVV
MGxlMFF/IG8wXUxwSjAweWFhbWIgZWhuU2VrS2lWbk1lbEh1ckZaZiBrIGVzMHRlZWRuMjA6Pmls
MDAwP3N0bzB3IDB9WTAhCitYWHl9ckI0Q3U3KhpoZFVyJ3wmYmRNVBsKVR5lFhFDFy9YEjsODGww
LhMLDVY2FG8gBxw4ZXkdcgJjAQ8iPX4vLi9ncw==

क्योंकि मुझे लगता है कि यह अभी भी DQ'd होने के बावजूद दिखाई देना चाहिए, यहाँ मूल समाधान है:

sub d{($d=$d{$_})?d(@$d):print for@_}sub r{%d=map{chr,[pop,pop]}45..63,122..255;&d}r" ¯:ç5raâ08/þ; Ölesì|dçI
AÌull comm°6ntŒ3èhink1fÍýldn'tÿÙèhisÌromðny4ÿuy ju5Íaú=î9GÐ Ëäï0ï
'þœn ea}4Ìo|/â-aêÔ}ÜÚut.shy8ÎnsiÞÍeÚÐhœ3nü1n;ÿamÓwe¯ù plá
Aíifôðsk 6 9Don't= 6ô.bÕítçÏe
,ã2,ã2)Û,:õã¶Gé2)Û,:õã¶Gé
'þœ ea}4Ìo|/â-aêÔ}ÜÚut.shy8ÎnsiÞÍeÚÐhœ3nü1n;ÿamÓwe¯ù plá
 ju5Íaú=î9GÐ Ëäï0ï
g evuooÿnnaûúürþýyøeùö÷ N
õó òa dn ô ïíðwotrþit  oleôêuîéÿgnyalæpäedkaâiãòb teënØkurilðnìeeheÝtoesásw f ÑmÖñY
r'bdhÓÏÞÕ tñìïñåîÙëdÎñ× s'oüyrÁÅeyÄð(

åÞŸºrÔlñtieÈàŽý²Æ·Â­¬®Ë¹À±šßÊnuª¥Çcîµ€£©eW³¡«»¢ýÉŠ¿§ÛoOI
° I )ßee¶ rhm'Úat 
oèÜæçŒrÒÐtaÒèëo hcçseÌ
hz{àèreœn >?çèhÍemts 7~Üs<ol¯Ò"=~/./gs

स्क्रिप्ट का बेस 64-एन्कोडिंग:

c3ViIGR7KCRkPSRkeyRffSk/ZChAJGQpOnByaW50IGZvckBffXN1YiByeyVkPW1hcHtjaHIsW3Bv
cCxwb3BdfTQ1Li42MywxMjIuLjI1NTsmZH1yIqCvOuc1cmHiMDgv/ps7INZsZXPsfGTnSQpBzHVs
bCBjb21tsDZudLwzjOhoaW5rMWabzf1sZG4ndP/Z6Ghpc8xyb23wbnk0/3V5lSBqdTXNYfo97jlH
0Iogy+TvMIrvCpeJJ/69biBlYX00zG+PfC/imy1h6oXUfdzadXSbLnNoeTjOlJVuc2nezWXa0Gi9
M4Vu/DFuiTv/YW3Td2Wv+SBwbOGUCkHtaWb08HNrIDYgOURvbid0PSA29C5i1e10589lCn+OLOMy
LOMyKdssOvXjtkfpMinbLDr147ZH6ZIKiSf+vSBlYX00zG+PfC/imy1h6oXUfdzadXSbLnNoeTjO
lJVuc2nezWXa0Gi9M4Vu/DFuiTv/YW3Td2Wv+SBwbOGUCpUganU1zWH6Pe45R9CKIMvk7zCK7wp/
l2cgZXZ1b2//bm5h+/r8cv79efhl+fb3IE4K9fMg8mEgZG4g9CDv7fB3b3Ry/ml0ICBvbGX06nXu
6f9nbnlhbOZw5GVka2HiaePyYiB0Zetu2Gt1cmls8G7sZWVoZd10b2Vz4XN3IGYg0W3W8VkKcidi
ZGjTz97VIHTx7O/x5e7Z62TO8dcgcydv/HlywcVlecTwKAoK5cO4vrpy1GzxdGllyOC0/bLGt8Kt
rK7LucCxqN/KbnWqpcdj7rWko6llV7Ohn6u7nqKd/cmmv5yap9uZmG9PSQqwIEkgKd9lZZa2IHJo
kG0njZOR2mF0oApv6Nzm54iLvHLShNB0YdLojOuXl28gaGPnc2XMCoeAaHp74OhyZYG9biA+P+fo
aM1lbXRzgyCCN46SftxzPG9shq/SjyI9fi8uL2dz

1
@ w0lf यह 724 बाइट्स है, जो 644 UTF-8 वर्णों में अनुवाद करता है। मुझे यकीन नहीं है कि कौन सा वास्तव में मायने रखता है।
बहुपद

1
@Polynomial मैं या तो नहीं जानता, लेकिन उम्मीद है कि कोई हमें जानता है और हमें बताएगा।
क्रिस्टियन लुपस्कू

5
इस मामले में मुझे लगता है कि यह बाइट्स होना चाहिए, क्योंकि यह स्ट्रिंग है। (यदि यह पूरी तरह से वैध UTF-8 अनुक्रमों से बना है तो यह पूरी तरह संयोग है।)
ब्रेडबॉक्स

11
यह औसत पर्ल स्क्रिप्ट की तुलना में अधिक पठनीय लगता है!
अगोस

2
(आप जानते हैं, अगर एपीएल को चरित्रों के बजाय बाइट्स गिनने में बाधा होती तो मैं शिकायत नहीं करता ....)
ब्रेडबॉक्स

11

पायथन 781 731 605 579 चार्ट

जब मैंने पहली बार इसे देखा था, तब से बहुत अधिक और बहुत बेहतर उत्तर हैं, लेकिन मैंने अपनी अजगर स्क्रिप्ट पर बहुत समय बर्बाद किया है इसलिए मैं इसे किसी भी तरह से पोस्ट करने जा रहा हूं, इसे और छोटा करने के लिए सुझावों को देखना भयानक होगा,

संपादित करें: एड एच के सुझावों के लिए धन्यवाद 2 चार्ट कटा हुआ, आगे जाने के लिए मुझे बहुत सी चीज़ों का पुनर्गठन करना पड़ सकता है जो कि कुछ समय लेने वाला है

s="e |nd|-We| a|-(Ooh|N| what|ive| go|ay it-|I|er|G|o |make5 |D| th| othH |A| tF|ing |nna |tell|'s been|'rS|-You|-N4| know|L5 up|PR | you|evHK>| how I'm feeling-|O, g7)|O)9gL, n4gL-(G7)|-I just wa>=53Gotta EuRHstaR-.|Q've8n eachBfor sFlong:r heart<Pch?but:;toFshy@sJInsidSwSboth8M<K?onQ8CSgame6we;go>plJ|9g79let5 down9runProuR6desHt59Ecry9sayKodbye9=P lie6hurt5-|\n|Q;nFstrangHs@love:8CSrules6sFdFI-A full commitment'sM I'mCink?of: wouldn't getCis fromPnyBguy0/AR if5Psk me3Don't = me5;toFbliR@see-..2211-/0..";i=83
exec"x,s=s.split('|',1);s=s.replace(chr(i),x);i-=1"*39
print s

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

इसलिए, मैंने अपने एल्गोरिथ्म को केवल 'वर्णों को कम' करने पर अंतिम रैंकिंग करने के बजाय थोड़ा कम लालची बना दिया, 'वर्णों की कमी', 'पैटर्न की लंबाई' और 'पैटर्न के मायने' के आधार पर रैंकिंग की।

पैटर्न की लंबाई = लंबाई की गिनती = गिनती

rank = [(length-1)*count - length - 2] + lengthWeight * length + countWeight * count

फिर मैंने अपने गरीब लैपटॉप को असीम रूप से चलाने, यादृच्छिक मानों को निर्दिष्ट करने lengthWeightऔर countWeightविभिन्न अंतिम संपीड़न आकार प्राप्त करने के लिए कहा , और एक फ़ाइल में न्यूनतम संपीड़न आकारों के लिए डेटा संग्रहीत किया

आधे घंटे में या तो यह उपरोक्त स्ट्रिंग के साथ आया (मैंने इसके साथ छेड़छाड़ करने की कोशिश की कि क्या मैं कोड को छोटा कर सकता हूं), और यह किसी भी कम नहीं होगा, मुझे लगता है कि मुझे यहां कुछ याद आ रहा है।

इसके लिए यहां मेरा कोड, यह भी max_patternबहुत धीमा है (नोट: कोड समाधान के मेरे पिछले संस्करण में फार्म के समान एक स्ट्रिंग को थूकता है, मैंने वर्तमान रूप को प्राप्त करने के लिए मैन्युअल रूप से काम किया, मैन्युअल रूप से मेरा मतलब है, मैन्युअल रूप से अजगर खोल में)

import itertools

global pretty
global split
split = False
pretty = False

# try to keep as much visibility as possible
def prefrange():
    return range(32,127) +  ([] if pretty else ([10, 9, 13] + [x for x in range(32) if x not in (10, 9, 13)] + [127]))

def asciichr():
    return [chr(x) for x in prefrange()]

def max_pattern(s, o, lenw, numw):
    l = len(s)
    patts = []
    for c in range(l/2+1,1,-1):
        allsub = [s[i:i+c] for i in range(0, l, c)]
        subcounts = [[a, s.count(a)] for a in allsub if len(a) == c]
        repeats = [(x, y, ((c-o)*y - o*2 - c)) for x, y in subcounts if y > 1]
        ranks = [(x, y, (z + lenw*c + numw*y)) for x,y,z in repeats if z > 0]
        patts = patts + ranks
    try:
        return sorted(patts, key=lambda k: -k[2])[0]
    except:
        return None

def sep():
    return '~~' if pretty else chr(127) + chr(127)

def newcharacter(s):
    doable = [x for x in asciichr() if x not in s]
    if len(doable) == 0:
        doable = list(set(x+y for x in asciichr() for y in asciichr() if x+y not in s and x+y != sep()))
        if len(doable) == 0:
            return None
    return doable[0]

def joined(s, l):
    one = [x for x in l if len(x)==1]
    two = [x for x in l if len(x)==2]
    return ''.join(reversed(two)) + sep() + ''.join(reversed(one)) + sep() + s

def compress(s, l=[], lenw=0, numw=0):
    newchr = newcharacter(s)
    if newchr == None:
        if not l:
            return s
        return joined(s,l)
    else:
        ptn = max_pattern(s, len(newchr), lenw, numw)
        if ptn == None:
            if not l:
                return s
            return joined(s, l)
        s = s.replace(ptn[0], newchr)
        s = ptn[0] + newchr + s
        l.append(newchr)
        return compress(s, l, lenw, numw)

def decompress(s):
    lst2, lst, s = s.split(sep(),2)
    li = [lst2[i:i+2] for i in xrange(0, len(lst2), 2)]+list(lst)
    for c in li:
        x, s = s.split(c, 1)
        s = s.replace(c, x)
    return s


def test(times):
    import random
    rnd = random.random
    tested = {(1001, 1001): (10000, 10, False),}
    org = open('text').read()
    minfound = 1000
    for i in xrange(times):
        l,n = 1001,1001
        while (l,n) in tested:
            # i guess this would be random enough    
            xr = lambda: random.choice((rnd(), rnd()+rnd(), rnd()-rnd(), rnd()*random.choice((10,100,1000)), -1*rnd()*random.choice((10,100,1000)),))
            n = xr()
            l = xr()
        sm = compress(org, l=[], lenw=l, numw=n)
        try:
            dc = decompress(sm)
        except:
            tested[l,n] = (len(sm), len(sm)/float(len(org)), 'err')
            continue
        tested[l,n] = (len(sm), len(sm)/float(len(org)), dc==org)

        if len(sm) < minfound:
            minfound = len(sm)
            open('min.txt','a').write(repr(tested[l,n])+'\n')
            print '~~~~~~~!!!!!!! New Minimum !!!!!!!~~~~'
    return tested

if __name__ == '__main__':
    import sys
    split = False
    try:
        if sys.argv[2] == 'p':
            pretty = True
    except:
        pretty = False
    org = open(sys.argv[1]).read()
    try:
        l=float(sys.argv[3])
        n=float(sys.argv[4])
    except:
        l,n=0,0
    sm = compress(org,lenw=l,numw=n)
    print 'COMPRESSED -->'
    print sm, len(sm)
    #open('new.py','w').write(sm)
    print len(sm)/float(len(org))
    print 'TRYING TO REVERT -->'
    dc = decompress(sm)
    #print dc
    print dc==org

1. एक अतिरिक्त चर के लिए \n5 चार्ट खर्च होंगे और 9. बचाएंगे। 2. अतिरिक्त स्थान in (g,l..)। 3. join(..)साथ ही साथ join([..])(कम से कम 2.7 में) काम करता है ।
बदसूरत

126 कम वर्ण, यह मजेदार है
ऑप्टिमस

आपका कार्यक्रम केवल प्रतीत हो रहा है 587 कई जवाब है कि 588 के हैं एक से कम - बाइट्स लंबे (यूनिक्स स्वरूपण)
रेस

इसे इंगित करने के लिए धन्यवाद, वास्तव में मेरी विम ने पायथन फाइल के अंत में एंडलाइन को जोड़ा
ऑप्टिमस

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

11

मैलबोल, 12735 बाइट्स

D'`N^?o!6}{FW1gSSR2PO)oo98[H('3}C#"?xwO*)L[Zp6WVlqpih.lkjihgI&^F\a`Y^W{[ZYX:Pt7SRQPOHGkK-CHA@d>C<;:9>=6Z:9876v43,+Op.',%*#G'&}$#"y?}_uts9qvo5sUTpong-NMib(fedFEa`_X|\[T<RQVOsSRQP2HlLKJCgAFE>=aA@">76;:9870Tu-2+*)Mn,+*#"!Efe{z!x>|utyxwpo5Vlqpih.fed*ba`&^c\[`Y}@\[TSXQuUTMLQPOHl/EDIHAeED=BA@?8\<|438765.R,r*)(L,+$j"'~D${c!x>_uzyrq7XWsl2ponmfN+LKgf_^c\"Z_^]VzZYX:VOsSRQ3IHGk.JCBAeEDCB;:9]~<5Yzy705432+0/(L,l$H('&feB"yxw={zsxq7Xnsrkjoh.lkdiba'eGcba`Y}@VUySXQPONMqQ3IHlLEJIBA@d'=BA:?87[;:z870T4-2+O/.'&JIj"'&}Cd"!x>|uzyxqpo5slk10nPf,jLKa'_dcb[!_X@VzZ<XQPOsSRQJImMFEJCBAeED=<;_?>=6|:32V05432+0)M-&+*#Gh~}|Bc!x>_{tyr8vutsrTpoh.lkjihgI&^F\[`_X|VUZSRWVOs6LQJImGLEJIBAeED&B;_?!=654X87wv4-Q1qp('&Jk)"!&}C#zb~wv{t:[qpotsrk1oQPlkd*hgfe^]#aZB^]V[ZSwWP8TSLpJ2NGkE-IBA@dDCBA:^!~654Xy705.-Q1*/.'&%Ij('&}C#"!~}|ut:[wvonm3qpongO,jLKa'eGc\[!_A@VzZYX:Pt7SRQPImM/KJIBAe?'=<;_9>=<5492V6/43,P0/('&+*#G'&feBzb~}|uts9wYXn4rqpoQPlkd*hJIe^$ba`Y}WV[Tx;:PONrLKJONGkE-IBAe(D=<A@?>7[;{z810/S-,+0/('&J$j(!E}|#z!x>|{t:xqYo5slTpingf,jLba`&^Fb[`_X|\UTx;WPUTMqQPO1GkE-IBA@dD=B;:?8\<;4981U5432+*)Mn,%Ij('~}|Bc!x}|ut:9wYunmrk1onmfN+LKa'edFEa`_X|?Uyx;WPUTMqQ3ONMFjJIHA@d'CB;:?8\6|:32V65ut,P0po'&+$#(!E%|#"y?w|{tyr8vutsrTpoh.lkjihgI&^F\[`_X|VUZSRWVOsS5QPIHGkEJIHAed>&<`@9>=<;4X876/.3210)(Lm+*#G'~}$#zy~w=u]sxq7Xtmlkji/POe+*hg`Hd]#DZ_^]Vz=SXQVUNrR43ImMLKJIH*@d>C<`#"8=<;:3Wx05.3,P0po'&+$#(!E%$#"yx>|uts9wYonm3Tpinglkd*hJIedcb[!_X@VzT<RQVOsSRQP2HlL.JIBf)?DCB;@?>7[;43Wx0/43,P0/.-m%*#GF&f${A!awv{zs9wpunsrkj0hgfejiba'eG]b[`Y}@VUy<;WVUTMqQJ2NGkKJIHA@dc&BA@?>=<5Y9216543,Pqp(Lm%I)i!~}C{cy?}v{tyr8vuWmrqji/mlejihgf_^]#a`BA]\[Tx;WPUTMqQP2NGFEiIHA)?c&<;@98\};:3W76/u3,+*N.',+$H(!g%${A!~}vu;sxwpun4rqjRnmf,MLbgf_dc\"`BXWVzyYXWP8NrRQ32NMLEDhHGF?>C<`@9876Z4321U5432+*)M-,+*ji!E}|{"y?w|utyr8potsrk1onmlkdiba'eGcba`Y}]?>ZYXQuOTSLpPIHMLEDCg*@?>=a$@9]=<;{z876/S3210/o-&J*j"!~D|{z@awv{zyr8pXn4rqjoh.-kjchgf_%cE[`Y}]\[ZSRWVOsS54JnNML.DhHA@EDCB;_"!=<5Y3y165.-Q1*/.-&Jk#"'~D|#z@x}vut:rwpun4rqjih.lkjihJI_%F\aZ_^W{>=YXWPOs65KJOHlL.JIHG@dDCB$@?>=<5Y98x6543,P0)(-,%$#(!E%|#"!x>_{tyr8vuWmrqji/mlejihgf_^]#a`BA]\[TxR:u8NSRQJImG/EJCHAeE'=B;@?>7[;49870T4t2+*)M-,+*#"!E}|{"y~w={]\xqpo5srqjoh.-kjchgf_%cE[`Y}]\>=SwWP8NrLKPOHGkKJ,HG@d'=BA:?87[|{98765.R210).'K+k#G'&feB"!x}v{zs9wYXn4rTSoh.lNjibg`&G]#aC_X|?>ZYXWPt7MLKJImMFEDCgGFEDCB;_?>=<5{3W165.R2r0/.'KJ$#('~%|Bcb~w|u;yxq7utVrkji/Pledihg`&dcba`Y}W?UZYRQuONMLQJOHlkKJI+AeED=%;_?!~<5Y98x6543,P0/.-m%*#G'&f${A!awv{zs9wpunsrkj0hgfejiba'eG]b[`Y}@VUy<;WVUTMqQJ2NGkKJIHA@dc&BA@?>=<5Y9216543,P0po'&%I)(!g%${Aya}|u;:rwpun4rqjih.fN+cha`_^$ba`BX|\[ZYX:Pt7SRQPOHGkKJ,HAF?>bB$:?8=6Z:3y76/St,+O).',%$#G'~f$#"!x>|{z\xwp6tsrkpong-kjihgfH%cbDCYXW{>=YXQu8NMLpJINGLEJIBfeE'=<;:9]=<;{z870T.-2+*/.-&J*)(!~}C{cy?}v{tyr8YXnml2ji/glkdcb(f_dcbaZ~^]\U=SwQVOTMRQJImG/EJCHAe(D=B;@?>7[|:9876/.3,Pqp(',+*#G'&feBzy~w={]yxwvo5mrqj0hmlejiba'eG]b[`Y}@VUySXWPUTMqQJ2NGkEJCHA@dDCB;_987<;:9810Tu3,10).'K+$j"'~D|dz@~}_{t:xqpon4rqjRnmf,jchaf_%]Ea`_^]VzZYXQ9UNr54JnH0LKDhHGFEDCB;_?!~<;:981U/u3,+*N.-,%k)"Fg%$#"!x>v{tyrq7Xtmrk1oQPfejc)gfH%]baZ_^W{[TSwv9OTMLp3ONMLEDhBGFEDC<;_"!7[|{9870T43,+Op.-&+$)"F&f$#zy~w=^]sxqpo5srqpoQg-Njchafedc\"`_X]VzZYR:u87SLKJnNM/KDhBGF?>=aA@?!~6;:3W7wv.-2+O/o-&J$j"'~D${c!x>|{tyxq76nsrkpi/gfkdiba'HGcb[!_^@VUTx;WPUTMqQPONM/EiCHG@dDCB;_987<;:9810T.-,10)M',%$)"F&feB"!a}|u;\xqputm3qpRQ.fkdcbg`&dFEaZ~A@\[TxXQ9UTMqQPINMFjJ,HG@d'=BA:?87[;:z8765.R210/o-&J$j"'~D$dc!x>|uzyxqpo5Vlqping-kdchg`_%cE[`Y}]?>ZSRWVOsM5KoOHMFjJCHGF?cCB;@?87[;:z8765.R,1*/.-&%Ij('~}|Bc!x>_utsxqpo5mlk1onmfN+iKg`_^$E[!~^]\U=SwQVOTMRQJImMLKD,HAe?DCBA@?>7[|{92V6/.3210)(Lm+*#G'&feBzy~w={ts9wvXnm3kSohglkjiha'e^]\a`Y}@VUyYX:POTMqQJ2NMLKDhHA@dD=<`#"8=<;:3W7654-Q10/('K+$)(!EfeBzb~wv{t:[wpon4Ukji/Plkjchgf_^$bDZ_^]VzZ<Rv9OTMLpPON0/KJIHAeE>=B;:9]~654X270T.-2+*/.-&J*j"!~D${cy?}v{tyr8vuWsrqpi/mleMihgf_^]#aZ_XWVzyYXWP8NrRQ32NMLEDhHA)?cCB$@987[5{321U5u32+O)o'&J*ji'~D${c!x>_{tsrwvun4lTjih.lkjihJI_%F\aZ_^W{>=YXWPOsS54PIm0/KJCBAe(>=<A@?>=<;4Xyx65.R210).'K+k#G'&feB"b~}v<zsxwp6Wmrqping-kdcha'e^F\[`_X|\[ZYX:Pt7SRQPOHGkE-CHA@d>C<;:9>=6Z:z8765.R210)o'&J$)"!~%${A!~`v{zyr8pXnslk1onmfN+Lbgfe^]#aC_X|{[ZSXWVOsMRKoONML.DhHA)E>bB;:9]=6|49810/.R2r*).-&J*)(!&}C#c!x}v<]\xqputm3qponmfN+LKa'edFEa`_X|?Uyx;WPUTMqQJnH0FKJCHAe?>CBA:?87[|{98765.R210).'K+k#G'gfC{cy~}vu;yxwvXWsl2ponmfN+LKa'_^$#DZ_^]Vz=<XWPtT65QJn1GLEDhHGF(>C<A@9]=<;:3y76/St,+Opo'&%Ij(!~%|Bz@a}|{t:[wvun43qpRQ.-Ndcha'edFEa`_X|?>ZYXWPt7MLKJImMFEDCgGFEDCB;_?>=<5{3W165.R2r0/.'KJ$#('~%|Bcb~w|u;yxqYo5srTSihg-kMc)J`e^]#DZ_^]VzTSRQVONMqQJOHlF.JIBf)d'CB;:?8\<;492Vw5.-,+O/('&J$j(!E%e{zy?}|^]yxq7XWsrkji/mfN+ihg`H^$b[Z_^W\UySRQPtsSR43ImM/KJIBAeE>&<`@9876Z4321U5432+*)M-,+*ji!E}|{"y?w|utyr8potsrk1onmlkdiba'eGcba`Y}]?>ZYXQuOTSLpPIHMLEDCg*@?>=a$@9]=<;{z876/S3210/o-&J*j"!~D|{z@awv{zyr8pXn4rqjoh.-kjchgf_%cE[`Y}]\[ZSRWVOsS54JnNML.DhHA@EDCB;_"!=<5Y3y165.-Q1*/.-&Jk#"'~D|#z@x}vut:rwpun4rqjih.lkjihJI_%F\aZ_^W{>=YXWPOs65KJOHlL.JIHG@dDCB$@?>=<5Y98x6543,P0)(-,%$#(!E%|#"!x>_{tyr8vuWmrqji/mlejihgf_^]#a`BA]\[TxR:u8NSRQJImG/EJCHAeE'=B;@?>7[;49870T4t2+*)M-,+*#"!E}|{"y~w={]\xqpo5srqjoh.-kjchgf_%cE[`Y}]\>=SwWP8NrLKPOHGkKJ,HG@d'=BA:?87[|{98765.R210).'K+k#G'&feB"!x}v{zs9wYXn4rTSoh.lNjibg`&G]#aC_X|?>ZYXWPt7MLKJImMFEDCgGFEDCB;_?>=<5{3W165.R2r0/.'KJ$#('~%|Bcb~w|u;yxq7utVrkji/Pledihg`&dcba`Y}W?UZYRQuONMLQJOHlkKJI+AeED=%;_?!~<5Y98x6543,P0/.-m%*#G'&f${A!awv{zs9wpunsrkj0hgfejiba'eG]b[`Y}@VUy<;WVUTMqQJ2NGkKJIHA@dc&BA@?>=<5Y9216543,P0po'&%I)(!g%${Aya}|u;:rwpun4rqjih.fN+cha`_^$ba`BX|\[ZYX:Pt7SRQPOHGkKJ,HAF?>bB$:?8=6Z:3y76/St,+O).',%$#G'~f$#"!x>|{z\xwp6tsrkpong-kjihgfH%cbDCYXW{>=YXQu8NMLpJINGLEJIBfe(>=a$@9]=<;{z876/S3210/o-&J*j"!~D|{z@awv{zyr8pXn4rqjoh.-kjchgf_%cE[`Y}W?UZYRQuUTS54PImGLKJIHGF?cCB$#9]=6|:32V0/432+Op.'K+k#G'&feBzb~w=^]srqpo5srqpRQ.fejiha'edFEa`_X|?>ZYXWPt7MLKJImMFEDCgGFEDCB;_?>=<5{3W165.R2r0/.'KJ$#('~%|Bcb~w|u;y[qvotsrk1inmle+LKa'eGc\[!_^@VUTxXQ9UNr54JnH0LKJIBAe?'CBA@9]~65:9870Tut,+0/(Lm+*)"!&%${Aya}|{ts9ZYotmrk1Rnglkdihg`&d]\a`_^]\UTxX:Pt7MRKJIHlLE-IBAe(D=<A:^>~6549270T432r0/.'KJ$#('~%|Bcb~w|u;yxwYXn4rqpohg-kjiba'eGc\[!_^]\[Z<Rv9UTMRKPOHlF.DhBGF?>=a;:?8=6Z:3y76/St,+O/('&%$Hi!&}${Ab~}vut:rwpun4lTpi/Plkjchgf_^$ba`_A@\[TxX:Pt7MRKJIHlL.JIBf)dDCBA#9]~65:9870T4-2+O/.-m%*#G'&f${A!awv{zs9wpunsrkj0hgfejiba'eG]b[`Y}@VUy<;WVUTMqQJ2NGkKJIHA@dc&BA@?>=<5Y9216543,P*).-,%Ij('~}|B"!~`|u;yxwvXWsl2ponmfN+LKgf_%cba`YX|\[ZSRvVOTSLQPImMLKDhB*F?>CB;_?8=<5Y9y765.-,+O/('&J$j(!E%e{zy?}|^]yxq7XWsrkji/mfN+ihg`H^$b[Z_^W\UySRQPtsSR43ImM/KJIBAeED=<;_"!=<5Y9yx65.R210)o'&J*j('~}${A!~}_{t:9wpXtsl2poQg-NMiba`&dFEa`_X|\[ZYR:u8NSRQJImG/EJCHAeE'=B;@?>7[;49870T4t2+*)M-,+*#"!E}|{"y~w={]\xqpo5srqjoh.-kjchgf_%cE[`Y}]\U=YXWPt7MLKJImGLKDCHAed>=B;_"!=<5Y9216543,P*)('&J*ji'~D${cy?}v{tyr8vutVrkji/mlkjihJI_%F\aZ_^W{>=YXWPOsSRQP2NGLEDhBGF?c=B;_?>~}5Y9876v43,+O/o',+$)"Fg%|{"y?w|utyr8vXnm32poQ.lkdib(feGcba`Y}]?UTYRvPOTSRKo2NGFjD,HAeED&B;_?>~<;:3W165.-,P0)o'&J*ji!E}|{"y?w|utyr8potsrk1ongOkd*hgfe^F\"C_^W\UyYR:uOTMqQP2NGLEiIHGF?>CB;_?!~<;:981U/43,10/.-&J$j"'~De#"!~w={tyrwpun4rqpRh.Okdihgf_^$bDZ_^]VzTSRQVONMqQJOHlF.JIBf)d'CB;:?8\<;492V0vS-s+*NonK+k)('~De{z!x>_uzyrq7Xtsrkpi/POedchg`&G]#aC_X|?>ZYXWPt7MLKJImMFEDCgGFEDCB;_?>=<5{3W165.R2r0/.'KJ$#('~%|Bcb~w|u;yxqYo5srTSihg-kMc)J`e^]#aCBXW{>=YXWPOsM5Ko2HMFKJIHAeE'=B;@?>7[;49870T4t2+*)M-,+*#"!E}|{"y~w={]\xqpo5srqjoh.-kjchgf_%cE[`Y}W?UZYRQuUTS54PImGLKJIHGF?cCB$#9]=<|49870Tut21*)M'&%*)(!E%$#"y?}|{zyxwpo5Vlqpih.fN+LKgf_%cba`YX|\[ZSRvVOTSLQPImMF.JIBf)(DCB;_?!~6;:981U54-s+*NonK+k)('~De{z!x>_uzyrq7Xtsrkpi/POedchg`&G]#aC_X|?>ZYXWPt7MLKJImMFEDCgGFEDCB;_?>=<5{3W165.R2r0/.'KJ$#('~%|Bcb~w|u;yxqYo5srTSihg-kMc)J`e^]#aCBXW{>=YXWPOsM5Ko2HMFKJIHAeE'=B;@?>7[;49870T4t2+*)M-,+*#"!E}|{"y~w={]\xqpo5srqjoh.-kjchgf_%cE[`Y}W?UZYRQuUTS54PImGLKJIHGF?cCB$#9]=<|49870Tut21*)M'&%*)(!E%$#"y?}|{zyxwpo5Vlqpih.fN+LKgf_%cba`YX|\[ZSRvVOTSLQPImMF.JIBf)(DCB;_?!~6;:981U54-s+*NM-ml*)(!E%${cy?`v{zyr8putsrkj0hgfejiba'eGc\[!_^W{U=SwQ9UNr5QPIHMFjJ,BAe?'C<;@9]~<5Y3876/.3,Pqp(',+*#G'&feBzy~w={]yxwvo5mrqj0hmlejiba'eG]b[`Y}@VUySXWPUTMqQJ2NGkEJCHA@dDCB;_987<;:9810Tu3,10).'K+$j"'~D|dz@~}_{t:xqpon4rqjRnmf,jchaf_%]Ea`_^]VzZYXQ9UNr54JnH0LKDhHGFEDCB;_?!~<;:981U/u3,+*N.-,%k)"Fg%$#"!x>v{tyrq7Xtmrk1oQPfejc)gfH%]baZ_^W{[TSwv9OTMLp3ONMLEDhBGFEDC<;_"!7[|{9870T43,+Op.-&+$)"F&f$#zy~w=^]sxqpo5srqpoQg-Njchafedc\"`_X]VzZYR:u87SLKJnNM/KDhBGF?>=aA@?!~6;:3W7wv.-2+O/o-&J$j"'~D${c!x>|{tyxq76nsrkpi/gfkdiba'HGcb[!_^@VUTx;WPUTMqQPONM/EiCHG@dDCB;_987<;:9810T.-,10)M',%$)"F&feB"!a}|u;\xqputm3qpRQ.fkdcbg`&dFEaZ~A@\[TxXQ9UTMqQPINMFjJ,HG@d'=BA:?87[;:z8765.R210/o-&J$j"'~D$dc!x>|uzyxqpo5Vlqping-kdchg`_%cE[`Y}]?>ZSRWVOsM5KoOHMFjJCHGF?cCB;@?87[;:z8765.R,1*/.-&%Ij('~}|Bc!x>_utsxqpo5mlk1onmfN+iKg`_^$E[!~^]\U=SwQVOTMRQJImMLKD,HAe?DCBA@?>7[|{92V6/.3210)(Lm+*#G'&feBzy~w={ts9wvXnm3kSohglkjiha'e^]\a`Y}@VUyYX:POTMqQJ2NMLKDhHA@dD=<`#"8=<;:3W7654-Q10/('K+$)(!EfeBzb~wv{t:[wpon4Ukji/Plkjchgf_^$bDZ_^]VzZ<Rv9OTMLpPON0/KJIHAeE>=B;:9]~654X270T.-2+*/.-&J*j"!~D${cy?}v{tyr8vuWsrqpi/mleMihgf_^]#aZ_XWVzyYXWP8NrRQ32NMLEDhHA)?cCB$@987[5{321U5u32+O)o'&J*ji'~D${c!x>_{tsrwvun43qpohgf,jihgfH%cba`_A@\Uy<;QPONMqQP2HlL.JIBf)dD=BA@9>7[5{321U/.3,10/(LKl*)"F&feBc!x>|^]yxq7utVlkj0/mfN+LKgf_%cba`YX|\[ZSRvVOTSLQPImGLEDIBAe(D=<A@?>7[;43W76v43,+O/(n,%I)('gfCd"!xw|{zs9wvutm3qponmlkdcb(f_^$#[`_^]VzTYRv9OTMLpP21GkKD,BG@d>CBA:^>~6549270T.3,1*)ML,%k)"F&feB"!~w=^]s9wYXnml2ponmlkjiba'eGc\[!_^@VUTxXQ9UNr54JnH0LKJIBAeEDCBA:^>=<54X8x6/S3,10/.-&J*j"!~D|#zyx>v{zs9qvutsrk1Rngfkd*hJIedcb[!_A]\UZSwvPUNSLp3INGFjJI+*F?cCB$#9]~}5:32V6v43,+O/o-,+*#G'~f|{"y?}|{zsxq76tVrkji/mfN+ihg`H^$b[`Y}@VUTxX:Pt7SRQPOHGk.JCBGF?cC<A:^>=<5:3W76v43,+Op.'&%Iji!&}$#z@a`|{zsxq7uWsrkj0QPlejchg`&d]\a`_^]\UTxX:Pt7MRKJIHlLE-IBAe(D=<A:^>~6549270T432r0/.'KJ$#('~%|Bcb~w|u;y[qvotsrk1inmle+LKa'eGc\[!_^@VUTxXQ9UNr54JnH0LKJIBAe?'CBA@9]~65:9870Tut,+0/(Lm+*)"!&%${Aya}|{ts9ZYotmrk1Rnglkdihg`&d]\a`_^]\UTxX:Pt7MRKJIHlLE-IBAe(D=<A:^>~6549270T432r0/.'KJ$#('~%|Bcb~w|u;yxwYXn4rqpohg-kjiba'eGc\[!_^]\[Z<Rv9UTMRKPOHlF.DhBGF?>=a;:?8=6Z:3y76/St,+O/('&%$Hi!&}${Ab~}vut:rwpun4lTpi/Plkjchgf_^$ba`_A@\[TxX:Pt7MRKJIHlL.JIBf)dDCBA#9]~65:9870T4-2+O/.-m%*#G'&f${A!awv{zs9wpunsrkj0hgfejiba'eG]b[`Y}@VUy<;WVUTMqQJ2NGkKJIHA@dc&BA@?>=<5Y9216543,P*).-,%Ij('~}|B"!~`|u;yxwvXWsl2ponmfN+LKgf_%cba`YX|\[ZSRvVOTSLQPImMLKDhB*F?>CB;_?8=<5Y9y765.-,+O/('&J$j(!E%e{zy?}|^]yxq7XWsrkji/mfN+ihg`H^$b[Z_^W\UySRQPtsSR43ImM/KJIBAeED=<;_"!=<5Y9yx65.R210)o'&J*j('~}${A!~}_{t:9wpXtsl2poQg-NMiba`&dFEa`_X|\[ZYR:u8NSRQJImG/EJCHAeE'=B;@?>7[;49870T4t2+*)M-,+*#"!E}|{"y~w={]\xqpo5srqjoh.-kjchgf_%cE[`Y}]\U=YXWPt7MLKJImGLKDCHAed>=B;_"!=<5Y9216543,P*)('&J*ji'~D${cy?}v{tyr8vutVrkji/mlkjihJI_%F\aZ_^W{>=YXWPOsSRQP2NGLEDhBGF?c=B;_?>~}5Y9876v43,+O/o',+$)"Fg%|{"y?w|utyr8vXnm32johg-Njchgf_^$\a`Y^]\UTxX:Pt7MRKJIHlLE-IBAe(D=<A:^>~6549270T432r0/.'KJ$#('~%|Bcb~w|u;yxqYo5srTSihg-kMc)J`e^]#DZ_^]VzTSRQVONMqQJOHlF.JIBf)d'CB;:?8\<;492Vw5.-,+O/('&J$j(!E%e{zy?}|^]yxq7XWsrkji/mfN+ihg`H^$b[Z_^W\UySRQPtsSR43ImM/KJIBAeE>&<`@9876Z4321U5432+*)M-,+*ji!E}|{"y?w|utyr8potsrk1onmlkdiba'eGcba`Y}]?>ZYXQuOTSLpPIHMLEDCg*@?>=a$@9]=<;{z876/S3210/o-&J*j"!~D|{z@awv{zyr8pXn4rqjoh.-kjchgf_%cE[`Y}]\[ZSRWVOsS54JnNML.DhHA@EDCB;_"!=<5Y3y165.-Q1*/.-&Jk#"'~D|#z@x}vut:rwpun4rqjih.lkjihJI_%F\aZ_^W{>=YXWPOs65KJOHlL.JIHG@dDCB$@?>=<5Y98x6543,P0)(-,%$#(!E%|#"!x>_{tyr8vuWmrqji/mlejihgf_^]#a`BA]\[TxR:u8NSRQJImG/EJCHAeE'=B;@?>7[;49870T4t2+*)M-,+*#"!E}|{"y~w={]\xqpo5srqjoh.-kjchgf_%cE[`Y}]\>=SwWP8NrLKPOHGkKJ,HG@d'=BA:?87[|{98765.R210).'K+k#G'&feB"!x}v{zs9wYXn4rTSoh.lNjibg`&G]#aC_X|?>ZYXWPt7MLKJImMFEDCgGFEDCB;_?>=<5{3W165.R2r0/.'KJ$#('~%|Bcb~w|u;yxq7utVrkji/Pledihg`&dcba`Y}W?UZYRQuONMLQJOHlkKJI+AeED=%;_?!~<5Y98x6543,P0/.-m%*#G'&f${A!awv{zs9wpunsrkj0hgfejiba'eG]b[`Y}@VUy<;WVUTMqQJ2NGkKJIHA@dc&BA@?>=<5Y9216543,P0po'&%I)(!g%${Aya}|u;:rwpun4rqjih.fN+cha`_^$ba`BX|\[ZYX:Pt7SRQPOHGkKJ,HAF?>bB$:?8=6Z:3y76/St,+O).',%$#G'~f$#"!x>|{z\xwp6tsrkpong-kjihgfH%cbDCYXW{>=YXQu8NMLpJINGLEJIBfe(>=a$@9]=<;{z876/S3210/o-&J*j"!~D|{z@awv{zyr8pXn4rqjoh.-kjchgf_%cE[`Y}W?UZYRQuUTS54PImGLKJIHGF?cCB$#9]=6|:32V0/432+Op.'K+k#G'&feBzb~w=^]srqpo5srqpRQ.fejiha'edFEa`_X|?>ZYXWPt7MLKJImMFEDCgGFEDCB;_?>=<5{3W165.R2r0/.'KJ$#('~%|Bcb~w|u;y[qvotsrk1inmle+LKa'eGc\[!_^@VUTxXQ9UNr54JnH0LKJIBAe?'CBA@9]~65:9870Tut,+0/(Lm+*)"!&%${Aya}|{ts9ZYotmrk1Rnglkdihg`&d]\a`_^]\UTxX:Pt7MRKJIHlLE-IBAe(D=<A:^>~6549270T432r0/.'KJ$#('~%|Bcb~w|u;yxwYXn4rqpohg-kjiba'eGc\[!_^]\[Z<Rv9UTMRKPOHlF.DhBGF?>=a;:?8=6Z:3y76/St,+O/('&%$Hi!&}${Ab~}vut:rwpun4lTpi/Plkjchgf_^$ba`_A@\[TxX:Pt7MRKJIHlL.JIBf)dDCBA#9]~65:9870T4-2+O/.-m%*#G'&f${A!awv{zs9wpunsrkj0hgfejiba'eG]b[`Y}@VUy<;WVUTMqQJ2NGkKJIHA@dc&BA@?>=<5Y9216543,P*).-,%Ij('~}|B"!~`|u;yxwvXWsl2ponmfN+LKgf_%cba`YX|\[ZSRvVOTSLQPImMLKDhB*F?>CB;_?8=<5Y9y765.-,+O/('&J$j(!E%e{zy?}|^]yxq7XWsrkji/mfN+ihg`H^$b[Z_^W\UySRQPtsSR43ImM/KJIBAeED=<;_"!=<5Y9yx65.R210)o'&J*j('~}${A!~}_{t:9wpXtsl2poQg-NMiba`&dFEa`_X|\[ZYR:u8NSRQJImG/EJCHAeE'=B;@?>7[;49870T4t2+*)M-,+*#"!E}|{"y~w={]\xqpo5srqjoh.-kjchgf_%cE[`Y}]\U=YXWPt7MLKJImGLKDCHAed>=B;_"!=<5Y9216543,P*)('&J*ji'~D${cy?}v{tyr8vutVrkji/mlkjihJI_%F\aZ_^W{>=YXWPOsSRQP2NGLEDhBGF?c=B;_?>~}5Y9876v43,+O/o',+$)"Fg%|{"y?w|utyr8%

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

यहाँ उपकरण का उपयोग कर उत्पन्न


ओह! एक Malbolge जवाब? बहुत बढ़िया!
MilkyWay90

10

जावास्क्रिप्ट 666 बाइट्स

है tkazec समाधान से प्रेरित है ।

इसके बारे में मैंने जो ब्लॉग पोस्ट लिखी है, उसे देखें, इसमें सभी स्रोत हैं और बताते हैं कि मैंने उस कोड को कैसे बनाया।

आप कोड को अपने ब्राउज़र के कंसोल में कॉपी और पेस्ट कर सकते हैं। या इसे http://jsfiddle.net/eikes/Sws4g/1/ पर आज़माएं

t="We're no strangers to love|YouSrules;so do I|A full commitment's what?think7f|You wouldn't get this from anyLguy^zQnqAnd if:ask me[Don'tEme yRblind=ee{HUH_]|Qq^{x<br>{zxz||xxZKVlet:downVrun around;deseBVMcryVsay goodbyeV8a liFhuB||q eachLfor so long|Your hearPaching but|YRshy=@Inside we bothCwhaPgo7n|WeSgamFwe'reJpl@_U]^|I just wannaEyou[Gotta Munderstand](Ooh)|Z, nX|(GU[ how?feeling|ZNXXTgiveV|NTUiveK)|TeverJSCthe Rou're too QWe've9Pt's been Mmake:L other K:upJ gonna H(Ooh, gFe;E 8C9 Brt you@ay it|? I'm = to s; and : you 9 know8tell 7ing o";c="|{zxq_^][ZXVUTSRQPMLKJHFECB@?=;:987".split("");while(l=c.pop()){t=t.split(l);t=t.join(t.pop())}document.write(t)

9

पर्ल, 584 578 577 576 575 571 564 554 553 540

यह समाधान अन्य लोगों के समान मूल दृष्टिकोण का अनुसरण करता है: एक प्रारंभिक स्ट्रिंग, पाठ के दोहराया भागों के दोहराया प्रतिस्थापन प्रदर्शन करते हैं।

प्रतिस्थापन नियम एक एकल वर्ण द्वारा निर्दिष्ट किए जाते हैं, अधिमानतः आउटपुट टेक्स्ट में नहीं होने वाला, इसलिए लंबाई L का नियम और N के बार होने से लगभग N * LNL-1 की बचत होगी (N * L, सभी घटनाओं की मूल लंबाई है, लेकिन प्रतिस्थापन चरित्र एन बार होता है, और शाब्दिक पाठ में लंबाई एल होती है, और नियम एक अलग चरित्र द्वारा विभाजित होते हैं।) यदि प्रतिस्थापन वर्ण स्पष्ट रूप से निर्दिष्ट किए जाते हैं, तो बचत एन * एलएनएल -2 में कम हो जाती है। यह देखते हुए कि अधिकांश भाषाएं वर्ण () या इसी तरह के छोटे कोड के साथ एक चरित्र की गणना कर सकती हैं, पहला दृष्टिकोण बेहतर होने की ओर इशारा करता है।

प्रतिस्थापन चरित्र की गणना करने के लिए कुछ कमियां हैं, सबसे महत्वपूर्ण ASCII वर्णों की एक सतत श्रेणी की आवश्यकता है। आउटपुट ज्यादातर लोअरकेस अक्षरों का उपयोग करता है, लेकिन बाद में एक वर्ण की जगह लेने के लिए पर्याप्त अपरकेस अक्षर और विराम चिह्न होते हैं, बाद में एक तय चरण में कुछ वर्णों को फिर से भरना, या नियमों का आदेश देना जैसे कि समस्याग्रस्त वर्णों को पहले से बदलना। एक भाषा का उपयोग करना जो रेगेक्स का उपयोग करने के स्थान पर होता है, का अर्थ है कि ऐसे अक्षरों के लिए गोचर्स हैं, जिनका रेगेक्स के भीतर विशेष अर्थ है:. + * \ ?

मेरे मूल दृष्टिकोण में डिकोडर में 63 बाइट्स और नियमों में 521 थे। मैंने नियमों को अनुकूलित करने में बहुत समय बिताया, जो विशेष रूप से छोटे नियमों के साथ मुश्किल हो सकता है क्योंकि वे ओवरलैप कर सकते हैं। मैं 55 बाइट्स के लिए डिकोडिंग और नियम थोड़ा नीचे धोखा देकर 485 तक नीचे चला गया। आम तौर पर, 2-वर्ण नियम जो 3 बार होता है या 3-वर्ण नियम जो दो बार होता है, वास्तव में किसी भी लंबाई को नहीं बचाएगा, लेकिन एक खामी है - जो उन शब्दों को बनाने की अनुमति देता है जो आउटपुट का हिस्सा नहीं हैं; - )।

मैं इस समाधान में नियंत्रण पात्रों का उपयोग करता हूं, इसलिए समाधान यहां बेस 64-एनकोडेड प्रदान किया गया है।

cz09AhpuCnRyYQ8QcxIHbG8OGRwVBHJ1bGVzDRRzB2QHSQFBE3VsbCBjb21taXQIbnQXcxFoYXQs
FWluaxtvZhkRC2xkbhd0BWV0FWlzE3JvbQ1ueR8FdXkuJ0EUaWYYDXNrIAgtRG9uF3QgHiAIGBp0
bwdibGkUdAoDKysBKSkoKCcuKys9OyRjPWNociQ9LS0sczpbJGNdOigiCldlZWVlICBnb3RvIG1l
b3cHc291bmQgYXZlbmdlciB3IHQgZgwgEmhpDiciPX4vLj9cRC9nLHNwbGl0CjAsJyB5CzABWQsw
F3IEMGkPIDAga24JMG5uYSAwdGVsbDAgBmgQMCAwFhggdXAwZQ5yBW8dMHQXcyBiA24gMGF5IGl0
ATABTiIwAShPb2gwAQECFw4cbiBlYWNoHxNvciBzB2xvDxlyIGhlYXIjYWNoG2J1dBkadG8KaHkS
CiRJbnNpZGURBGIGaBwRaGEjZ28bb24BAhwVBGdhCA0Ud2UaZ28dcGwkMCYpJWcWLCBuImcWAShH
ISkwJiwFISkwbWFrZRggMAElZyElbGV0GCBkCW4lcnVuDXILFGEUZGVzEHQYJSpjcnklc2F5BW9v
ZGJ5ZSUeDSBsaWUNFGh1cnQYMCBJF20wIGgJLBMDbGkPATABSSBqdXN0EWEdHhgtRwZ0YSAqdQwQ
c3RhDCsnKVskPV06ZWd3aGlsZSQ9O3ByaW50

और यहां यह थोड़ा अधिक पठनीय (लेकिन कम निष्पादन योग्य) संस्करण के रूप में है।

s==^B^Zn
tra^O^Ps^R^Glo^N^Y^\^U^Drules^M^Ts^Gd^GI^AA^Sull commit^Hnt^Ws^Qhat,^Uink^[of^Y^Q^Kldn^Wt^Eet^Uis^Srom^Mny^_^Euy.'A^Tif^X^Msk ^H-Don^Wt ^^ ^H^X^Zto^Gbli^Tt
^C++^A))(('.++=;$c=chr$=--,s:[$c]:("
Weeee  goto meow^Gsound avenger w t f^L ^Rhi^N'"=~/.?\D/g,split
0,' y^K0^AY^K0^Wr^D0i^O 0 kn^I0nna 0tell0 ^Fh^P0 0^V^X up0e^Nr^Eo^]0t^Ws b^Cn 0ay it^A0^AN"0^A(Ooh0^A^A^B^W^N^\n each^_^Sor s^Glo^O^Yr hear#ach^[but^Y^Zto
hy^R
$Inside^Q^Db^Fh^\^Qha#go^[on^A^B^\^U^Dga^H^M^Twe^Zgo^]pl$0&)%g^V, n"g^V^A(G!)0&,^E!)0make^X 0^A%g!%let^X d^In%run^Mr^K^Ta^Tdes^Pt^X%*cry%say^Eoodbye%^^^M lie^M^Thurt^X0 I^Wm0 h^I,^S^Cli^O^A0^AI just^Qa^]^^^X-G^Fta *u^L^Psta^L+')[$=]:egwhile$=;print

हालाँकि, मुझे संदेह है कि यह अभी भी न्यूनतम नहीं है, क्योंकि एड एच। बताते हैं कि php डीकोडिंग 44 बाइट्स में सबसे छोटा है और मैंने उन नियमों में सुधार के लिए जगह देखी है जिनका वह उपयोग कर रहा है। मेरे पास पर्ल में एक 52-बाइट डिकोडर है, लेकिन मैं इस समाधान के लिए इसका उपयोग करने में असमर्थ था क्योंकि मुझे रिवर्स में रेंज के माध्यम से चलाने की आवश्यकता थी।


8

PHP 730 707 वर्ण

<? $ l = 'you'; $ n = 'नेवर नेवर'; $ z = "$ l ऊपर दे", $ n = "
$ n $ z
$ n लेट $ ल नीचे
$ n चारों ओर चला और रेगिस्तान $ l
$ n $ ल रो रो
$ n अलविदा कहो
$ n एक झूठ बताओ और $ l को चोट पहुंचाई

"; $ ओ ="
हम एक दूसरे को इतने लंबे समय से जानते हैं
आपका दिल दुख रहा है लेकिन
आप इसे कहते हुए बहुत शर्मा रहे हैं
अंदर हम दोनों जानते हैं कि क्या चल रहा है
हम खेल जानते हैं और हम इसे खेलने वाले हैं
"; $ p =" (ऊह, $ z) "; $ r =" ($ z) "; $ g =" मैं कैसा महसूस कर रहा हूं "; $ s =" $ n देना, $ n देना "; $ t = "मैं सिर्फ $ l $ g बताना चाहता हूं
समझे $ ल समझेंगे "; गूंज" हम प्यार करने के लिए कोई अजनबी नहीं हैं
आप नियमों को जानते हैं और इसलिए मैं
एक पूर्ण प्रतिबद्धता जो मैं सोच रहा हूँ
आपको यह किसी अन्य व्यक्ति से नहीं मिलेगा
$ टी
$ एम $ ओ
और अगर $ ल मुझसे $ जी पूछते हैं
मुझे $ $ मत बताओ कि देखने के लिए बहुत अंधे हैं
$ एम $ एम
$ पी
$ पी
(ऊह)
$ s
$ आर
(ऊह)
$ s
$ आर
$ ओ
$ टी
$ एम $ एम $ एम ";

1
आप "You" और "you" को चरों में डालकर इसे छोटा बना सकते हैं।
बहुपद

@PeterTaylor, कि सूचना के लिए तैयार करने के लिए एक टाइपो धन्यवाद है।
l0n3sh4rk

@Polynomial, किया!
l0n3sh4rk

$s="Never gonna give...के साथ छोटा किया जा सकता है $n
श्री लामा

1
"देने" के रूप में अच्छी तरह से एक चर का सुझाव दें। इसका उपयोग 5 स्थानों पर किया जाता है।
Glen Solsberry

8

पर्ल - 589 588 583 579 576 बाइट्स

प्रत्येक नियम में 1 चार सिर, एक शरीर और एक अंडरस्कोर होता है। जब तक नियमों को शुरुआत से काट दिया जा सकता है, नियम के प्रमुख को उसके शरीर के साथ बाकी पाठ में बदल दिया जाता है। पहला नियम का प्रमुख दिया गया है, निम्नलिखित सभी नियमों के प्रमुख चर $ i से उत्पन्न होते हैं।

चूंकि अगले नियम के लिए सिर को पिछले नियम द्वारा पाठ की शुरुआत में रखा गया है, इसलिए अंतिम नियम एक ऐसा चरित्र बनाएगा जो अब नहीं हटाया जाएगा। मुझे कई नामों की श्रेणी चुननी थी, जहां अंतिम "W" होगा, इसलिए मैं मूल "W" को गीत की शुरुआत से हटा सकता हूं, और इसे नियम प्रतिस्थापन द्वारा बदल दिया गया था।

एक साधारण हिलक्लिंबिंग एल्गोरिथ्म का उपयोग करके पायथन स्क्रिप्ट द्वारा एन्कोडिंग किया गया था।

यहाँ पर्ल कोड है:

$_="qou_on_er_Hh_ w_
(Ooh_ell_ a_ay it
_'reHoC_g0na _makeR _ve_ oth1 _ing_e ___A_t's been _o _D_4, gP)_
Yq_G_ t_I_ know_
NT_nd _ how I'm feel=
_N_O_i;R up_4)Kgi;, nTgi;
(GP)_ yq_
I just3annaH5RMGotta :und1stand
V_e;r 9_
We';Jn each<for sCl0gFr hearBach= butF8shyHCs7Insid>w>bothJ3haBgo= 0
WeJ2>gam>aLwe'r>9pl7_KgPKletR downKrun6rqLaLdes1tRK:cryKsay goodbyeKt56 li>aLhurtR
_e'r>nCstrang1sHClo;FJ2>rules6LsCdCI
A full commitment's3hat I'm2ink= ofF3qldn't get2is from6ny<guySUALifR6sk meMD0'tH5 meR8bliLtCsee
VVEEQQ
USVV";$i=48;eval"s/$1/$2/g"while s/(.)(.*?)_/chr($i++)/se;print

(मुझे यह उल्लेखनीय लगता है कि संपीड़ित पाठ में "HearBach" शामिल है: D)

और यहाँ पायथन कोड जो इसे उत्पन्न करता है:

import collections, sys
text = sys.stdin.read().replace('\r\n','\n')
text = text[1:]
names = list(["q"] + map(chr, xrange(ord('0'), ord('W'))))
done = False
name = ""
while not done:
    done = True
    best = (0, None)
    for m in xrange(1, len(text) / 2 + 1):
        counter = collections.Counter()
        for i in xrange(0, len(text) - m + 1):
            snippet=text[i:i+m]
            if not '_' in snippet:
                counter[snippet] += 1
        for snippet in counter:
            n = counter[snippet]
            gain = n * m - n - (m + 1)
            if gain > best[0]:
                actual_gain = len(text) - len(text.replace(snippet,"")) - n - (m + 1)
                if actual_gain > best[0]:
                    best=(actual_gain, snippet)
                    done=False
    if not done:
        snippet = best[1]
        try:
            lastname = name
            name = names.pop()
            while name in 'ADGION':
                text = name + '_' + text
                name = names.pop()
            while name in '?@':
                text = '_' + text
                name = names.pop()
        except:
            sys.stderr.write('Warning: out of names.\n')
            lastname = "0"
            break
        text = snippet + '_' + text.replace(snippet, name)
sys.stdout.write('$_="')
sys.stdout.write(name + text)
sys.stdout.write('";$i=' + str(ord(lastname)) + ';eval"s/$1/$2/g"while s/(.)(.*?)_/chr($i++)/se;print')

यह प्रभावशाली है! लेकिन आपको वास्तव में अपने पर्ल की कुछ गोल्फिंग करनी चाहिए। उस छोटे स्निपेट में आपको कम से कम पांच वर्ण मिले हैं जिन्हें कम किया जा सकता है (अनावश्यक रूप से पार्न और इस तरह)।
ब्रेडबॉक्स

5 चरस? मुझे फॉर-लूप का उपयोग करने के लिए एक, eval-parens के लिए 2 और अप्रयुक्त regex-modifier के लिए 1 मिला, लेकिन अब मैं अटक गया हूं। (अभी भी ऑप्टिमस के आगे फिर से: डी)
कासिमोडो

whileलूप के लिए प्रत्यय रूप का उपयोग करने का प्रयास करें ; इससे आप ब्रेसिज़ के साथ-साथ कोष्ठक भी छोड़ सकते हैं। एक और विचार: यह पता लगाने sayके printलिए कि आउटपुट का उपयोग कैसे करें ।
ब्रेडबॉक्स

@quasimodo अब आप नहीं हैं। बस एक बार कहना चाहता था: P
ऑप्टिमस

2
इसका बहुत मज़ा है, हाँ। लेकिन मुझे लगता है कि मुझे वास्तव में यहाँ रुकना चाहिए, मैं इस पर बर्बाद किए गए सभी घंटों के बारे में नहीं सोचना चाहता: D
quasimodo

8

पायथन 2.7, 975 803 बाइट्स

सबसे बड़ी नहीं - मैं (अब) काश अजगर ने इस तरह विस्तार का प्रारूपण किया। काश यह नहीं होता।

संपादित करें: वैकल्पिक स्वरूपण सिंटैक्स के साथ नकली विस्तार (जैसे ..)

print("""We're no strangers to love
You know the rules and so do I
A full commitment's what I'm thinking of
You wouldn't get this from any other guy
{10}{8}
{11}

%s
{13}
And if you ask me{8}
Don't tell me you're too blind to see

%s
%s
{0}, {2})
{0}, {2})
{0})
{1}{12}
{9}
{0})
{1}{12}
{9}

{13}

{10}{8}
{11}

%s
%s
%s"""%tuple(['{1}{2}\n{1}{3}\n{1}{4}\n{1}{5}\n{1}{6}\n{1}{7}']*6)).format(*"(Ooh|Never gonna |give you up|let you down|run around and desert you|make you cry|say goodbye|tell a lie and hurt you\n| how I'm feeling|(Give you up)|I just wanna tell you|Gotta make you understand|give, never gonna give|We've known each other for so long\nYour heart's been aching but\nYou're too shy to say it\nInside we both know what's been going on\nWe know the game and we're gonna play it".split('|'))

7

Clojure

720 बाइट्स / वर्ण:

(अतिरिक्त व्हाट्सएप के साथ यहां पुन: प्रस्तुत किया गया है ताकि आप प्रारूपण देख सकें)

(let [r{\&" and "\Y"You"\0"\n"\1" you"\2" gonna"\3"give"\5" up"\6"ever"\F" how I'm feeling"\T" to"}
      s str 
      n"0N62 "
      c(s n"315"n"let1 down"n"run around&desert1"n"make1 cry"n"say goodbye"n"tell a lie&hurt10")
      p"0(Ooh, 315)"
      g"0(Give15)"
      q(s n "3, n62 3")
      o"0(Ooh)"
      w(s "0We've known each other for so long0Yr heart's been aching but0Y'reTo shyT say it0Inside we both know what's been going on0We know the game&we're2 play it0")
      u(s "I just wanna tell1F0Gotta make1 understand0")
      v"We're no strangersT love0Y know the rules&so do I0A full commitment's what I'm thinking of0Y wouldn't get this from any other guy0"
      R(s v u c w"And if1 ask meF0Don't tell me1'reTo blindT see0"c c p p o q g o q g\0 w\0 u c c c)]
  (apply s(map #(r% %)R)))      

इसका न्यूनतम बाइट्स संस्करण क्या है?
कैलक्यूलेटरफैनलाइन

7

सी # - 605 अक्षर | टी-एसक्यूएल - 795 वर्ण | सी # - 732 अक्षर | C # - 659 अक्षर

इसके लिए प्रेरणा sed उदाहरण से मिली। एकमात्र बड़ा परिवर्तन जो मैंने किया था, वह लगातार ASCII वर्णों को बना रहा था, इसलिए उन्हें घोषित नहीं किया जाना था। दुर्भाग्य से, यह C # है, इसलिए मुझे नहीं पता कि इसे छोटा कैसे बनाया जाए। मैंने उसी प्रतिस्थापित पाठ को लिया और एक अस्थायी तालिका का उपयोग करते हुए T-SQL में कोड किया।

var f='#';Debug.Print("HWe've0n each o=F forCo long5r hear+@ch>but5E<oChy<C1InsideBe bo=0Bha+;o>onHWe0 =e;ame7weE8pl1|HI justBanna :4*Gotta 2u?Fsta?%|H/93up/let3down/run@rou?7desFt4/2cry/say;oodbye/:@ lie7hurt4|(Ooh)/9,nevF89H(G.|'|(|)| how6feelingH|t's been|, |(Ooh,g.|ive3up)H|HNevF8| know|ay itH|make3|4 | you|HYou| I'm |@? |;onna |give|tell| g| to|th|ing |nd| a|A| w| s|D|'re|er|G|\n"
.Split('|').Aggregate("WeE noCtrangFs< love50 =e rules7so do IHA full commitment'sBhat6=ink>of5Bouldn't;et =is from@ny o=F;uy$H#A? if3ask me*Don't : me4E<o bli?<Cee%%HH--&&#$%%",(x,t)=>x.Replace(f++.ToString(),t)));

T-SQL

CREATE TABLE #t(i int IDENTITY(35,1),t varchar(1000) COLLATE Latin1_General_CS_AS) 
DECLARE @s varchar(4000)
SET @s = REPLACE(REPLACE('
INSERT #t SELECT ''We"ve0n each o=F forCo long5r hear+@ch>but5E<oChy<C1InsideBe bo=0Bha+;o>on
We0 =e;ame7weE8pl1|
I justBanna :4*Gotta 2u?Fsta?%|
/93up/let3down/run@rou?7desFt4/2cry/say;oodbye/:@ lie7hurt4|(Ooh)/9,nevF89
(G.|"|(|)| how6feeling
|t"s been|, |(Ooh,g.|ive3up)
|
NevF8| know|ay it
|make3|4 | you|
You| I"m |@? |;onna |give|tell| g| to|th|ing |nd| a|A| w| s|D|"re|er|G'''
,'"',''''''),'|','''
INSERT #t SELECT ''')
EXEC(@s)
SET @s = 'WeE noCtrangFs< love50 =e rules7so do I
A full commitment''sBhat6=ink>of5Bouldn"t;et =is from@ny o=F;uy$
#A? if3ask me*Don"t : me4E<o bli?<Cee%%

--&&#$%%'
SELECT @s = REPLACE(@s, CHAR(#t.i), #t.t) FROM #t
PRINT @s

C # - दूसरा प्रयास यह एक अलग दृष्टिकोण पर प्रयास किया गया था। संपीड़न पूरी तरह से कंप्यूटर द्वारा सबसे अच्छा प्रतिस्थापन की मांग की गई थी। लुकअप क्रमबद्ध हैं और आकार के अनुसार क्रमबद्ध हैं, इसलिए परिसीमित लुकअप की कोई आवश्यकता नहीं है, हालांकि, लुकअप करने के लिए कोड कम कुशल था जितना मैंने सोचा था कि यह कुल मिलाकर 127 अधिक वर्णों को समाप्त कर रहा है! जियो और सीखो।

static void Main()
{
var o="6Gn/tr7g0s,+lo-FJrules.Ds+d+}$z8ull commit9nKLtR1ink:ofF23ldn't4et1is8rom.nyUguy]Xn_zDifC.sk 9[\"5't,I 9CM+bliDt/;^^$N<N\\<X_]^^";
for(char z='\0',y;z<12;z++)
{y='_';for(int i=0,f=333,k=65;i<z;k=y-"'?MRTQNL@(} "[i++]){
for(;y>"^]\\[ZVROB) y"[i];){
f-=k;
o=o.Replace(y--.ToString(),"AWGINODY\n,&'()e o  tve a+ser,h wou gon{ean fmeH eeS)tCowaDr oti- y3nd $~P$#3'r*ingellQ1*t's2haGtoT%4ache-@V kn> }'mBC up$(!oh Ah0 g5na K b;n $$6'-QmakeC ay it$ h>R8;lH$<T)EgB% nPgB$(|$} just27na,IC[|Ata Yund0st7d^$EgSEle= d>nErun.r3D?des0=EYcryEsay4oodbyeEtI. li*?hur= eOUfo@s+l5gF@hearWO:butFM/hy,/Z}nsid*w*bAhQLWgo:5$6Jgam*?weGVplZ".Substring(f,k));
if(y==' '){y='~';i++;}}}}
Console.WriteLine(o);
}

3 सी # पर प्रयास करें। इस बार मैंने \ b, \ r, \ t वर्णों के साथ समाप्त कर दिया। आप पहले अक्षर को कैपिटल N के साथ लाइन पर बदलने के लिए \ rN \ n का उपयोग कर सकते हैं, लेकिन यह वास्तव में वर्णों को सहेजता नहीं था। मैंने कर्सर को वापस ले जाने के लिए \ b उपनाम बनाया और फिर मौजूदा पाठ पर लिखा। लेकिन इस में से किसी ने भी जगह नहीं बचाई और अंत में मैं एक साधारण खोज और बदले की रणनीति से भी बदतर था।

static void Main()
{
    var f='*';
    Console.Write("C04EC0let8downEC0run arouKJdes>t8EC06cryEC0say goodbyeEC0tePa lie Jhurt8E|CWe'veQn each=for sLlongC7r hear?<achFbutC75HoLshyHLs;Inside we bothQ wha?<goFonCWe3ga@ Jwe51pl;|,|CI just wannaHell82CGotta 6und>stJC|(Ooh)C0:, 91:EC(4)R(GC|(Ooh, 4)C|91| gonna |how I'm feelF|QHhe |:8up|'re|make8|You| you |nev>|give|ay itC|been | oth> |er|t's |me|A|EC0|\n|D|RN|ing |G| t|I|aK|nd |o |n't |N|O|ll | know|\r"
    .Split('|')
    .Aggregate(
        "We5 nLstrang>sHLloveC73rules JsLdLICA fuPcommit@n?what I'mHhinkFofC7 wouldMgetHhis from any=guy-*C+AKif8ask @ 2CDoMteP@8\b5HoLbliKtLseeC*C*CC//..+-*C*C*",
        (x,t)=>x.Replace(f++.ToString(),t)));
}

मुझे चतुर REPLACEदृष्टिकोण पसंद है , विशेष रूप से गतिशील एसक्यूएल के साथ, लेकिन गोल्फ के बहुत सारे तरीके हैं जो अधिक हैं: @इसके बजाय चर के रूप में उपयोग करें @s, इसे के tबजाय एक स्थायी तालिका बनाएं #t(आपको खुद के बाद साफ करने की ज़रूरत नहीं है) 29-कैरेक्टर COLLATE स्टेटमेंट से छुटकारा पाएं और बस इसे उचित टकराव, उपयोग varchar(999)या varchar(max), बराबर सिग्नल और कॉमा के आसपास अनावश्यक सफेद स्थान के टन के साथ एक सर्वर / डेटाबेस पर चलाने की आवश्यकता होती है, आदि
ब्रैड मार्क

587 - टिप्पणी लंबाई सीमा के कारण लिंक पास्टबिन में है।
दाना

7

PHP, 591 585 568 564 बाइट्स

<?=strtr(ucwords(str_replace(range('-',a),split(q,"/3/let@d_n/runxarouPxBdese5/?cry/sayxKodbye/7VliLBhu5
q;)/4,x04
 3)q
0qneOUCq;,x3)q
ixju[TNnax7J6KttV?uPR[Nd
q4@upqgiOqrZJqxh_If`lA
qtellxq
S'O=nxeach<foUsMlXg>UheartDachAxbut>HshyEsG\sidLwLboY=FDKAxX
S:gamLB9CplGqS'rLq=QhLq
 oohqxoYRxqxkn_q
Jqmake@qxJxq\gqNdxqgXnVq'^b`nxqQMqThatqayxit
q'rLtoMqxz'mxqyouq".join(q,str_split(goexoxanvendxterwexwrxaxmeonthtxstinulsxoweea,2))),"9nM[rNgRsEloO>:r]e^BsMdMz
Vf]lxcommitWnt'sFIY\kAxof>To]dn'ZgetxYi^fromxNy<guy2-8Bif@askxW6dX'tx7mLJHbliPEs`
--11..
82---")),'x z',' (I');

मुझे लगता है कि आपको कोड में कुछ याद आ रही होगी; यह एक त्रुटि का कारण लगता है: ideone.com/WxIpG
क्रिस्टियन

यह PHP 5.4 है। पुराने संस्करणों के लिए [z => xx] को सरणी (z => xx) से बदलें (और 590 बाइट्स प्राप्त करें)
एक उदास दोस्त

हां, ideone.com/o8hdU काम करता है। अच्छा लगा, +1!
क्रिस्टियान लुपस्कू

1
एक छोटा PHP समाधान (मेरे रूबी कोड से नियमों का उपयोग करके): ideone.com/XoW5t
Ed H.

हाँ, लगता है "LeverCASE EVERYTHING!" सभी के बाद एक बुरा विचार था) अच्छा!
एक उदास दोस्त

7

रूबी, 1014 बाइट्स

मैं सिर्फ प्रोग्रामिंग सीख रहा हूं, इसलिए मैं यहां कोई रिकॉर्ड नहीं तोड़ने जा रहा हूं। लेकिन, यह एक मजेदार काम था।

def c
  wonts = ['give you up', 'let you down', 'run around and desert you', 'make you cry', 'say goodbye', 'tell a lie and hurt you']
  wonts.each do |w|
    puts "Never gonna #{w}"
  end
  b
end

def b
  puts "\n"
end

def never
  puts "Never gonna give, never gonna give
(Give you up)"
end

def v1
puts "We're no strangers to love
You know the rules and so do I
A full commitment's what I'm thinking of
You wouldn't get this from any other guy
I just wanna tell you how I'm feeling
Gotta make you understand"
b
end

def v2
  puts "We've known each other for so long
Your heart's been aching but
You're too shy to say it
Inside we both know what's been going on
We know the game and we're gonna play it"
end

def s1
puts "And if you ask me how I'm feeling
Don't tell me you're too blind to see"
end

def s2
b
puts "I just wanna tell you how I'm feeling
Gotta make you understand"
b
end

def soul
2.times {puts "(Ooh, give you up)"}
puts "(Ooh)"
never
puts "(Ooh)"
never
end

v1
c
v2
s1
b
c
c
soul
b
v2
s2
c
c
c

2
कुछ सुझाव: प्रत्येक चर नाम को एक-वर्ण नाम में बदलें, इंडेंटेशन निकालें और ऑपरेटरों के आसपास रिक्त स्थान निकालें
TuxCrafting

6

GolfScript (511 बाइट्स)

यह बिट्स को पैक करने के लिए आधार के परिवर्तन का उपयोग करता है, इसलिए इसमें ऐसे अक्षर शामिल हैं जो ASCII में नहीं हैं। हालाँकि, उन वर्णों को उनके UTF-8 एन्कोडिंग द्वारा स्कोर करना उचित नहीं है क्योंकि दुभाषिया आईएसओ-8859-1 के रूप में कार्यक्रम का इलाज करता है। इस कारण से मैंने वर्णों के बजाय बाइट्स में लंबाई निर्दिष्ट की है।

बेस -64 एनकोडेड:

J4w1DTwkp317WvYq88CFQym52dINzC36obopJBLKCGZZHq1S+tpz79e4/JdDYS2cdIlm+LUARZ1w
wpJyGDhagRfmNaJWjOt8yZIiIFai/7cMAeKucCTyZpkYmCb/7ogGRwfR1dV0z9wEOoIFo0dudezp
ERmcWcJ7X1CUcUsVz17ScmG7T2SbTnooFFINjz7y1yW9i7k9iFTM/afWhI4A/wuqo6jPRezucfGQ
g1xcvmEsidxT+jKCaYv3Gh4lvcfMdklUNqqeQG/tMDVrk0pUQjz5CVFcJ5uYRLAPzfwQI5sUKHzO
rBZrx/hAC9MPISJPKAQLP4dU3Yy14zL/djogoBxkG1DNRMoPEtwHIZmEPwaELWshCTdS+vF+zI6X
ei7BL5bqVhXZdKGqPFjHS0+rQfHUDUfggt/AkIGfV/focklq9IXmqINpS4eroTqzCMLJQpiZiTXm
7jdu1xqm1hftTPEr/VteBOCqKIsx596o+/ZaGRi/opjley/l2bnZi4Z6L+TZsqUqyj4Pfhf4JFiw
9a/kcBffIu2yWmQGgSOeHwcyllCMvL27qtw1+CEKtuya5ITI1oRWUasTSdBWin3XBQePAWEW7dp7
qoiP1osWiicyNTZiYXNlIDE1M2Jhc2VbMF0vKDMwLHtcWzEkKV0vXDIkPSp9L1wsKXstfSslKw==

हेक्स डंप (आउटपुट से xxd):

0000000: 278c 350d 3c24 a77d 7b5a f62a f3c0 8543  '.5.<$.}{Z.*...C
0000010: 29b9 d9d2 0dcc 2dfa a1ba 2924 12ca 0866  ).....-...)$...f
0000020: 591e ad52 fada 73ef d7b8 fc97 4361 2d9c  Y..R..s.....Ca-.
0000030: 7489 66f8 b500 459d 70c2 9272 1838 5a81  t.f...E.p..r.8Z.
0000040: 17e6 35a2 568c eb7c c992 2220 56a2 ffb7  ..5.V..|.." V...
0000050: 0c01 e2ae 7024 f266 9918 9826 ffee 8806  ....p$.f...&....
0000060: 4707 d1d5 d574 cfdc 043a 8205 a347 6e75  G....t...:...Gnu
0000070: ece9 1119 9c59 c27b 5f50 9471 4b15 cf5e  .....Y.{_P.qK..^
0000080: d272 61bb 4f64 9b4e 7a28 1452 0d8f 3ef2  .ra.Od.Nz(.R..>.
0000090: d725 bd8b b93d 8854 ccfd a7d6 848e 00ff  .%...=.T........
00000a0: 0baa a3a8 cf45 ecee 71f1 9083 5c5c be61  .....E..q...\\.a
00000b0: 2c89 dc53 fa32 8269 8bf7 1a1e 25bd c7cc  ,..S.2.i....%...
00000c0: 7649 5436 aa9e 406f ed30 356b 934a 5442  vIT6..@o.05k.JTB
00000d0: 3cf9 0951 5c27 9b98 44b0 0fcd fc10 239b  <..Q\'..D.....#.
00000e0: 1428 7cce ac16 6bc7 f840 0bd3 0f21 224f  .(|...k..@...!"O
00000f0: 2804 0b3f 8754 dd8c b5e3 32ff 763a 20a0  (..?.T....2.v: .
0000100: 1c64 1b50 cd44 ca0f 12dc 0721 9984 3f06  .d.P.D.....!..?.
0000110: 842d 6b21 0937 52fa f17e cc8e 977a 2ec1  .-k!.7R..~...z..
0000120: 2f96 ea56 15d9 74a1 aa3c 58c7 4b4f ab41  /..V..t..<X.KO.A
0000130: f1d4 0d47 e082 dfc0 9081 9f57 f7e8 7249  ...G.......W..rI
0000140: 6af4 85e6 a883 694b 87ab a13a b308 c2c9  j.....iK...:....
0000150: 4298 9989 35e6 ee37 6ed7 1aa6 d617 ed4c  B...5..7n......L
0000160: f12b fd5b 5e04 e0aa 288b 31e7 dea8 fbf6  .+.[^...(.1.....
0000170: 5a19 18bf a298 e57b 2fe5 d9b9 d98b 867a  Z......{/......z
0000180: 2fe4 d9b2 a52a ca3e 0f7e 17f8 2458 b0f5  /....*.>.~..$X..
0000190: afe4 7017 df22 edb2 5a64 0681 239e 1f07  ..p.."..Zd..#...
00001a0: 3296 508c bcbd bbaa dc35 f821 0ab6 ec9a  2.P......5.!....
00001b0: e484 c8d6 8456 51ab 1349 d056 8a7d d705  .....VQ..I.V.}..
00001c0: 078f 0161 16ed da7b aa88 8fd6 8b16 8a27  ...a...{.......'
00001d0: 3235 3662 6173 6520 3135 3362 6173 655b  256base 153base[
00001e0: 305d 2f28 3330 2c7b 5c5b 3124 295d 2f5c  0]/(30,{\[1$)]/\
00001f0: 3224 3d2a 7d2f 5c2c 297b 2d7d 2b25 2b    2$=*}/\,){-}+%+

अधिकांश सर्वोत्तम समाधानों के रूप में, यह व्याकरण का विस्तार करने के लिए स्ट्रिंग विभाजन के साथ एक व्याकरण-आधारित दृष्टिकोण का उपयोग करता है। व्याकरण के 30 नियम हैं और एक लालची खोज द्वारा पाया गया था।


6

जावास्क्रिप्ट, 854 वर्ण ("पठनीयता के लिए नई कड़ियाँ")

var a="We're no strangers to love:You know the rules and so do I:A full commitment's what I'm thinking of:You wouldn't get this from any other guy:I just wanna tell you how I'm feeling:Gotta make you understand:Never gonna give you up:Never gonna let you down:Never gonna run around and desert you:Never gonna make you cry:Never gonna say goodbye:Never gonna tell a lie and hurt you:We've known each other for so long:Your heart's been aching but:You're too shy to say it:Inside we both know what's been going on:We know the game and we're gonna play it:And if you ask me how I'm feeling:Don't tell me you're too blind to see:6:7:8:9:10:11:6:7:8:9:10:11:(Ooh, give you up):31:(Ooh):Never gonna give, never gonna give:(Give you up):33:34:35:12:13:14:15:16:4:5:6:7:8:9:10:11:6:7:8:9:10:11:6:7:8:9:10:11".split(':'),
i=0,x;
while(x=a[i++])console.log(a[x]||x)


5

Naive sh / echo - 810 बाइट्स

#!/bin/sh
A="ever gonna"
D=" you"
B="ive$D up"
C="$A give"
echo "We're no strangers to love
You know the rules and so do I
A full commitment's what I'm thinking of
You wouldn't get this from any other guy
I just wanna tell$D how I'm feeling
Gotta make$D understand"
f(){
echo "
N$C$D up
N$A let$D down
N$A run around and desert$D
N$A make$D cry
N$A say goodbye
N$A tell a lie and hurt$D"
}
f
g(){
echo "
We've known each other for so long
Your heart's been aching but
You're too shy to say it
Inside we both know what's been going on
We know the game and we're gonna play it"
}
g
echo "And if$D ask me how I'm feeling
Don't tell me$D're too blind to see"
f
f
echo "
(Ooh, g$B)
(Ooh, g$B)
(Ooh)
N$C, n$C
(G$B)
(Ooh)
N$C, n$C
(G$B)"
g
echo
echo "I just wanna tell$D how I'm feeling
Gotta make$D understand"
f
f
f

5

जावास्क्रिप्ट 789 वर्ण

मेरी जावास्क्रिप्ट ("डॉक्यूमेंट.राइट ()" के साथ प्रिंट):

eval('f="18927993248999".replace(/1/g,"Were no strangers to love4You6тe rules and so do I4A full commitmentжs what Iжm тinking of4You wouldnжt get тis from any oтer guy4ю8/g,"I just wanna tellйhow Iжm feeling4Gotta makeйunderstand44ю9/g,"Neverгgiveйupвгletйdownвгrun around and desert youвгmakeйcryвгsay goodbyeвгtell a lie and hurt you44ю2/g,"Weжve known each oтer for so long4Your heartжs been aching but4Youжre too shy to say it4Inside we boт6whatжs been going on4We6тe game and weжreгplay it4ю7/g,"And ifйask me how Iжm feeling4Donжt tell me youжre too blind to see44ю3/g,"ц, gяц, gяц)вгgive, neverгgive4(Gяц)вгgive, neverгgive4(Gя4 ют/g,"thюя/g,"iveйup)4юй/g," you юв/g,"4Neverю4/g,"</br>юц/g,"(Oohю6/g," know юг/g," gonna юж/g,"\'");document.write(f);'.replace(/ю/g,"\").replace(/"))

मैंने कुछ सामान्य शब्दों और वाक्यांशों को सिरिलिक अक्षरों के साथ बदल दिया और फिर उन्हें प्रतिस्थापित () फ़ंक्शन के साथ वापस बदल दिया।

गीत को छोटा करने के बाद, मैंने अपने कार्यक्रम को उसी विधि से छोटा किया, और कोड को निष्कासित () के साथ निष्पादित किया।


5

रूबी, 741 678 657 627 619 बाइट्स

_="12/3400/5/3/200"
28.times{|i|_.gsub!'120=34589%#^*&@!/?><[]|{}:;~'[i],"We? n{strangers] love/>& the rules!s{d{I/A full commitment's}hat:thinking of/>}ouldn't~et this from;ny<guy/+I just}anna [*@/Gotta make* understand/0+=g#=let* down=run;round!desert*=make* cry=say~oodbye=[; lie!hurt*/+/N^+We've&n each<for s{long/>r heart's been;ching but/>?]{shy] say it/Inside}e both&}hat's been~oing on/We& the~ame!we?|play it/+And if*;sk me@/Don't [ me*?]{blind] see/+8899+(Ooh,~#)/+(Ooh)/N%, n%/(G#)/+^give+ive* up+ever|+ you+ know+ how:feeling+;nd +\n+'re+You+ other +tell+ to+~onna +o + w+ I'm + a+ g".split('+')[i]}
puts _

यह एक पुनरावृत्त प्रतीक विस्तार है। पहली दलील में स्ट्रिंग के 28 अक्षरों में से प्रत्येक के लिए gsub!, उस वर्ण की सभी आवृत्तियों _को दूसरी स्ट्रिंग के उपयुक्त खंड ( +वर्णों द्वारा अलग ) द्वारा प्रतिस्थापित किया जाता है ।


5

पायथन, 573 वर्ण

मेरा sedसमाधान आगे नहीं बढ़ेगा, और यह कई लोगों द्वारा पीटा गया था, इसलिए मैं एक नए दृष्टिकोण के लिए गया था।
दुर्भाग्य से, यह केवल 2nd 3rd स्थान के लिए पर्याप्त है (अब तक) - एड एच। अभी भी मुझसे बहुत आगे है

x="WM n=straQRsF=loB7Erules3s=d=IXA full commitSnt'sKhatVFhink;of7KTldn'tUetFhis fromLny9guy.-AC if?Lsk S1Don'tFP S?<bliCF=see//X82)8002)-.//"
i=45
for r in"XXW'BHn each9for s=loQ7r hear6ach;but7<shyF=s@InsideKe bothHKha6go;onXWEgaS3weM:pl@|XI justKannaFP?1Gotta >uCRstaC/|X4g24let? down4runLrTC3desRt?4>cry4sayUoodbye4tPL lie3hurt?|2)J)4giB, n5giBX(G| howV feeliQX|iB? up|LC |XN5|eBr:|t's been |XYT|J,U| othR |Uonna |iQ |MFo=|o |make? | yT|ay itX|A|ve|nd|D|HFhe | t|G| know|I|X(Ooh| w| a|'re|N|O|ell|ng|er|me|ou| g| I'm|We|\n".split("|"):x=x.replace(chr(i),r);i+=1
print x

नोट :

  1. मुख्य विचार को एड एच से उधार लिया गया था - प्रत्येक प्रतिस्थापन नियम में उन्हें निर्दिष्ट करने के बजाय प्रतिस्थापन के लिए लगातार पात्रों का उपयोग करना।

  2. पात्रों के साथ व्यवहार करने का मेरा तरीका जो गीत में मौजूद है, वह एड से अलग है - मैं बस प्रत्येक को खुद में अनुवाद करना सुनिश्चित करता हूं (और अगर यह हमेशा किसी चीज का पालन करता है, तो इसे भी जोड़ें, जो केवल इसके लिए काम करता है W)।

  3. कोड एक स्क्रिप्ट द्वारा उत्पन्न होता है जो अच्छे अनुवादों के लिए दिखता है। सबसे पहले, मैंने एक लालची एल्गोरिथ्म का उपयोग किया, जो बस वही लेता है जो सबसे अच्छी कमी देता है। फिर मैंने पाया है कि इसे लंबे समय तक तार के रूप में पसंद करने के लिए इसे छोटा करना बेहतर बनाता है। मुझे लगता है कि यह अभी भी इष्टतम नहीं है।


मैंने भी एक लालची एल्गोरिथ्म के माध्यम से स्ट्रिंग उत्पन्न करने की कोशिश की, जो 11 वर्णों को जोड़कर समाप्त हो गया। मैंने देखा है कि सभी अजगर समाधान कमोबेश इसी तरह के इष्टतम रूप में परिवर्तित होते हैं। मुझे लगता है कि यह उनके 'इसके लिए केवल एक स्पष्ट तरीका' है।
ऑप्टिमस

अतीत में, मैंने कभी-कभी ऐसा पाया है कि इस तरह की लिपियों को संशोधित करने के लिए ज्यादातर-लालची एल्गोरिथ्म का उपयोग करने के लिए काम करता है, इसके बजाय थोड़ा ढलान जोड़ने के लिए बेतरतीब ढंग से दूसरे या तीसरे स्थान के चुनाव की अनुमति देता है, और फिर इसे बार-बार चला रहा है। सुधार की तलाश में। (या यदि मैं पर्याप्त प्रेरित हूं, तो हेमस्टिक खोज को सिम्युलेटेड एनीलिंग की तरह कोडित करें।)
ब्रेडबॉक्स

मैंने एक सरल सिमुलेशन चलाया, जिसमें पैटर्न और लंबाई की संख्या के लिए चर गुणांकों के साथ एक अभिव्यक्ति पर अपनी लालची एल्गोरिथ्म रैंकिंग को संशोधित किया गया था, केवल लगभग 100000 सिमुलेशन (सबसे बड़ा पैटर्न ढूंढना बहुत धीमा है) गुणांक के लिए यादृच्छिक मूल्यों के साथ (और -100 के बीच) और 100 गॉसियन डिस्ट्रीब्यूशन विथ ज़ीरो), इसने एक जोड़ी पाई जिसके लिए मेरे मैन्युअल क्रंचेड स्ट्रिंग की तुलना में 15 कम चार्ट दिए गए जो मेरे समाधान को 590 चार्ट तक कम कर देता है। मुझे लगता है कि मैं यह देखने के लिए रात भर चलने दूंगा कि क्या इससे कुछ बेहतर होगा।
ऑप्टिमस

@ ओप्टिमस, मुझे लगता है कि पहले दो अनुवाद स्पष्ट हैं, और आप उन्हें हार्ड-कोड कर सकते हैं। यह मेरे खोज तर्क को काफी गति देता है। मेरा तर्क बहुत धीमी गति से है - ~ 30 सेकंड एक रन के लिए - तो यह सिमुलेशन के लिए उपयोगी नहीं है। मैं इसे ऑप्टिमाइज़ करने की कोशिश कर सकता हूं।
६’१२ पर बदसूरत

@ यूगोरेन मैंने अपने अनुकार कोड को अपने उत्तर में पोस्ट किया यह लगभग ~ 0.5 सेकंड प्रति रन में चलता है और हां मैं पहले से ही पहले 3-4 चरणों को हार्डकोड करता हूं जो इसे लगभग 30 चार्ट तक कम कर देता है, एक न्यूनतम प्राप्त करने के लिए प्रतीत नहीं हो सकता है, आप एक नज़र डालते हैं और कुछ सुझाते हैं।
ऑप्टिमस

5

गोल्फस्क्रिप्ट, 708 702 699 691 बाइट्स

"Never gonna ":g;
"I just wanna tell you how"" I'm feeling":i"
Gotta make you understand"++:j;
{n"give you up
let you down
run around and desert you
make you cry
say goodbye
tell a lie and hurt you"n/{n g@}%}:^;"

We've known each other for so long
Your heart's been aching but
You're too shy to say it
Inside we both know what's been going on
We know the game and we're gonna play it
":_;
"We're no strangers to love
You know the rules and so do I
A full commitment's what I'm thinking of
You wouldn't get this from any other guy
"j
^
_
"And if you ask me how"i"
Don't tell me you're too blind to see"
^^
n
n
"(Ooh, give you up)
"."(Ooh)
"g"give, never gonna give
(Give you up)"++.n\_
j
^^^

मुझे कुछ याद आ रहा है, लेकिन मुझे ब्लॉक का कोई कारण नहीं दिख रहा है। आप सिर्फ उदाहरण के लिए उपयोग नहीं कर सकते " I'm feeling":i;?
पीटर टेलर

@PeterTaylor आप पूरी तरह से सही हैं; ब्लॉक की जरूरत तभी पड़ती है जब मैं एक वैरिएबल को कई स्ट्रिंग्स असाइन करता हूं। आपका बहुत बहुत धन्यवाद! इसने 6 वर्णों को छीन लिया और मुझे एक और विचार दिया जिसे मैं आजमा सकता हूं।
क्रिस्टियन लुपस्कू

हाँ, यह काम किया! वैरिएबल को ब्लॉक असाइन करने के बजाय j, मैंने तीन कॉन्टेनेटेड स्ट्रिंग्स (हटाए गए {और }, लेकिन ++कॉन्टैकटेशन के लिए जोड़े गए ) को असाइन किया है । इसने मुझे iइनलाइन घोषित करने की अनुमति दी , जब मैं सामग्री की रचना कर रहा था j
क्रिस्टियन लुपस्क्यू

मुझे लगता है कि आप एक प्रमुख newline को खींचकर gऔर कोरस के लिए newlines के साथ एक स्ट्रिंग का उपयोग करके कुछ और बचा सकते हैंn/g*
पीटर टेलर

महान विचार! मैं gइसे बदल नहीं सका क्योंकि इसका उपयोग अंत की ओर भी किया जाता है (वास्तव में संभव है, लेकिन अंत में 1 और चार की लागत आएगी)। हालांकि, हर लाइन की शुरुआत में जी डालने के लिए विभाजित / गुना दृष्टिकोण एक महान चरित्र सेवर है।
क्रिस्टियन लुपस्कू

5

जावा, 858 बाइट्स

interface a{static void main(String[]A){String b="I just wanna tell you how I'm feeling\nGotta make you understand\n\n",B="Never gonna give you up\nNever gonna let you down\nNever gonna run around and desert you\nNever gonna make you cry\nNever gonna say goodbye\nNever gonna tell a lie and hurt you\n\n",c="We've known each other for so long\nYour heart's been aching but\nYou're too shy to say it\nInside we both know what's been going on\nWe know the game and we're gonna play it\n",C="(Ooh, give you up)\n",d="(Ooh)\nNever gonna give, never gonna give\n(Give you up)\n";System.out.print("We're no strangers to love\nYou know the rules and so do I\nA full commitment's what I'm thinking of\nYou wouldn't get this from any other guy\n"+b+B+c+"And if you ask me how I'm feeling\nDon't tell me you're too blind to see\n\n"+B+B+C+C+d+d+"\n"+c+"\n"+b+B+B+B);}}

वाह। मुझे सच में नहीं लगा कि मैं इस मुश्किल को कम कर सकता हूं।

मानव-पठनीय रूप में अनगुल्फेड :

interface a {
    static void main(String[] A) {
        String b = "I just wanna tell you how I'm feeling\n"+
                   "Gotta make you understand\n\n";

        String B = "Never gonna give you up\n"+
                   "Never gonna let you down\n"+
                   "Never gonna run around and desert you\n"+
                   "Never gonna make you cry\n"+
                   "Never gonna say goodbye\n"+
                   "Never gonna tell a lie and hurt you\n\n";

        String c = "We've known each other for so long\n"+
                   "Your heart's been aching but\n"+
                   "You're too shy to say it\n"+
                   "Inside we both know what's been going on\n"+
                   "We know the game and we're gonna play it\n";

        String C = "(Ooh, give you up)\n";

        String d = "(Ooh)\n"+
                   "Never gonna give, never gonna give\n"+
                   "(Give you up)\n";

        System.out.print(
            "We're no strangers to love\n"+
            "You know the rules and so do I\n"+
            "A full commitment's what I'm thinking of\n"+
            "You wouldn't get this from any other guy\n"+
            b+
            B+
            c+
            "And if you ask me how I'm feeling\n"+
            "Don't tell me you're too blind to see\n\n"+
            B+
            B+
            C+
            C+
            d+
            d+
            "\n"+
            c+
            "\n"+
            b+
            B+
            B+
            B
        );
    }
}

मैंने इसके साथ 14 उत्तर दिए हैं। क्या मैं वास्तव में जावा में गोल्फिंग में अच्छा हूं, या यह सिर्फ इसलिए है क्योंकि इस गीत के बोल आश्चर्यजनक रूप से आसान हैं?
दोरुखान

क्या आप स्ट्रिंग a = "1", b = "2" जैसे चर निर्दिष्ट नहीं कर सकते; ऊपर के रास्ते के बजाय? कुछ बाइट्स बचाता है: पी
मारियो इश

@MarDev मैंने गोल्फ कार्यक्रम में उस तरह के तार बनाए। हालाँकि, ऐसा करने से पठनीयता को चोट String foo; String bar;पहुँचती है, इसलिए मैंने उन्हें पसंद किया जब असहयोग किया गया था ।
डोरुकायहन

उन सभी "नेवर
गिव


4

जावास्क्रिप्ट, 1428 1451 883 * वर्ण

निश्चित रूप से सबसे छोटा समाधान नहीं है, लेकिन यहां यह जाता है।

d="(Give you up):(Ooh):(Ooh, give you up):A full commitment's what I'm thinking of:And if you ask me how I'm feeling:Don't tell me you're too blind to see:Gotta make you understand:I just wanna tell you how I'm feeling:Inside we both know what's been going on:Never gonna give you up:Never gonna give, never gonna give:Never gonna let you down:Never gonna make you cry:Never gonna run around and desert you:Never gonna say goodbye:Never gonna tell a lie and hurt you:We know the game and we're gonna play it:We're no strangers to love:We've know each other for so long:We've known each other for so long:You know the rules and so do I:You wouldn't get this from any other guy:Your heart's been aching but:You're too shy to say it:".split(/:/);"hk3l76o9bdcefojmn8g45o9bdcefo9bdcefo221a01a0oimn8go76o9bdcefo9bdcefo9bdcef".split("").map(function(i){return d[parseInt(i,25)]}).join("\n")

समाधान तर्क बहुत सरल है:

d="dictionary:of:uniqe:lines".split("/:/");
"012345".split("").map(function(i){return d[parseInt(i,25)]}).join("\n")

* बेशक अनोखे शब्दों के बजाय अनोखी लाइनें लेने पर समाधान बहुत कम हो जाता है।

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