आश्वस्त करने वाले दृष्टांत


27

काफी कुछ लोग यहाँ शायद XKCD पाठकों के शौकीन हैं। इसलिए, मुझे लगता है कि मैं आप लोगों को कुछ ऐसा करने की चुनौती दूंगा जो मेगन आसानी से कर सकती है: एक ऐसी स्क्रिप्ट बनाएं जो हजारों आश्वस्त करने वाले दृष्टांतों को उत्पन्न करती है जो कंप्यूटर कभी नहीं कर सकते।

XKCD # 1263

आपकी स्क्रिप्ट

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

दृष्टान्त इस प्रकार हैं

  • इसके साथ आरंभ होता है 'Computers will never '
  • अगला, 16 अद्वितीय अंग्रेजी क्रियाओं में से एक जिसे आप अपने कार्यक्रम को अनुकूलित करने के लिए स्वतंत्र रूप से चुन सकते हैं, लेकिन इसमें शामिल होना चाहिएcode-golf और understand
  • अगला, 16 अद्वितीय अंग्रेजी संज्ञाओं में से एक, जो फिर से, आप अपने कार्यक्रम को अनुकूलित करने के लिए स्वतंत्र रूप से चुन सकते हैं, लेकिन इसमें शामिल होना चाहिएa salad और an octopus
  • अगला, 16 अद्वितीय अंग्रेजी खंडों में से एक जिसे आप अपने कार्यक्रम को अनुकूलित करने के लिए स्वतंत्र रूप से चुन सकते हैं, लेकिन इसमें शामिल होना चाहिएfor fun और after lunch
  • एक नई रेखा ( \nया समतुल्य) वर्ण के साथ समाप्त होता है

इसलिए, उदाहरण के लिए, यदि इनपुट है 2, तो एक वैध आउटपुट होगा

Computers will never code-golf a salad for lunch
Computers will never hug a tree in vain

कार्यक्रम का आकार बाइट्स में गिना जाता है, वर्ण नहीं (इसलिए कोई यूनिकोड जिबरिश नहीं)। मानक खामियों की अनुमति नहीं है।

यह मेरी पहली चुनौती है, इसलिए यदि मुझे कुछ स्पष्ट बदलाव करने चाहिए, तो कृपया टिप्पणी करें।

संपादित करें: मैं डिक्शनरी 'डिक्शनरी' को प्रोत्साहित करने के लिए बाइट काउंट से डिक्शनरी का आकार बदलने पर विचार कर रहा हूँ। मैं भविष्य के उत्तरों से देखूंगा कि क्या यह दूर से संभव है; यदि यह है, तो आप एक बोनस पर भरोसा कर सकते हैं।


4
आप जोड़ना चाह सकते हैं कि आकार बाइट्स में गिना जाता है , और मानक खामियों की अनुमति नहीं है।
10

क्या हमें शेष 14 क्रियाओं / संज्ञाओं / स्वयं को खंड चुनने की आवश्यकता है?
ऑप्टिमाइज़र

@ ऑप्टिमाइज़र "... जिसे आप अपने कार्यक्रम को अनुकूलित करने के लिए स्वतंत्र रूप से चुन सकते हैं ..."
मार्टिन एंडर

5
मैं अल्ट्रा-शॉर्ट लेकिन पूरी तरह से अज्ञात शब्दों ( जैसे यहां ) का उपयोग करने से रोकने के लिए शब्दकोश आकार को घटाने का समर्थन करता हूं ।
फाल्को

2
@ मैट्सजॉय: बाइट्स की गिनती डिफ़ॉल्ट है। मानक कमियां होने की बात यह है कि उनका उल्लेख करना आवश्यक नहीं है।
डेनिस

जवाबों:


6

CJam, 238 232 (या 209) बाइट्स

ri{'C"!fmQ$h/q6fW*LC*hBd11(kA>.TfqJ0++#<>A]XThJkY b~os;vMg_D-}zYX%_,PozNxe5_8`}$H;2IUZ]&$c+m~HJ*|!n\A^:W-*O\"V-/8Kg ,_b(N#M/1Zh6*%\#t22'#|\"BJN=Za2_.R"32f-96b28b" -"'{,W%+f=)/(\[G/~["for ""after "]\m*\(a\"a "f{\+}+\]{mr0=}%S*N}*

यह पहले से ही पोस्ट किए गए उत्तर से कई क्रिया / संज्ञा / खंड का उपयोग करता है लेकिन कुछ नए भी हैं। मैंने कुछ अतिरिक्त बाइट्स को शेव करने के लिए पात्रों को आधार में बदल दिया है।

आधार परिवर्तित स्ट्रिंग को 24 अधिक बाइट्स ( 209 बाइट समाधान प्राप्त करने के लिए) को गोल्फ किया जा सकता है ; ध्यान दें कि आपको बाइट काउंट के बजाय वर्ण गणना पर विचार करना होगा क्योंकि सभी वर्णों में 255 से कम का ASCII कोड है, लेकिन साइट अभी भी यूनिकोड मानती है ) लेकिन मैं चाहता था कि स्ट्रिंग में केवल मुद्रण योग्य ASCII वर्ण शामिल हों।

बस संदर्भ के लिए, यहाँ 209 बाइट्स संस्करण है:

ri{'C"9óßÂ/ÃC eG?dcÅoø£gaC#Yä©Ï¡áq¶hm)ð­aâ%ØNo=óÏrbÁz´¾;q·u¬&ñ*±äô©@6W±U¹¥¢)·«Åx¶óV¬¬dhja¼ ª\"r[çË74Äãгî,ó3gÈ$AïL"32f-222b28b" -"'{,W%+f=)/(\[G/~["for ""after "]\m*\(a\"a "f{\+}+\]{mr0=}%S*N}*

STDIN से प्रिंट करने के लिए लाइनों की संख्या लेता है जैसे:

12

आउटपुट:

Computers will never code-golf an octopus for fun
Computers will never code-golf a bag after za
Computers will never eat a hem after tip
Computers will never eat an octopus for tip
Computers will never get a fax for you
Computers will never dry a gym for za
Computers will never get a guy for tip
Computers will never do a pen for fun
Computers will never see a bar after you
Computers will never tax a pen for ex
Computers will never get a hem for lunch
Computers will never win a pen for ex

इसे यहाँ ऑनलाइन आज़माएँ


19

यहाँ एक अलग दृष्टिकोण है:

पायथन, 368 308 297 बाइट्स

EDIT, मैंने वास्तव में इस बार इसे गोल्फ किया। 60 अक्षरों से मुंडा।

from random import*
from en import*
C=choice
v=["code-golf","understand","go","do"]
n=["salad","octopus","fun","lunch"]
for f,l in("verbs",v),("nouns",n):exec"l.append(str(C(wordnet.all_"+f+"()))[:-4]);"*12
exec'print"Computers will never",C(v),noun.article(C(n)),C(("for","after")),C(n);'*input()

यहाँ गोल्फ-चाल है जिस पर मुझे सबसे अधिक गर्व है:

for f,l in("all_verbs",v),("all_nouns",n):

मुझे पता भी नहीं था कि अजगर ऐसा कर सकता है! यहाँ एक सरल व्याख्या है:

for (a, b) in ((0, 1), (1, 2), (2, 3)):

a और b को 0 और 1, और फिर 1 और 2 को, और फिर 2 और 3 को असाइन करता है।


यह क्रिया / संज्ञा / खंड की एक सूची उत्पन्न करने के लिए NodeBox की भाषाविज्ञान पुस्तकालय का उपयोग करता है, और फिर उनके साथ यादृच्छिक रूप से चयन करता है।

यह पुस्तकालय यादृच्छिक शब्दों (इसलिए 368 बाइट्स) को उत्पन्न करने के लिए बहुत अच्छा नहीं है, लेकिन इस दृष्टिकोण के बारे में अच्छी बात यह है कि आपको इसके साथ कुछ बहुत ही यादृच्छिक आश्वस्त दृष्टांत मिलते हैं। यही है जो मेरा मतलब है।

Computers will never attempt a syria for synchronization.
Computers will never understand a salad for change of mind.
Computers will never brim an electric company for synchronization.
Computers will never pivot a dusk for fun.
Computers will never bedaze an electric company for genus osmerus.
Computers will never brim a salad for vital principle.
Computers will never attempt an erythroxylum after lunch.
Computers will never understand an uuq for water birch.
Computers will never brim an ictiobus for change of mind.
Computers will never brim an ictiobus for 17.
Computers will never lie in an octopus for change of mind.
Computers will never happen upon a toothpowder for water birch.
Computers will never typeset an electric company for change of mind.
Computers will never brim a french oceania after lunch.
Computers will never bring out an ictiobus for glossodia.
Computers will never bedazzle an animal fancier for ash cake.
Computers will never attempt a dusk for genus osmerus.
Computers will never understand an animal fancier for genus osmerus.
Computers will never accredit a prickly pear cactus for 17.
Computers will never typeset an erythroxylum for water birch.

लेकिन हे, मुझे नहीं लगता कि किसी और के कार्यक्रम में यह कहा जाएगा कि: "कंप्यूटर कभी भी एक केक के लिए एक पशु कट्टरपंथी को परेशान नहीं करेगा।"

यहाँ एक ungolfed संस्करण (574 बाइट्स) है:

import random
import en

v = ["code-golf", "understand"]#list of verbs
n = ["a salad", "an octopus"]#list of nouns
c = ["for fun", "after lunch"]#list of clauses
for i in range(14):
    v.append(str(random.choice(en.wordnet.all_verbs()))[:-4])
    n.append(en.noun.article(str(random.choice(en.wordnet.all_nouns()))[:-4]))
    c.append("for "+str(random.choice(en.wordnet.all_verbs()))[:-4])

N=input("Enter the number of reassuring phrases you want: ")
for i in range(N):
    print "Computers will never"+' '+random.choice(v)+' '+random.choice(n)+' '+random.choice(c )+'.' 

और अंत में, लेकिन निश्चित रूप से कम से कम नहीं, यहां मेरे कुछ पसंदीदा आश्वस्त दृष्टांत हैं, जो मुझे लगता है कि अगले 10-15 वर्षों में वास्तव में लोकप्रिय कैच-वाक्यांश बन जाएंगे।

Computers will never move around a methenamine for godwin austen.
Computers will never conk an adzuki bean for bitterwood tree.
Computers will never jaywalk a cross-dresser for fun.
Computers will never hyperbolize an accessory after the fact for norfolk island pine.
Computers will never dissolve a salad for earth wax.
Computers will never acetylise an incontrovertibility for dictatorship.
Computers will never reciprocate a strizostedion vitreum glaucum for commelinaceae.
Computers will never goose an action replay for star chamber.
Computers will never veto a bottom lurkers for jackboot.
Computers will never reciprocate a visual cortex for oleaginousness.
Computers will never baptise a special relativity after lunch.
Computers will never understand a gipsywort for citrus tangelo.
Computers will never get it a brand-name drug for electronic computer.
Computers will never deforest a paperboy after lunch.
Computers will never bundle up a nazi for repurchase.
Computers will never elapse a bernhard riemann for counterproposal.

और मेरा व्यक्तिगत पसंदीदा:

Computers will never romanticise a cockatoo parrot for cross-fertilization.

6
मैं निश्चित रूप से यह आश्वस्त करता हूं कि कंप्यूटर कभी भी पुनर्खरीद के लिए नाज़ी नहीं करेगा ...
Sanchises

एक दांतेदार कंघी या अभी तक कुछ भी नहीं के साथ इस पर चला गया है, लेकिन जब तक मैं गलत नहीं from random import choice as Cहो सकता हैfrom random import*;C=choice
भूमिगत

दो बार भी आपके पास for i in ' '*(something)इतना है कि आप दो बाइट्स के बीच की जगह को हटाने से तुच्छता से बचा सकते हैं inऔर' '
अंडरग्राउंडमोरल

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

6

जावास्क्रिप्ट ईएस 6, 331 336 बाइट्स

n=prompt(a='')
r=s=>s+Math.random()*16>>0
p=q=>'OctopusSaladCutCueBatJamKidPenDogFanHemDotTaxSowDyeDigCode-golfUnderstandLunchFunMeYouUsItAdsPaZaMenTwoIceJamWarRumWax'.match(/[A-Z][^A-Z]+/g)[q].toLowerCase()
while(n-->0)y=r(0),z=r(18),a+=`Computers will never ${p(r(2))} a${y?'':'n'} ${p(y)} ${z<18?'afte':'fo'}r ${p(z)}
`
alert(a)

मैंने उन शब्दों को चुना जो सूची को छोटा करने के लिए क्रिया और संज्ञा दोनों के रूप में काम करते हैं, लेकिन मुझे बताएं कि क्या इसकी अनुमति नहीं है। स्टैक स्निपेट्स (ईएस 5 का उपयोग करने के लिए कोड को प्रारूपित किया गया है) या http://jsfiddle.net/5eq4knp3/2/ पर इसका उपयोग करके ऊपर देखें । यहाँ एक उदाहरण आउटपुट है:

Computers will never hem a cut for ads
Computers will never dot a pen after lunch
Computers will never code-golf a bat for free
Computers will never sow a dog for me
Computers will never cut an octopus for fun

पृथ्वी पर क्या है एक za ?!
बीटा डेके

3
पिज़्ज़ा के लिए @BetaDecay स्लैंग।
निंजाबियरनोक

1
@MarkGabriel यह एक ऐसा फ़ंक्शन है जो sसूची में भाषण के अन्य भागों को पिछले करने के लिए ऑफसेट के साथ 0 और 16 के बीच एक यादृच्छिक संख्या देता है । दो टिल्ड बिटवाइज़ नहीं ऑपरेटर हैं, और वे सिर्फ एक छोटे तरीके से काम करते हैं Math.floor()
NinjaBearMonkey

1
@MarkGabriel यह है कि ECMAScript 6 कार्यों का प्रतिनिधित्व करता है। r=s=>12जैसा है function r(s){return 12}, केवल छोटा है। इसके अलावा पर दस्तावेज़ देख सकेंगे MDN
निंजाबियरनॉकी

1
@MarkGabriel उत्तरोत्तर गहराई से उत्तर के लिए, SO का व्हाट्सऐप देखें ~~ ("डबल टिल्ड") जावास्क्रिप्ट में क्या करें? और जावास्क्रिप्ट में F = a => का क्या अर्थ है? ~~एक की तरह है Math.floor(लेकिन नकारात्मक संख्याओं के लिए अलग तरह से व्यवहार करता है), और =>एक बाउंड के साथ ईएस 6-शैली फ़ंक्शन परिभाषा है this
13

5

अजगर - 390 385 383

from pylab import*
S=str.split
n=input()
while n:n-=1;i,j,k=randint(0,16,3);print"Computers will never",S("buy cut dry eat fax get pay rob see sue tax tow wax win code-golf understand")[i],"a"+"n"*(j<1),S("octopus salad bag bar bee bow boy bra dad fax gym guy hat man mom pet")[j],"for "*(k>2)+S("after lunch,naked,ever,fun,me,you,us,tip,gas,cash,air,oil,beer,love,food,dope",",")[k]

यादृच्छिक उदाहरण आउटपुट:

Computers will never pay an octopus for oil
Computers will never cut a bra for beer
Computers will never eat a bee for us
Computers will never rob a pet for you
Computers will never tax a pet for tip
Computers will never buy a salad for cash
Computers will never sue a boy naked
Computers will never see a bar for you
Computers will never wax a bra for beer
Computers will never sue an octopus for us

उम ... आयन कोई क्रिया नहीं है।
जॉन ड्वोरक

@JDDvorak: Oooops ... इसे ठीक किया!
फाल्को

2
छोटी क्रिया का उपयोग क्यों नहीं करते? कहो, सीना ...
जॉन ड्वोरक

@JDDvorak: हाँ, मैंने इसे बदल दिया है। हालाँकि, मुझे यकीन नहीं है कि मैं सामग्री को कितना आगे बढ़ाऊंगा, क्योंकि बहुत से छोटे शब्द भी हैं जिनका उपयोग कोई भी कर सकता है। लेकिन नतीजा उबाऊ होगा।
फ़ाल्को

1
एक सूची में '+ + ...' के साथ-साथ क्रियाविशेषण (नग्न) दोनों को शामिल करने के लिए अच्छा स्पर्श। यह वही है जो मैं उम्मीद कर रहा था - मुझे यह बहुत आश्वस्त लगता है कि मेरा कंप्यूटर कभी भी अवांछित नहीं होगा।
Sanchises

2

पर्ल - 366

@w="Code-golfUnderstandBeDoTieSeeSawEatCutCapSitSetHateZapSipLoveSaladOctopusSeaBeeCatDogHatBatJobManLapCapRapMapDotAnt0fun1that1noon1work0good0sure0reason0nothing0you1you1lunch1all0me0nowToday1me"=~s/\d/("For ","After ")[$&]/reg=~/([A-Z][^A-Z]+)/g;print"Computers will never ".lc"$w[rand 16] a".$w[16+rand 16]=~s/^[AO]?/(n)[!$&]." $&"/re." $w[32+rand 16]
"for 1..<>

यहाँ एक परीक्षण है:

$ perl ./parables.pl <<<3
Computers will never do an ant after noon
Computers will never do a lap after all
Computers will never love an octopus for sure

1

CJam, 353 317 301 बाइट्स

मैं फाल्को की शब्द सूची का उपयोग निष्पक्षता के लिए कर रहा हूं, ताकि गोल्फिंग में एकमात्र अंतर भाषाओं के कारण हो और न कि सामग्री के कारण (मैं शब्द सूची को बदल सकता हूं अगर लोग सामग्री को गोल्फ करना शुरू कर दें)।

"Computers will never ""buy
cut
dry
eat
fax
get
pay
rob
see
sue
tax
tow
wax
win
code-golf
understand"N/[" an octopus"" a ""salad
bag
bar
bee
bow
boy
bra
dad
fax
gym
guy
hat
man
mom
pet"{N/\f{\+}~]}:F~S["after lunch""naked""ever""for ""fun
me
you
us
tip
gas
cash
air
oil
beer
love
food
dope"Fm*m*m*mr0=

आप एन नंबर की छपाई के लिए इनपुट नहीं पढ़ रहे हैं।
ऑप्टिमाइज़र

@ ओप्टिमाइज़र ओह, मैंने पूरी तरह से अनदेखी की है। एक सेकंड में ठीक करना।
मार्टिन एंडर

0

नेटलोगो, 396

मैंने फाल्को की शब्द सूची का भी इस्तेमाल किया, जिसमें दो अपवाद हैं (जो कार्यक्रम की लंबाई नहीं बदलते हैं)।

to f let a["after lunch""ever""alone"]type(word"Computers will never "one-of["buy""cut""dry""eat""fax""get""pay""rob""see""sue""tax""tow""wax""win""code-golf""understand"]" a"one-of["n ocotpus"" salad"" bag"" bar"" bee"" bow"" boy"" bun"" dad"" fax"" gym"" guy"" hat"" man"" mom"" pet"]" "one-of fput word"for "one-of["fun""me""you""us""tip""gas""cash""air""oil""beer""love""food""dope"]a"\n")end

आप "प्रोग्राम" को कैसे परिभाषित करते हैं, इस पर निर्भर करते हुए, आप पहले पांच और अंतिम तीन अक्षरों को हटा सकते हैं, इस प्रकार 388 का स्कोर।

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