विकिरण नरम हो गया


38

यह सरल है: यदि आप किसी भी चरित्र को हटाते हैं, तो एक उचित क्वीन बनाएं , यह अभी भी एक क्वीन है।

इस और विकिरण विकिरण के बीच का अंतर यह है कि यदि आपका प्रोग्राम है AB, तो विकिरण में कठोर क्वाइन Aआउटपुट होगा AB, लेकिन यहाँ, Aआउटपुट होगा A

कोड गोल्फ, सभी मानक नियम, मानक कमियां लागू होते हैं, कोई धोखा नहीं है।


क्या कोई खाली प्रोग्राम मान्य है?
लवजो

4
@ लोजोवो नं।
मार्टिन

3
@ Faersum चुनौती में कहा गया है कि "एक ऐसी जगह बनाएं जहां ...", इसलिए ABआउटपुट होना चाहिए AB
मेगो

1
@ मैं जानता हूँ कि यह कहता है कि, लेकिन विनिर्देश हमेशा इतने सटीक नहीं होते हैं, और यह उदाहरणों में इंगित नहीं किया जाता है।
फेर्सुम

4
@ फ़ेर्सम "क्वीन बनाओ" का अर्थ है एक क्वीन बनाओ। "इस और एक विकिरण-कठोर क्वीन के बीच का अंतर ..." का अर्थ है कि एकमात्र अंतर यह है कि किसी भी बाइट के साथ प्रोग्राम में एक क्वीन का परिणाम होता है, न कि एक प्रोग्राम जो मूल कार्यक्रम के स्रोत को प्रिंट करता है। यहां कोई अस्पष्टता नहीं है।
मेगो

जवाबों:


22

> <> (मछली), 145 107 बाइट्स

यह उत्तर समस्या को ठीक करने के लिए> <> के जंपिंग निर्देश का उपयोग करता है।

!<0078*+00~..>0[!."r43a*+8a+&{ee+00&1-:&(?.~~ol?!;4b*0.0f<>0['r3d*159*+&}7a*00&1-:&(?.~~ol?!;68a*+0.0+*a58 

इस क्वीन में वास्तव में दो अलग-अलग क्वीन जनरेटर होते हैं। यह कुछ जंपिंग लॉजिक से शुरू होता है और डिफ़ॉल्ट रूप से लेफ्ट क्वीन का उपयोग करता है। यदि किसी चरित्र को जंपिंग लॉजिक से या लेफ्ट क्वीन से हटा दिया जाता है, तो प्रोग्राम राइट क्वीन पर कूद जाता है।

आप इसे यहाँ आज़मा सकते हैं

व्याख्या

कोड को कुछ भागों में विभाजित किया जा सकता है:

A: !<0078*+00~..>0[!. 
B:              >0[!."r43a*+8a+&{ee+00&1-:&(?.~~ol?!;4b*0.
C:                                                    .0f<
D:                                                        >0['r3d*159*+&}7a*00&1-:&(?.~~ol?!;68a*+0.
E:                                                                                                 .0+*a58 

विभिन्न भागों की व्याख्या:

  • A: C. के दाईं ओर कूदता है। यदि कोई वर्ण A से हटा दिया जाता है, तो यह D के बाईं ओर या E के दाईं ओर से कूदता है, दूसरी रानी को ट्रिगर करता है। यदि किसी वर्ण को B या C से हटा दिया जाता है, तो कोड को 1 वर्ण बाईं ओर स्थानांतरित कर दिया जाता है, जिससे यह D के बाईं ओर कूद जाता है।
  • C: यह कोड B के बाईं ओर कूदता है
  • बी: क्विन # 1
  • डी: क्विन # 2
  • E: D के बाईं ओर कूदता है

क्वीन का स्पष्टीकरण (उदाहरण के रूप में # 1 के साथ):

एक बार इंस्ट्रक्टर पॉइंटर या तो क्वाइन तक पहुंच जाता है, तो आप निश्चित हैं कि वह क्वीन पूरी तरह से बरकरार है।

>0[!.                                       //Fix the instruction pointer's direction and empty the stack (The '!.' is a leftover from codepart A)
     "r43a*+                                //Start reading all of the code and add the '"' character to the stack
            8a+&                            //Because the quine started reading at the 19th character instead of the first, the stack has to move 18 characters. 
                                            //This part saves the number 18 to the register.
                {ee+00&1-:&(?.              //Move the stack one to the left, decrease the stack by 1. If the stack is not empty yet, jump back to the start of this section.
                              ~~              //Clean the temporary variables from the stack. It should now contain the whole quine.
                                ol?!;4b*0.  //Print the first character from the stack. As long as the stack isn't empty, jump back to the start of this section.

कृपया स्पष्टीकरण दें।
कैलक्यूलेटरफैनलाइन

ऊपर दोहराते हुए।
कैलक्यूलेटरफैनलाइन

1
क्या यह पर्याप्त है?
थाइज टेर हर

36

पेंगुइन , 4.54 × 10 761 बाइट्स

इसमें अशक्त वर्णों की संख्या है:

453997365974271498471447945720930600149036031871190716908688344432973027776681259141680552038829875159204621651993092104775733418288411812715164994750890484868305218411129600012389568016974351721147925344946382782884546247102886167837964612372737300786173159265347137401863281368021545169383664534228503236761742285358985343373496184959796553930661837467682191561275123057706776367104142995491262443697167483190110516522677811931124842961701222425076750211774387637740969301686178545299089832300154448308384461700726890067468872402133010536518468336342175124002115991866466700174974019423711837589532744970385003356612639263433822126850314801275940879069069974437167102618471264140597777702065896715558989678487253830854848740247786166790545462769498303055791292

यह देखते हुए कि इस चुनौती में कसौटी एक "उचित क्वीन" की परिभाषा के साथ कैसे गंभीरता से टकराती है, मुझे लगता है कि एक यूनरी संस्करण जीतने जा रहा है।

विस्तारित ब्रेनफक कोड:

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

यदि एक चरित्र को पेंग्वेंज प्रोग्राम से हटा दिया जाता है, तो अंतिम चरित्र ए बन जाता है <, जो प्रोग्राम को एक कम चरित्र को प्रिंट करने का कारण बनता है।


1
आपने उस निश्चित बिंदु को खोजने का प्रबंधन कैसे किया? (या वैकल्पिक रूप से, ब्रेनफैक कोड कैसे काम करता है?)
मार्टिन

1
@ MartinBüttner पहला बड़ा लूप कॉपी करता है और डेटा को "> +++ ..." (और उलट देता है) के रूप में एनकोड करता है। अन्य बड़े लूप डेटा को एकता में पूर्णांक के रूप में प्रिंट करते हैं। यह इतना जटिल नहीं है, लेकिन केवल लंबा है क्योंकि यह ब्रेनफक है।
jimmy23013

ओह ठीक है, तो यह एक सादे ब्रेनफॉक क्वीन की तरह है, लेकिन एक अलग डिकोडिंग फ़ंक्शन के साथ?
मार्टिन एंडर

@ मार्टिनबटनर कुछ हद तक। लेकिन कार्यक्रम का आधा "डिकोडिंग फ़ंक्शन" है।
jimmy23013

ऐसा लगता है कि आप codegolf.stackexchange.com/q/57257/8478 के लिए मनमाने स्कोर के उत्तरों के निर्माण के लिए एक समान तकनीक का उपयोग कर सकते हैं (हालांकि यह कैसे काम करता है यह मेरी नवीनतम टिप्पणी के उत्तर पर निर्भर करेगा)।
मार्टिन एंडर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.