वह बहुत सारे बंदर हैं


35

अनंत बंदर प्रमेय कहा गया है कि, अनंत समय दिया, एक मशीन यादृच्छिक पात्रों में से एक अंतहीन स्ट्रीम भेजना हमेशा किसी भी पाठ लिखें होगा।

यह एक चुनौती के लिए एक महान विचार की तरह मुझे लगता है।

प्रक्रिया

एक स्ट्रिंग A को बंदर-औंस करने के लिए, निम्नलिखित कदम उठाए जाने चाहिए:

  1. एक खाली स्ट्रिंग लें। हम इस तार को बी कहेंगे।
  2. एक समान रूप से यादृच्छिक प्रिंट करने योग्य ASCII वर्ण (रेंज में पात्रों उठाओ 0x20करने के लिए 0x7E) और बी करने के लिए कि चरित्र को जोड़ने
  3. यदि A, B का पर्याय है, B हमारी बन्दर-युक्त स्ट्रिंग है। अन्यथा, चरण 2 को तब तक दोहराएं जब तक ए बी का एक विकल्प नहीं है।

यह प्रक्रिया केवल एक उदाहरण है, आसान तरीके आपकी भाषा के आधार पर मौजूद हो सकते हैं। आपको इस पद्धति का ठीक से पालन करने की आवश्यकता नहीं है, जब तक कि आउटपुट का समान वितरण प्राप्त नहीं हो जाता है।

चुनौती

एक प्रोग्राम या फ़ंक्शन लिखें, जो किसी भी उचित प्रारूप में गैर-रिक्त स्ट्रिंग दिया जाता है, उस स्ट्रिंग का एक बंदर-ized संस्करण देता है।

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

उदाहरण

दुर्भाग्य से, इस तरह के यादृच्छिक प्रकृति और बड़े आउटपुट के कारण इस प्रश्न के लिए उदाहरण तैयार करना कठिन है।

हालाँकि, मैं इनपुट के लिए एक उदाहरणhi हस्तिबिन पर दे सकता हूं।

स्कोरिंग

चूंकि यह , सबसे कम बाइट्स के साथ सबमिशन जीत जाता है।



11
क्या हमें उत्पादन के लिए वर्णित प्रक्रिया का पालन करने की आवश्यकता है? यदि हाँ, तो यह एक अप्रमाणित आवश्यकता है , जो समस्याग्रस्त है। यदि नहीं, तो हम Bगैर-ऋणात्मक संख्याओं nके यादृच्छिक वर्णों को प्रस्तुत करके सीधे उत्पन्न कर सकते हैं A। एकमात्र वास्तविक समस्या तब के वितरण को जानना है n(मैं एक ज्यामितीय वितरण पर शर्त लगाता हूं)
लुइस मेंडू

1
@ शीशमौरा आप नहीं कर सकते।
LyricLy

7
@LuisMendo मैंने इन पंक्तियों के साथ सोचा, और यह वास्तव में सीधे उपसर्ग उत्पन्न करना आसान नहीं है। इसमें लक्ष्य स्ट्रिंग शामिल नहीं हो सकती है, जिसमें सीमा को पार करना शामिल है जहां यह संलग्न स्ट्रिंग से मिलता है। और उपसर्ग लंबाई का वितरण न केवल लक्ष्य स्ट्रिंग की लंबाई पर निर्भर करता है, बल्कि इसकी संरचना भी।
xnor

10
नीचे दिए गए कुछ समाधान कंप्यूटर प्रोग्राम .W!}zH+ZOrd\kजैसे कि एक बंदर ने जो टाइप किया है, वह बहुत कुछ दिखता है।
जेपी स्टिग नील्सन

जवाबों:


12

सी, 192 बाइट्स

i;g(s,b,i,n,j)char*s,*b;{for(b[i+1]=0;b[n+j];++n)s[n]-b[n+j]&&(n=-1,++j);return n;}f(char*s){char*b=calloc(strlen(s),1);for(i=0;s[i];)i=(b[i]=putchar(rand()%95+32))-s[i]?i?g(s,b,i,0,0):0:i+1;}

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

यह अब गड़बड़ है, लेकिन कम से कम यह कोने के मामलों के लिए भी काम करता है ...


सी,  63   62  61 बाइट्स

एक बाइट को बचाने के लिए @ जोनाथन फ्रीच को धन्यवाद!

i;f(char*s){for(i=0;s[i=putchar(rand()%95+32)-s[i]?0:i+1];);}

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


मुझे बिलकुल भी अंदाजा नहीं है कि जब यह हिट होता है तो यह कैसे
रुकता है

1
@ATaco यह iबहुत बड़ा हो जाता है जब यह s[i]स्ट्रिंग के अशक्त टर्मिनेटर (वर्ण ०) को संदर्भित करता है।
22

ओह, इसलिए यादृच्छिक चरित्रों को उस पर फेंकने के बजाय जब तक कि गलती से बनाया नहीं जाता है, यह तब तक यादृच्छिक वर्णों को फेंकता है जब तक कि यह एस तक नहीं पहुंचता। होशियार।
22

जितना मुझे यह उत्तर पसंद है, मेरा मानना ​​है कि यह "एबी" जैसे एक इनपुट के लिए टूट जाता है जब रैंड बंदर "आब" टाइप करते हैं।
ज़ेनहॉय

मुझे लगता है कि आपको केएमपी जैसी कोई चीज चाहिए ताकि यह दृष्टिकोण मान्य हो सके। मान लें कि इनपुट स्ट्रिंग है ababcऔर बंदर !!abababcआपके प्रोग्राम को रोक देगा?
user202729

9

पायथन , 79 बाइट्स

f=lambda x,s='':x in s and s or f(x,s+chr(randint(32,126)))
from random import*

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

यह सैद्धांतिक रूप से ध्वनि है, लेकिन अजगर की पुनरावृत्ति सीमा के कारण जल्दी दुर्घटनाग्रस्त हो जाएगा (आप लंबे परिणाम प्राप्त करने के लिए उन्हें आगे सेट कर सकते हैं)

पायथन, 84 बाइट्स

from random import*
x,s=input(),''
while x not in s:s+=chr(randint(32,126))
print(s)

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

यह अपेक्षाकृत लंबे तार के लिए काम करना चाहिए, क्योंकि यह 5 बाइट्स की कीमत पर पुनरावृत्ति पर भरोसा नहीं करता है।


आप स्ट्रिंग रूपांतरण करने के लिए s+'randint(32,126)'
बैकटिक्स

1
@wnnmaw बैकडेटेड randint(32,126)संख्या की एक स्ट्रिंग का उत्पादन करेगा, न कि अस्ससी चार मैपिंग
उरिएल


8

GNU sed + coreutils, 75 + 1 (r फ्लैग) = 76 बाइट्स

h
:
s:.*:shuf -i32-126|dc -e?P:e
H;g
s:\n::2g
/^(.+)\n(.*)\1/{s::\2\1:;q}
b

इसे ऑनलाइन आज़माएं! (लंबाई 2 इनपुट के लिए एक उत्तर पाने के लिए बहुत सारे रन लगते हैं, क्योंकि अधिकांश समय आप अनुमत TIO गणना समय से बाहर निकलते हैं।)

स्पष्टीकरण:

h                                # copy input string 'A' to hold space
:                                # start loop
    s:.*:shuf -i32-126|dc -e?P:e # run shell script: shuf outputs a rnd permutation
                                 #of the set of numbers from 32 to 126, and '?P' in
                                 #dc converts the 1st read decimal to an ASCII char
    H;g                          # append char to hold space ('A\n.'), then copy
                                 #result back to pattern space
    s:\n::2g                     # remove all '\n's from pattern space, but first
    /^(.+)\n(.*)\1/{             # if pattern is 'A\n.*A' (A substring of B), then
        s::\2\1:;q               # search previous regex used and leave only '.*A',
                                 #then quit (implicit printing before exit)
    }
b                                # repeat loop

बेंचमार्क: अनुमानित, केवल स्केलिंग उद्देश्यों के लिए

  • इनपुट लंबाई: 1, 10 यादृच्छिक इनपुट (रन), औसत समय: <1 s
  • इनपुट लंबाई: 2, 10 यादृच्छिक इनपुट (रन), औसत समय: 90 एस
  • इनपुट लंबाई: 3, 10 यादृच्छिक इनपुट (रन), औसत समय: बहुत से घंटे!

7

फंकी , 64 बाइट्स

s=>{S=""whileS::sub((#S)-#s)!=s S+=S.char(math.random(32,126))S}

यह कुछ ट्रिक्स का उपयोग करता है, जिन्हें मैं फंकी में प्रयोग करना चाहता हूं, जैसे कि कीवर्ड के बाद एक चर नाम whileSऔर इस तथ्य का उपयोग करके कि stringपुस्तकालय में मूल रूप से माता-पिता का तार ।

Ungolfed

function monkey(target){
    monkeyCode = ""
    while (monkeyCode::sub((#monkeyCode)-#target)!=target){
        monkeyCode += string.char(math.random(32,126))
    }
    monkeyCode
}

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


6
तो यह होगा ... कायरता बंदर?
सेबेस्टियन लेनार्टोविक्ज़

7

हास्केल , 100 बाइट्स

import System.Random
s#(a:b)|and$zipWith(==)s$a:b=s|1>0=a:s#b
m a=(a#).randomRs(' ','~')<$>newStdGen

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

बुनियादी विचार यह है कि randomRsहम स्ट्रिंग को खोजने के साथ वर्णों की एक अनंत सूची तैयार करें और उसे रोक दें।


एक शर्म isPrefixOfकी बात यह है कि मानक प्रस्तावना में नहीं है ...
Bergi

7

सी # (.NET कोर) , 86 बाइट्स

a=>{var b="";for(var r=new Random();!b.Contains(a);b+=(char)r.Next(32,127));return b;}

मुझे वास्तव में पसंद नहीं है कि Randomउदाहरण का कितना निर्माण होता है, लेकिन मुझे नहीं लगता कि इसके आसपास कोई रास्ता है।

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


3
PPCG में आपका स्वागत है! वर्तमान में आपका समाधान डॉक्स के अनुसार एक यादृच्छिक चरित्र को ठीक से उत्पन्न नहीं करता है , जो ऊपरी सीमा से गुजरता है Random.Next(Int32,Int32)वह अनन्य है और इसलिए उत्पन्न संख्याओं में से एक नहीं है। इसे बदलकर तय किया जा सकता 126है 127
0 '

@ 0 'वूप्स, मैंने लिखते समय इसके बारे में सोचा था, लेकिन मैं पोस्ट करने से पहले इसे जांचना भूल गया। धन्यवाद!
वकवमकुश

वहाँ वास्तव में एक रास्ता है कि लंबे समय के आसपास Random, आप चर घोषणा को हटा सकते हैं! 79 बाइट्स
FlipTack

@FlipTack दिलचस्प है, मैंने कोशिश की कि सी # इंटरएक्टिव में और यह काम नहीं किया क्योंकि यह सिर्फ एक ही नंबर उत्पन्न करता रहा। यह देखने के लिए अजीब है कि यह TIO में काम करता है।
वकवमकुश

6

पर्ल 5, 31 +2 (-pa) बाइट्स

}{$_.=chr 32+rand 95until/\Q@F/

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


आप 3 बाइट्स बचा सकता है के बाद से \E$बाहरी है
ज़ैद

वास्तव में, ध्यान देने के लिए धन्यवाद
नाहुएल फौइलुल

2 और बाइट्स बचाए
नाहुएल फौइलुल

वह डरपोक है। बहुत अच्छा वास्तव में :)
Zaid

और भी अधिक, -3bytes
नहुएल फौलीउल


6

आर , 79 76 75 बाइट्स

यादृच्छिक सैम्पलर को बदलने के लिए मिकी का धन्यवाद -3 बाइट्स

बेतरतीब फिर से नमूना लेने के लिए रॉबिन राइडर को -1 बाइट धन्यवाद

function(S){G=""
while(!grepl(S,G))G=paste0(G,intToUtf8(32+95*runif(1)))
G}

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


हाय, अपने नमूने के साथ प्रतिस्थापित किया जा सकताintToUtf8(runif(1,32,127))
MickyT

@ मिक्की उत्कृष्ट, धन्यवाद!
Giuseppe

आप 32+95*runif(1)अपने यादृच्छिक नमूना के रूप में 1 बाइट बचा सकते हैं ।
रॉबिन राइडर

6

चारकोल, 15 14 12 बाइट्स

W¬№ωθ≔⁺ω‽γωω

इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। संपादित करें: चारकोल में बाद के बग फिक्स के कारण 2 बाइट्स सहेजे गए। स्पष्टीकरण:

    θ           Input string
   ω            Predefined variable `w`
  №             Count number of occurrences
 ¬              Logical not
W               Loop while true
       ω        Predefined variable `w`
      ⁺         Concatenated with
         γ      Predefined printable characters
        ‽       Random element
     ≔    ω     Assign to predefined variable `w`
           ω    Predefined variable `w`
                Implicitly print


4

पायथ - 14 बाइट्स

.W!}zH+ZOrd\k

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


W!}Qk=+kpOrd\ 14 बाइट्स के रूप में अच्छी तरह से है, एसई unprintable की वजह से स्वरूपण के साथ खिलवाड़ कर रहा है, लेकिन रेंज उसी तरह से उत्पन्न होता है
डेव

4

गणितज्ञ, 65 बाइट्स

""//.x_/;x~StringFreeQ~#:>x<>RandomChoice@CharacterRange[32,126]&

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

जोनाथन फ्रेच से -3 बाइट्स


मुझे लगता FromCharacterCode[RandomInteger@94+32]है कि यह छोटे के बराबर है RandomChoice@CharacterRange[32,126]
जोनाथन फ्रेच

@JonathanFrech हाँ, यह है!
J42161217



4

ऑक्टेव , 62 बाइट्स

t=input(o="");while(~nnz(regexp(o,t)))o=[o,randi(95)+31];end;o

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

स्पष्टीकरण:

t=input(o="");               % get stdin and define output
while(~nnz(regexp(o,t)))     % while no matches
    o=[o,randi(95)+31];      % concatenate string with ascii char
end;                            
o                            % output result

संपादन के लिए लुइस मेंडो के लिए बहुत धन्यवाद!


1
साइट पर आपका स्वागत है! :)
DJMcMayhem

आप को बदल नहीं सकता isvectorद्वारा nnz? और strfindद्वारा regexp। इसके अलावा, आप उपयोग कर सकते हैं randi(95)+31, या हो सकता है कि पूरे sprintfविवरण को बदल दें o=[o,randi(95)+31];(चार्ट में अंतर्निहित रूपांतरण)
लुइस मेंडू

इसके अलावा, हमें आमतौर पर एक फ़ंक्शन या एक प्रोग्राम की आवश्यकता होती है जो इसके इनपुट को लेती है (जैसा कि इनपुट वाले किसी वैरिएबल को परिभाषित करने के विपरीत है) - कुछ इस
लुइस मेंडू

I that ने ऐसा करने का प्रयास किया, लेकिन I️ एक संक्षिप्त तरीके के बारे में नहीं सोच सकता था इसलिए I do ने इसे छोड़ दिया। अच्छा संशोधन!
एलन

1
उन सुझावों को अपने उत्तर में शामिल करने के लिए स्वतंत्र महसूस करें। इस साइट पर यह मानक है
लुइस मेंडू


3

ऐलिस , 21 बाइट्स

/U!?"$~dr@
\idwz K"o/

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

व्याख्या

/...@
\.../

यह ज्यादातर रैखिक कार्यक्रमों के लिए रूपरेखा है जो पूरी तरह से ऑर्डिनल (स्ट्रिंग-प्रोसेसिंग) मोड में संचालित होते हैं। आईपी ​​दो बार प्रोग्राम के माध्यम से तिरछे ऊपर और नीचे उछलता है, जिसका अर्थ है कि वास्तविक कोड थोड़ा अजीब रूप से इंटरलेय्ड है। आदेश में वे वास्तव में निष्पादित कर रहे हैं:

i!w" ~"rUd?z$Kdo

आइए इससे गुजरते हैं:

i       Read all input.
!       Store the input on the tape for later.
w       Push the current IP address onto the return address stack.
        This marks the beginning of the main loop.

  " ~"    Push this string.
  r       Range expansion. Turns the string into " !...}~", i.e. a string
          with all printable ASCII characters.
  U       Random choice. Picks a uniformly random character from this
          string. This will remain on the stack throughout the rest of
          the program and will form part of the resulting string.
  d       Join stack. This takes all strings on the stack and joins them
          into a single string and pushes that (it does this without actually
          removing any elements from the stack).
  ?       Retrieve the input from the tape.
  z       Drop. If the joined string contains the input, everything up to
          and including the input will be discarded. Otherwise, nothing
          happens to the joined string. This means that the result will be
          an empty string iff the joined string ends with the input.
$K      If the top of the stack is not empty, jump back to the w to continue
        with another iteration of the main loop.
d       Join the stack into a single string once more.
o       Print it.

3

पर्ल 6 , 39 बाइट्स

{("",*~(" ".."~").pick...*~~/$_/)[*-1]}

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

(...)[*-1]इसके द्वारा परिभाषित अनुक्रम का अंतिम तत्व देता है ...:

  • "" पहला तत्व है;

  • * ~ (" " .. "~").pickपिछले तत्व के लिए उपयुक्त सीमा में एक यादृच्छिक चरित्र जोड़कर अगले तत्व उत्पन्न करता है; तथा

  • * ~~ /$_/अंतिम स्थिति है, जो यह है कि वर्तमान तत्व $_शाब्दिक विकल्प के रूप में मुख्य फ़ंक्शन के इनपुट तर्क से मेल खाता है ।



3

जावा 8, 81 79 78 बाइट्स

a->{String b="";for(;!b.contains(a);b+=(char)(32+Math.random()*95));return b;}

-1 बाइट के लिए धन्यवाद @ ओलिविएरगायरायर ने मुझे एक (बड़ा> <<) की ओर इशारा करने के लिए कहा। मैंने जो गलती की है।

स्पष्टीकरण:

इसे यहाँ आज़माएँ।

a->{                    // Method with String as both parameter and return-type
  String b="";          //  Result-String, starting empty
  for(;!b.contains(a);  //  Loop as long as the result does not contain the input
    b+=(char)(32+Math.random()*95)
                        //   Append a random character to `b`
  );                    //  End of loop
  return b;             //  Return the result-String
}                       // End of method

1
यह होना चाहिए 32+Math.random()*95। वहाँ ... बग तय और एक बाइट बचा लिया! ;-)
ओलिवियर ग्राएगोइरे

@ OlivierGrégoire Woops .. अंतरिक्ष के लिए हेक्साडेसिमल कोड को देखा, लेकिन टिल्ड के लिए नियमित दशमलव ..>>> ध्यान देने के लिए धन्यवाद। मुझे यकीन नहीं है कि मैंने कैसे याद किया है, क्योंकि उत्पादन में स्पष्ट रूप से '
अप्राप्य

3

05AB1E , 10 9 बाइट्स (-1 @ एमिग्ना)

[žQΩJD¹å#

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


मेरे साथ बंदर करो।


[              | Loop forever.
 žQ            | Push 0x20-0x7E as a single string.
   .R          | Pick from it randomly.
     J         | Join stack (B) with new char.
      D        | Duplicate (B).
       ¹å      | Push input (A) and check if input (A) is in (B).
         #     | If the previous statement is true, break loop.

1
आप क्या कर सकते हैं Ωके बजाय .R
Emigna

2
लोल, ओम का उपयोग करते हुए, ओम v2 को हराते हैं। कितना अच्छा है।
मैजिक ऑक्टोपस Urn

2

QBIC , 33 बाइट्स

≈instr(Z,;)<1|Z=Z+chr$(_r32,126|)

व्याख्या

≈instr( , )<1|   WHILE InStr() can't find
         ;        the input (cmd line string argument) as part of
       Z          the output (Z$, which is printed automatically on exit)
Z=Z+             add to the output
chr$(         )  an ASCII character
     _r32,126|   with a random codepoint between 32 and 126 (incl)

नमूना रन:

Command line: hi

`;7L3f$qy )H99tZ@>(-Z1efL|Q-5'BE=P8BdX?Lem/fp|G#~WY[ Q4s9r~Af*T})P4`4d$#ud3AiuTwQPFS@8c7_59C$ GlJ%iJ[FA(rNt<y>Hl=r,wSbBB%q!8&#*CixWbnwE."wrZ:R53iKJkN*@hpQt aMj6Mw<KfT@hkik>_k'_>$~3)jl|J!S`n\Yw|lXi:WAKWp?K"F.cAGI/:~uR8*[;Die{]B*]@;Vhjv,$9]Ys:AIdy!j{aXlr:0=txCP-n{/3lgq,;jXaP\]u}.Zl/7eKF+N54[J9^r:>%/.e~*9aK%de>^TW%p%(_uJPvuV%d<&]zu`t;vkEPC>7pofok0Kj}j?9G{TUxSccth)[)J>@'E)NMzA(i!UV7%;$.Z#j3q@#9Q%}<" &VsbL*<SrG-$NC MAQ\`iIT+.P|5}nv )FZl5_.Kc*AUV9u&fvk.USt3Y!s7^UEL{|D$k#k8.9Fgqn#3dgr(0G.gw1#j$HfU3a|)3-O(d<)<A|`%pJ^/\{[w[H4N/>8J@z/YNsU,zY4o*X+h\Dy!~)Xr8.3"%.39v0d5_-8QBYR".Z]MZ}N>9e?f@hj#hor1IhJ[krrHOamRPxQC>^'dOh,cF_e2;8R@K**Jsx_~t9r~4J$Y;kPsb)8w~:o-`@MwP]OA{8yD%gL(=&M>$nTKw] R[}rS|~}&*gD 'g|gRSDLld+`,,}(1=]ao3Z%2*?wlqU$7=$8q$Fig:7n&+XKQ LV/Aq?BYl_*Ak-PqI$U_>`/`-yD5.3|Zg>,mC"RC`IV^szu:I;0ntn(l'/ZnK}T&i)9!zkd?7Ec/X+IN=-5wwsSV@^<?:K=9m%*@C;zDjc%:d>/E@f7@0NVt4Vz/E;8*0A25F1:JUQ/G#2)un9hQI>2^}&+cY+JP*-#$p+cFs}R|>E;w#q>pN"Jkv<>E_ZtCvV05Lh;0 9bCBXgA7aIe+9B1<G)YCH\Yqn.0%g$_4Q4 xIR)gt]W*a|gGX}hP4b)6#M:Dh!kmuX;nW]'n]Mm5y=ET|O9p\,j>Bc|7J5I%UCZla-2g(Mm9cE"}c1Q0@yTF|A\FJbR7_(F_G#@mE/~ [9T~|Ty9~0=g {a^IM{]C9%2FBJ:b&i5A{rqu/xw6q|_[$Sj&W\TnI}/>.EJ1dSbSOtr_Qtuf!IF .WU}&M51+VAnJ)W}^c5qwQ<G05}/aZ99l6iqyD|Zr8SV9L}8FbUz7_H<]A|.vFQXSu2@67%83HP4]Gw0PuPNQ6SOM_[BcdK-s}Z(~~i:^N$GZn_sMcp*i,w-2VfK*LA$Btmg6QEohqym3[RRqUAM"9pE>N)(.TNMQ"U~ e2($wz(Kdh;0ol8>SXHEnLvrs.Xtl^L?SL1$*ssD _={{}(`qKCy{]W:AZT}Zro5qN:;mNp#EPfg?_],,cFP?EhGs/OAt}fgVSR<JW^HkWf'@^Vd9\_Y?P*>C'YP jqvXu)ZFwzY)/MLHcRL/P?jBi9"d\  E$ngpq-i*;EW6R)J|[0FfZSTozuSq,sAJT<<4al<zM\F(|gTD0/Vt6JL.p_x_oC)V'zWZ`8eA9@*WgZ>',-}Q^5#e552&"\i1HI]{)]WcI.cY0n9J<jaT.!l{r4Dz~nt`AEP-6,FHhf6(PSywIedr }=9V>Q7!+~L^O3'Crdv"hfv#xrs@](EO;&#)0]oC][z*Eh`k!$V!r6~#-Vfk1p#w&Za6Ij\@V<TNf4njdynOch7l?XwU  `SON\iizU3%S^X2XKY.w%:zAVY^KlIhZ8]d39No3P89v`1FxKTLQa+7"rd9bm2)a^Pu=~.9VDh?v"%$9evl9+l7n$I?qA[b:kH2?5Tg&(!H(*}hZ3z@bg+Zj!# JnO2FV_glCMweT;b|>g4!h{4@ p w`lH \Y8(uPf7nbJY]r>('-$O?5Xd:h&:y!i%2dRC_8=3! |b="H|jxx)k!\D|]Lsdz1.v[a<l/Y3?0/&H%2.qvPp'ZNpO;rhvtnl0*Bs4Qlh0}_dv6g0`pJh'==]9LuzG+qUGz5.j[$I{4.b_o;S`QFucC9>`z7M.wHx!wy-JeOf)^9#Z.xl7e"9q)OE-SSD"VbLFm-u'-<4~(_h\KqNk7}vKh0E&!LaxAma|FOIY,\C$;!v^#4,eqwpE]Jqp,]IkTz,,L`kx|\i^#{PV0/8K?N,W!L=vbh\OJ7?:k=~{zLw8*/W<-qFDKAhx1F;\NL@{=rlo0''YB;B5<:0e5J)w"0l@FE?J:FW(I|)3BZ'hL7[}Ez=jc(rLkY9d{Zzgq7Cj)bej/X!@TP7x.r"Arz7IU;1|.3by~\h{V57}A^w7v5gMC]@B~1i5*uY 7?(IN6hQ/b/4bMpDmT_"n|;bBx|74(ReQ.^])bHC+:!s bk_S]R}<Ow:7CCu_P!$:mz{[aiGg*AD#}m~D_rhVr6!x]PY5n'qiMMlpqoU>C`,W}y9Yi4hHf<lcwvga`h(<=jURq\d+2SRGA1GP**D]i+Tp@*hpe([-JE^M@5jHgK~>hY>Bo&% \e/\&]"K])CV%oNJ}[_Q1}w(p3uJ+\/;{0TB8#{=&l8s;]L7Gr;a_[cN:#%$)?*:HLZ;&n|2_8/@=B [>|R3@xk<c+bIyb>h`]:c]RLt(M!69PNE?}>@CHT>jNevl81PCgHu0ap0~Pcq?Z@>+yTFw\E=10&fpS+=/l|.ioPn$B.M\4{2?q-^,)f&S4X44(Rycome[Ot[t(8CAphj[h}E/A~BR[6Y&Hm1_tsxs4BB0cwo\",r_c~s/vT}kKu3U(Emb|%"`OAmV7$,\<O7)c&F==mc~dM:qX^[K-9<3u8hfgTUP19aXk,7g(4>jLt,*N!EXGE#XzN}>7@EH4n}k!&a[j,Ynd#!M<suhnBP /J9}h>vRyXuADk"+v}?hOm6*U^x\G'!Y(TDC?EE|r}5yx4PB 1;9q.%/kg7p2ImS62+/|K,xSDf3b6JRY+8~mxikSU^&3A3|/j9}fIESN45kdi*h64!XE'_0?Pw{MeK$DeXP]5M{7sLD!dj5HrAc\N I`~o/%MqyIIsFee]A?j7ZZ}f'dN#"V''g-G0@zNajp=v<"r2s;>@.UM9L\Mq16e/961d.3a6h.hMrUREa^wR^s*\Tc6Yn]DT.Nc77p|h s2@hC\Rxy|XhXi.OL2$\pwPSJET;u7V`U!<]M(tibt>.gD'JKe{7r8?Z[]ExGHxyd\,/wjfBI'NKCpaU19-?f;;QVrWnFF,zvJY|d\DrcysAO'; 33CSNy_GlLr\v)Ir\qQfwT'I#t:N-{,x#zGR.)gJqq%!zF.oJ;]*TI+4z>JQAGQM3w&zgani8JwZW6S!r-ig\3jD}]2*.Aen8O)L?X.UTZ6)mOtUIm_=3fA'_::vV_#+c+=evf#{8lk+`)M\_c+I<|*LRZOU]:eQ*/KER#f,vEC?4yXE*8wlzk?b)&[gF'(0|$@+4CT4#lfEKxP~;oo%1+=yw#J*s}D7p1fU~^gD1Ib{H|PWer^q"q=?Pxf<)tvu7{HDvl\kqb"b/|s>|h.qQu[$F/:~*dy9cl16}dKXY~N7aptCSv+da/S5-,qnwBhRi+lh8=Qy{er:#Oos|e?(US>"767KVe^nz<$]gM)~J>{I7n~!k[U\1{8Z8u6T(ft?kgdQO,LvY/TDAe\wS~Y U>\.aQYhQ;h1nuW$R/wpz_EiB-%gf87qgQei(P-ft:TSW,HtsPez"5<8?yR`wm7pjMn^|8Y.4[RVWq#aW$0EB9"O:%@q[&F[_'2yt2k]S5~HCN1+^bS>N2C/7ChHCHNrJ8,kBbNsu}37LH^n.B+tyE*s7l(Tc<;4.tvBw3LP=nK4G'6M(z086;"??9XE.(X>nvmm()P2m\"LeqbcOC~Vw;u/Q^T)52/pM3+<GkFWJ?30{/n2FQq QjO#pt8oN$kK/a+|Hbw@5m8M[EFWq>%cV2[X@q}gJ"9kt9'~]4p+2~LT9|4Ss^qoXw%P#M!!]TBQbp;PYg{WCj,RF<#bNJTS,CUH{][hY"q;[?#apc%Cl&QWVi]ffYG}bzx .;*/rqRhb[XatPu.Piws<mo=]!e>p%yu\;fCzJ0Xz]6]9S:WRlYS,mC&7Zjb)+DjJUkSF3TJG;8fQ4|>t%qgW1$_V:p;|Q":Z!UngSL{*Ky+/zh [I{_3?]h^x37"`^'/U>EPqal'&Txf,I>gr2HO_y!QM-ch~%m-(AE6U~[A"D@j1hu?6p2"Wc'3nyqfs!.UQy}I%0(z5dPmORFBK1,<PfYersnLe<fLhB=^g pwXnWDOQNuIPEpnm8.Q6jN|a7tcuSH$9T;! d~VQn{'(-4{caLa;t?~|>q:on:Bgs'FQ'2-<%W<3Px=4Uf;@;R3yZECK?f(5K?`^lQY\ok},`Q9*Q}3].Y!BkRt"3@]Lz&ec'NB?n[%0kQ9/55BOZ)o!P>fpXZI:#?Ly#\o.`+HX Kb0@P^1qS%bGip1`)qH@-k\oOGs%;}_Nq{uPq |!K)01w(?X=>bSR[(]ZQ<Z1]bD9M.F<<.8EB6JlEUOk6r;SrVZNT2 m>zp3]a_sK eq8]rK^.U&!d62HBt`v?t6uc#3s<{[CmYE24+ujEx`$##R2g\b!PvK<8+lUhyT|p"SUco/aUh.fXBV(!!)8PfQIr6R,r8c-F-mjua;:z4!Q1pA!H0E%)"K2oUv|DV+lg,h8W?<JnIkiV/us::*l&I<OI6NO)Tnq0-uDRG5*LX#wU{8WpMlw3Z'7zGi*loo2{=hWSY*0/o9BwtJ$Hw}l94nA^9>48(3gDnt8CS|R3? OH[N/9j1r%vUcox\68{yFemlmmtp*q5kfrlIo`3yQB??6jW:TW+)':K#]^=ilF_/N!)=}y@k.y//nhChX!3b`=t,1_KhR,n]/_.-P>B80W#'E%J[g?ti)*;Yl]}r0>qh/X[{=)Gr '[+pz|DI=mA8zj~yAT*^7w%tV0l=V^/#2W>)f)X%f^L&+Un}VlQt3.%gEKbE!7`adTb#`}i!F$-Gug]@*G,hKe;/p,`Mb@wBJ4<V&jJd&_H4VR{Hc"{2<l<QapiLw(JK-2-[1_.WR.@CG$?\1<&( QX5c9 :z^jDW09(=iH V/vkcJ8D<uLAr$dbc$Hl'2KTUlbrd8kD{B0Eeu<&oL2s.S4@Jo$zVq~BqeLsb;k-NG/'iU|)W_:X-.XUc<v\elx57ZZ"R!y_yzve*Wlt>.fE,#Eh:(#gn1kSQ+/3NYjD']I;"+@pnW[1EA.AyqM4,0,dJt.?r2oab.j\k@)BsZ|s39FdL87xyuJ0nXX=yz^~W,}acDZp8ukCpv^<^{CkRS<=GsS$}#fbP5%A$GHdg)+WZLLN9[ue073Q!F"J;X^49*$R'W%C.r~Fj&B`)tq[01a4En%H,kvyZG|,)%$44rJg[tq<wG9FjN<m@larki#;Bns%D}v_efPRH(OeRq0{=>Uc[~xcTcV_9|k54Q2*N.3]LlmFasY3"p =$$onbg$M+ReRsnH|9gV~#2?c1-V$35."DZH-O$~,c.gs]%,]p4\OFIW%l:,E,YT8FCeU8hy#lNq1lCpS 0I&q_*q>|=,(-dHuzi~6$GW22*A\w*&R< W`$HPRr,2A}3w\"Y?d%{2^xP:GqI\26A|.e'H2Z[M4=P.H87O~{)9|B*tHAC\j^S,StW!*snsz82R!:eD@uB4x+x&zSIN(3V|.^N_$=i=p}iK4h'v"$:I<t e:Y/XrSOF83=lkVNa0^k@jB@{ARE@r=Bja`(Bw>@?+`Wo,= u5HhXPeRMXS4@H#$-Jwg2"2-]%7p.o2Ar9J6Y1Ra?"3<oee&bpO^O{nw9=%\0brVNXrelWGoJyb/5W%MB0UBaPsc*29K<N~``NriWM$"eY0@xh^<$b:E/J~S%{#ry~6d?4Vv@^&9'=iBA#2U]bj9>UoJ#wQDN~6cB&/_Pu-XF?_hu3><(M7RW\%Ly@rTC9^b`?kVL~w%[{!&{#aS7<mc@J>ZaN7s}Y.c0:Y.\d&_[L{m|>|>%J^@!i9y0_lwejChi

2

PHP, 55 + 1 बाइट्स

while(!strpos(_.$argn,_.$s.=chr(rand(32,126))));echo$s;

साथ पाइप के रूप में चलाएँ -nR। संभावित समय समाप्ति के TIO कारण के लिए उपयुक्त नहीं है।

7.1 से अधिक पुराने PHP के लिए उद्धरण चिह्नों के बीच एक स्थान डालें।

यदि इनपुट है तो यह 51 + 1 बाइट्स संस्करण विफल हो जाएगा 0:

while(!strstr($argn,$s.=chr(rand(32,126))));echo$s;

2

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

s=(a,b='')=>~b.search(a)?b:s(a,b+String.fromCharCode(32+Math.random()*95))

इस तरह से कॉल करें:

s('hi')

@Giuseppe thx, मैंने इसे बाइट काउंट में जोड़ा है
RuteNL

1
मुझे लगता है कि कोड को मान्य होने के लिए आपको 94 से 95 को बदलना होगा
हॉकिंग

1
@ हॉकिंग हाँ, आप सही हैं, डिकोडकोड ऐसा लगता है कि दशमलव को अनदेखा करता है। इस पर ध्यान दिलाने के लिए धन्यवाद!
RuteNL

के ~b.searchबजाय के साथ एक बाइट बचाओ b.includes
झबरा

@ सुग्गी नाइस! खोज के बारे में पता नहीं था
RuteNL


2

पुष्य , 20 18 बाइट्स

LFZ^tCN[,` ~`U'x?i

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

कार्यक्रम एक स्टैक len(input)वर्णों को लंबे समय तक रखता है , और लगातार पहले को हटाता है और एक नया यादृच्छिक वर्ण जोड़ता है, जब तक कि प्रारंभिक इनपुट स्ट्रिंग तक नहीं पहुंच जाता है। प्रत्येक चरित्र को मुद्रित किया जाता है क्योंकि यह वांछित प्रभाव पैदा करता है।

स्पष्टीकरण:

                      \ == SETUP ==
 F                    \ Put input on second stack
L Z^tC                \ On the main stack, make length(input) copies of 0
      N               \ Remove printing delimiter (newline by default)

                      \ == MAIN LOOP ==

       [              \ Infinitely:
        ,             \    Pop the first item on stack
         ` ~`U        \    Add a new random character (between 32 and 126)
              '       \    Print this new character
               x?     \    If the stacks are now equal:
                 i    \        Exit program

2

ब्रेकीलॉग , 17 बाइट्स

I⁰∧Ẹ{sI⁰&|;Ṭṛᵗc↰}

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

I⁰                   The global variable I⁰
                     is the input,
  ∧                  and
   Ẹ                 starting with the empty string
    {          ↰}    call this sub-predicate again
            ṛ        with a random
           Ṭ         printable ASCII character
          ;  ᵗc      appended to the string we're building
         |           unless
      I⁰             I⁰ (which is the input)
     s               is a substring of the string we've been building
        &            in which case the string is output.

बेतरतीब ढंग से ओवरफ्लो हो सकता है। यह Brachylog में हाल ही में जोड़ी गई दो विशेषताओं का उपयोग करता है: वैश्विक चर, और एप्लाय-टू-टेल मेटाप्रेडिकेट



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