बड़े भाई का हवाला देते हुए


16

टास्क: क्या आपका प्रोग्राम अनियमित रूप से रनटाइम पर निम्नलिखित दो उद्धरणों में से एक का चयन करता है और उस एक उद्धरण को प्रिंट करता है, जैसा कि दिखाया गया है।

1:

Under the spreading chestnut tree
I sold you and you sold me.
There lie they, and here lie we
Under the spreading chestnut tree.

2:

WAR IS PEACE.
FREEDOM IS SLAVERY.
IGNORANCE IS STRENGTH.

प्रतिबंध: शब्द spreading, chestnut, PEACE, FREEDOM, और STRENGTH चाहिए अपने कोड में दिखाई देते हैं। उपरोक्त दो उद्धरणों का कोई भी शब्द आपके कोड में एक से अधिक बार दिखाई नहीं दे सकता है ।

सबसे छोटा समाधान जीतता है।


1
ठीक है, मैंने पहली बार चुना। ईमानदार! xkcd.com/221
edc65


@ मार्टिनबटनर मज़ेदार नहीं है, लेकिन अधिक स्पष्ट नियम का सुझाव देने के लिए। पहली बार पढ़ने से मुझे लगा कि मैं एक यादृच्छिक चुन सकता हूं और फिर काम करना शुरू करूंगा।
edc65

@ edc65 आह, मैं देखता हूं, शब्दांकन अलग हुआ करता था।
मार्टिन एंडर

जवाबों:


3

PHP 179

Es1024 के जवाब से प्रेरित

<?=strtr(rand()%2?"0
I 1 232 1 me.
T5 they,35 we
0.
":"WAR4PEACE.
FREEDOM4SLAVERY.
IGNORANCE4STRENGTH.
",["Under the spreading chestnut tree",sold,you," and "," IS ","here lie"]);

4

पर्ल ( 191 184 अक्षर)

$_=$$&1?"0
I12321me6T4they,34we
06":"WAR5PEACE6FREEDOM5SLAVERY6IGNORANCE5STRENGTH6";s/\d/("Under the spreading chestnut tree"," sold ",you," and ","here lie "," IS ",".
")[$&]/ge;print

धन्यवाद @ core1024 इस गोल्फिंग पर सुझाव के लिए।


1
आप वास्तविक नई लाइनों के साथ 6 को बदल सकते हैं, उद्धरण को चारों ओर छोड़ सकते हैं "you"और $$&1एक यादृच्छिक जनरेटर के रूप में उपयोग कर सकते हैं :)
core1024

3

जावा, 338

मैं इसे 338 से नीचे नहीं पा सकता ...

class B{public static void main(String[]a){String b="Under the spreading chestnut tree",c="sold ",d="you ",e="and ",f="me.\nT",g="here lie ",h=".\n",i=" IS ";if(Math.random()>.5)System.out.print(b+"\nI "+c+d+e+d+c+f+g+"they, "+e+g+"we\n"+b+h);else System.out.print("WAR"+i+"PEACE"+h+"FREEDOM"+i+"SLAVERY"+h+"IGNORANCE"+i+"STRENGTH"+h);}}

बिट ungolfed:

class B{public static void main(String[]a){String b="Under the spreading chestnut tree",c="sold ",d="you ",e="and ",f="me.\nT",g="here lie ",h=".\n",i=" IS ";
if(Math.random()>.5)System.out.print(b+"\nI "+c+d+e+d+c+f+g+"they, "+e+g+"we\n"+b+h);
else System.out.print("WAR"+i+"PEACE"+h+"FREEDOM"+i+"SLAVERY"+h+"IGNORANCE"+i+"STRENGTH"+h);}}


लिंक के लिए धन्यवाद! कल कुछ उपयोगी के लिए खोज करते हैं।
CoolWilly

@ फ़ैनबाउट मैंने कुछ ट्रिक्स आज़माए हैं, लेकिन उन्होंने मदद नहीं की। ( java.io.PrintStream p=System.out, कुल 15 बाइट्स static<T>void p(T o){System.out.print(o);}जोड़े गए, 12 जोड़े गए)। कोई अन्य सुझाव?
CoolWilly

मुख्य घोषणा के बजाय स्टेटिक ब्लॉक का उपयोग करें
फेबिनआउट

स्टैटिक ब्लॉक * 310 CHAR *: वर्ग B {स्थैतिक {String b = "फैलते हुए चेस्टनट ट्री के अंतर्गत", c ​​= "बेचे", d = "आप", e = "और", f = "me। \ NT"। g = "यहाँ झूठ", h = "। \ n", i = "IS"; अगर (Math.random ()> 5) System.out.print (b + "\ n" + c + d + e + d + c + f + g + "वे," + e + g + "हम \ n" + b + h) आदि; System.out.print. "(WAR" + i + "PEACE" + h + "FREEDOM" + i + SLAVERY "+ h +" IGNORANCE "+ i +" STRENGTH "+ h);}}}
Fabinout

2

जावास्क्रिप्ट 229 254 256

new Date@Doorknob द्वारा सुझाए अनुसार 1 का उपयोग करते हुए संपादित करें - अभी भी मुझे स्पष्ट नहीं है कि कैसे जावास्क्रिप्ट तार या पूर्णांक या जो कुछ भी करने के लिए मॉर्फ करता है

2 सरलीकृत संपादित करें । बहुत।

t=(new Date&1
   ?'0WAR0 IS 0PEACE0.\n0FREEDOM020SLAVERY040IGNORANCE020STRENGTH.'
   :'0Under the spreading chestnut tree0\nI 0sold 0you 0and 04030me.\nT0here lie 0they, 05090we\n010.'
  ).split(0);
for(i=o='';j=t[++i];)o+=t[j|0||i];alert(o)

new Dateतुलना में कम हैDate.now()
दरवाज़े

1
Dateरूपांतरण की व्याख्या करने के लिए : > जावास्क्रिप्ट तिथि एक समय मान पर आधारित है जो 01 जनवरी, 1970 यूटीसी की आधी रात के बाद से मिलीसेकंड है। एक दिन में 86,400,000 मिलीसेकंड होता है। 01 जनवरी, 1970 यूटीसी के सापेक्ष जावास्क्रिप्ट तिथि ऑब्जेक्ट रेंज -100,000,000 दिन से 100,000,000 दिन है। , जब आप &इसे स्वचालित रूप से एक करने के लिए डाली है Number। तो आप मूल रूप से यादृच्छिक विकल्प बना रहे हैं, भले ही यह 1970-01-01T00:00:00.000Zयुग के बाद से एक समान या विषम मिलीसेकंड हो ।
बॉब

@Doorknob आपको लगता है कि छोटे यादृच्छिक संख्या जनरेटर में के लिए एक संक्षिप्त लेख लिख सकता है codegolf.stackexchange.com/questions/2682/... अभी तक यह वहाँ नहीं देखा है और मुझे लगता है कि यह बहुत उपयोगी हो सकता है।
दोष 23


2

C # (268) (260) (256)

यह Dump()विधि का उपयोग करके LINQPad में निष्पादन योग्य है :

string b="Under the spreading chestnut tree",c="sold ",d="you ",e="and ",f="me.\nT",g="here lie ",h=" IS ";if(new Random().Next(9)>4)(b+"\nI "+c+d+e+d+c+f+g+"they, "+e+g+"we\n"+b+".").Dump();else("WAR"+h+"PEACE.\nFREEDOM"+h+"SLAVERY.\nIGNORANCE"+h+"STRENGTH.").Dump();

Ungolfed:

string b="Under the spreading chestnut tree",c="sold ",d="you ",e="and ",f="me.\nT",g="here lie ",h=" IS ";

if(new Random().Next(9)>4)
    (b+"\nI "+c+d+e+d+c+f+g+"they, "+e+g+"we\n"+b+".").Dump();
else
    ("WAR"+h+"PEACE.\nFREEDOM"+h+"SLAVERY.\nIGNORANCE"+h+"STRENGTH.").Dump();

अपडेट करें:

टर्नरी ऑपरेटर और 1 अतिरिक्त चर का उपयोग करते हुए, मैं एक और 6 अक्षर काटने में सक्षम था:

string a,b="Under the spreading chestnut tree",c="sold ",d="you ",e="and ",f="me.\nT",g="here lie ",h=" IS ";a=new Random().Next(9)>4?(b+"\nI "+c+d+e+d+c+f+g+"they, "+e+g+"we\n"+b+"."):("WAR"+h+"PEACE.\nFREEDOM"+h+"SLAVERY.\nIGNORANCE"+h+"STRENGTH.");a.Dump();

Ungolfed:

string a,b="Under the spreading chestnut tree",c="sold ",d="you ",e="and ",f="me.\nT",g="here lie ",h=" IS ";

a=new Random().Next(9)>4 ?
    (b+"\nI "+c+d+e+d+c+f+g+"they, "+e+g+"we\n"+b+".") :
    ("WAR"+h+"PEACE.\nFREEDOM"+h+"SLAVERY.\nIGNORANCE"+h+"STRENGTH.");

a.Dump();

Update2:

tsavinhoमैं थकाऊ ऑपरेशन के चारों ओर ब्रेसिज़ लगाकर 4 और चरों को बचाने में सक्षम था , इसके सरल सुझाव के लिए धन्यवाद :

string b="Under the spreading chestnut tree",c="sold ",d="you ",e="and ",f="me.\nT",g="here lie ",h=" IS ";(new Random().Next(9)>4?(b+"\nI "+c+d+e+d+c+f+g+"they, "+e+g+"we\n"+b+"."):("WAR"+h+"PEACE.\nFREEDOM"+h+"SLAVERY.\nIGNORANCE"+h+"STRENGTH.")).Dump();

Ungolfed:

string b="Under the spreading chestnut tree",c="sold ",d="you ",e="and ",f="me.\nT",g="here lie ",h=" IS ";
(new Random().Next(9)>4?
    (b+"\nI "+c+d+e+d+c+f+g+"they, "+e+g+"we\n"+b+"."):
    ("WAR"+h+"PEACE.\nFREEDOM"+h+"SLAVERY.\nIGNORANCE"+h+"STRENGTH.")
).Dump();

1
आप ए को हटाकर और इसे इस तरह से ब्रैकेट के साथ बदलकर 4 और अक्षर बचा सकते हैं: स्ट्रिंग बी = "स्प्रेडिंग चेस्टनट ट्री के तहत", सी = "बेचे", डी = "आप", ई = "और", एफ = "मुझे । \ nT ", g =" यहाँ झूठ ", h =" IS "; (नया रैंडम ()) अगला (9)> 4? (b +" \ n "+ c + d + e + d + c + f + g + "वे," + e + g + "हम \ n" + b + "।) :(" WAR "+ h +" PEACE। \ nFREEDOM "+ h +" SLAVERY। \ n हस्ताक्षर (+ h + "STRENGTH।)))। डंप ();
tsavinho 14

1

पायथन 3 - 228

for x in[b"AB:87078@624>049BA6",b"?;<61;=63;56"][id(id)%3-1]:print("and |FREEDOM|T|IGNORANCE|here lie |STRENGTH|.\n|you |sold |we|I | IS |PEACE|SLAVERY|they, |WAR|me|Under the spreading chestnut tree|\n".split("|")[x-48],end="")

थोड़ा अपराजित:

# id(id) returns an even number based on memory address of id
# id(id)%3-1 gives -1, 0 or 1
randomNumber = id(id)%3-1

# Word list
words = "and |FREEDOM|T|IGNORANCE|here lie |STRENGTH|.\n|you |sold |we|I | IS |PEACE|SLAVERY|they, |WAR|me|Under the spreading chestnut tree|\n".split("|")

# Byte Literals for Under the chestnut and WAR IS PEACE
# each byte correspond to the word's index in the word list
byteLiterals = [b"AB:87078@624>049BA6", b"?;<61;=63;56"]
choice = byteLiterals[randomNumber]

for x in choice: 
    print(words[x-48], end="") # Print each word out

1

पॉवरशेल 205

("{0}.`nI{1}{2}{3}{2}{1} me.`nT{4}they,{3} {4}we`n{0}."-f"Under the spreading chestnut tree"," sold"," you"," and","here lie "),("WAR","PEACE.`nFREEDOM","SLAVERY.`nIGNORANCE","STRENGTH."-join" IS ")|Random

-fपहले उद्धरण पर तार लगाने के लिए ऑपरेटर का उपयोग करता है , और दूसरा व्यक्ति इसमें शामिल होता है IS, इसके बाद यह उन 2 उद्धरणों के एक यादृच्छिक तत्व का चयन करता है और इसे प्रिंट करता है ...



1

जावास्क्रिप्ट / jQuery 396

var B={
U:"Under the spreading chestnut tree",
s:"sold ",
y:"you ",
l:"lie ",
a:"and ",
i:"IS ",
b:"</br>"
};
var A={
P:B.U+B.b+"I "+B.s+B.y+B.a+B.y+B.s+"me."+B.b
+"There "+B.l+"they, "+B.a+"here "+B.l+"we."+B.b+B.U,
Q:"WAR "+B.i+"PEACE."+B.b+"FREEDOM "+B.i+"SLAVERY."+B.b
+"IGNORANCE "+B.i+"STRENGTH."
};
$(function(){
var z=(Math.random()<0.5)?A.P:A.Q; 
$('#d').append(z);
});

1

T-SQL, 337 327

बस मज़े के लिए, मैंने टी-एसक्यूएल में एक और समाधान बनाया है, जो मेरे जावा 8 समाधान से एक बाइट से छोटा है:

DECLARE @b char(33)='Under the spreading chestnut tree',@c char(5)='sold',@d char(4)='you',@e char(4)='and',@f char(9)='here lie',@ char='
',@h char(4)=' IS'IF rand()>.5PRINT @b+@+'I '+@c+@d+@e+@d+@c+'me.'+@+'T'+@f+'they, '+@e+@f+'we'+@+@b+'.'ELSE PRINT'WAR'+@h+'PEACE.'+@+'FREEDOM'+@h+'SLAVERY.'+@+'IGNORANCE'+@h+'STRENGTH.'

charएस को बहुत लंबा घोषित करके , आप कुछ बाइट्स को बचाते हुए, एक 'स्वचालित' स्पेस जोड़ सकते हैं।

उपयोगकर्ता पेनुट्राइव द्वारा प्रस्तावित संपादन में कोड का उपयोग करना, आप वास्तव में 10 बाइट्स से दाढ़ी बना सकते हैं।


कैरिज रिटर्न के लिए वैरिएबल का उपयोग करना इसके लायक नहीं है। सिर्फ शाब्दिक का उपयोग करें।
मुक़ो

1

जावा स्क्रिप्ट (233)

Math.random()>0.5?(a="Under the spreading chestnut tree")+"\nI "+(s="sold")+(y=" you ")+(n="and")+y+s+" me.\nT"+(h="here ")+(l="lie ")+"they "+n+" "+h+l+"we\n"+a+".":["WAR","PEACE.\nFREEDOM","SLAVERY.\nIGNORANCE","STRENGTH."].join(" IS ")

अन्य उत्तरों को देखे बिना इसे लिखा। अभिव्यक्ति के रूप में असाइनमेंट का अच्छा उपयोग करता है।




0

सी (जीसीसी) , 307 289 271 270 बाइट्स

-37 बाइट्स सीलिंगकैट के लिए धन्यवाद

*y=" IS ";main(){int*r[]={"WAR",y,"PEACE.\nFREEDOM",y,"SLAVERY.\nIGNORANCE",y,"STRENGTH.",0,"Under the spreading chestnut tree","\nI"," sold ","you"," and ",r[11],r[10],"me.\n","T","here lie ","they,",r[12],r[17],"we\n",r[8],".",0},z=r;for(z=z/2&8;r[z];)printf(r[z++]);}

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

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