रूसी घोंसले का शिकार


18

एक रूसी घोंसला बनाने वाली गुड़िया, जिसे आमतौर पर मैत्रियोस्का गुड़िया के रूप में जाना जाता है , एक ऐसी गुड़िया होती है, जिसमें स्वयं का एक छोटा संस्करण होता है, जिसमें तब स्वयं का एक और छोटा संस्करण होता है, जिसमें स्वयं का एक छोटा संस्करण होता है, जिसमें स्वयं का एक छोटा संस्करण होता है, जिसमें खुद का एक छोटा संस्करण सम्‍मिलित करता है ... - अंत तक, अंतिम खाली है। एक उदाहरण:

मैट्रीशोका गुड़िया <3

आज आपका लक्ष्य एक कार्यक्रम या फ़ंक्शन लिखकर इस रूसी परंपरा का अनुकरण करना है, जब यह स्वयं एन बार होता है, तो स्वयं एन -1 की प्रतियां युक्त प्रिंट करेगा।

उदाहरण के लिए, गुड़िया कार्यक्रम abcd में N = 3 प्रोग्राम abababcdcdcdहोगा, जो N = 2 प्रोग्राम को प्रिंट करेगा ababcdcd, जो मूल N = 1 प्रोग्राम abcdको प्रिंट करता है, जो अंत में N = 0 प्रिंट करता है, जो खाली है। यह सैद्धांतिक रूप से एन के किसी भी उचित मूल्य के लिए काम करना चाहिए।

नियम:

  • यहां है आपके कार्यक्रम के आधार पर गुड़िया कार्यक्रम बनाने में मदद करने के लिए TIO कार्यक्रम है
  • मानक क्वान नियम लागू होते हैं
  • स्टैंडर्ड लोफॉल्स लागू होते हैं
  • 'कंटेंस' का मतलब सीधे पिछले संस्करण के केंद्र में है, इसलिए आपके समाधान में सकारात्मक बाइट्स की संख्या होनी चाहिए। लंबाई 10 के एक कार्यक्रम में पाँचवीं बाइट के बाद डाली गई मूल की एक प्रति होगी, फिर दसवीं बाइट के बाद एक और आदि।
  • आउटपुट में एक एकल अनुगामी व्हाट्सएप की अनुमति है
  • जैसा कि यह , आपका लक्ष्य अपने N = 1 कार्यक्रम को यथासंभव छोटा बनाना है।
  • आपके कोड की व्याख्या की सराहना की जाएगी


Nकोड आकार किसके लिए मापा जाता है?
दोष

@flawr N = 1 .....
Jo King


12
क्या वह एनीमेशन वास्तव में आवश्यक है ?!
झबरा

जवाबों:


9

अंडरलोड , 4 बाइट्स

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

 ()S

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

 ( ()S)S

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

 ( ( ()S)S)S

स्पष्टीकरण:

आत्म-व्याख्यात्मक, लेकिन मैं इसे वैसे भी जोड़ता हूं।

  • (...)S कोष्ठक के बीच कुछ भी प्रिंट करने के लिए
  • इससे पहले का स्थान बाइट-काउंट को समान बनाने और चुनौती के नियमों का पालन करने के लिए एक नो-ऑप है।

9

जावास्क्रिप्ट, 36 32 बाइट्स

इस तथ्य का लाभ उठाता है कि Function.prototype.toString()कोई तर्क नहीं लेता है और इसलिए इसे पारित किए जाने वाले किसी भी उपेक्षा करेगा।

आंशिक रूप से user202729 के समाधान से प्रेरित है ।

f=_=>f.toString( ).slice(14,-16)

कोशिश करो

o.innerHTML=["<span>Five</span>",(f=_=>f.toString(f=_=>f.toString(f=_=>f.toString(f=_=>f.toString(f=_=>f.toString( ).slice(14,-16) ).slice(14,-16) ).slice(14,-16) ).slice(14,-16) ).slice(14,-16))(),"<span>Four</span>",(f=_=>f.toString(f=_=>f.toString(f=_=>f.toString(f=_=>f.toString( ).slice(14,-16) ).slice(14,-16) ).slice(14,-16) ).slice(14,-16))(),"<span>Three</span>",(f=_=>f.toString(f=_=>f.toString(f=_=>f.toString( ).slice(14,-16) ).slice(14,-16) ).slice(14,-16))(),"<span>Two</span>",(f=_=>f.toString(f=_=>f.toString( ).slice(14,-16) ).slice(14,-16))(),"<span>One</span>",(f=_=>f.toString( ).slice(14,-16))(),"<span>Thunderbirds Are Go!</span>"].join`\n`
span{font-weight:bold;font-size:16px;line-height:1.5em;text-transform:uppercase;}span:last-child{font-size:8px;}
<pre id=o></pre>


7

जावास्क्रिप्ट (Node.js) , 46 बाइट्स

पूरा कार्यक्रम। इसलिए console.logजरूरी है।

कुछ बाइट्स को बचाने के लिए इस उत्तर से एक विचार का उपयोग करें ।

l=console.log;   g=_=>{};l((''+g).slice(4,-1))

इसे ऑनलाइन आज़माएं! इसे ऑनलाइन दो बार आज़माएं! यह तीन बार ऑनलाइन कोशिश करो!


मेरा दृष्टिकोण केविन क्रूज़सेन में उपयोग किए गए समान है जवाब , एक संरचना (इस मामले में एक फ़ंक्शन) ढूंढें।


5

जेली , 16 बाइट्स

Ṿḣ-9Ḋð}“““““““““

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

दोगुनी: यह ऑनलाइन कोशिश करो!

तीन गुना: इसे ऑनलाइन आज़माएं!


जेली में कोई घोंसला संरचना नहीं है, लेकिन इसके स्ट्रिंग शाब्दिक स्वत: समाप्त हैं।


Ṿḣ-9Ḋ    First chain. (monadic)
Ṿ        Uneal. (to string)
 ḣ-9     Take the ead, ends at the -9'th character.
    Ḋ    equeue, remove the first character.

     ð             Terminate the first chain, start a new one.
      }            Convert the last monadic chain to a dyadic one.
       “““““““““   String literal.
                   This matches the pattern <dyad> <nilad>, so applies
                   the the corresponding rules. This way a link can take data
                   to the right of it.

यह देखने के लिए अलग-अलग तरीकों की कोशिश करेंगे कि क्या वे छोटे हो सकते हैं।



2

डीसी , 4 बाइट्स

 []p

कुछ अन्य उत्तरों के समान, चूंकि स्ट्रिंग्स में dcस्टार्ट ( [) और एंड ( ]) सीमांकक होते हैं (अर्थात, "दोनों कर्तव्यों का पालन नहीं करते हैं, आदि), वे बिना किसी वास्तविक प्रयास के संभव नहीं हैं। pप्रिंट।

N = 1: इसे ऑनलाइन आज़माएं!

N = 2: इसे नेस्टेड आज़माएं!

एन = 3: यह नेस्टेडर की कोशिश करो!


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