> 1
> Input
>> 1…2
>> L!
>> L+1
>> L∣2
>> L⋅R
>> 2%L
>> Each 4 3
>> Each 5 9
>> Each 6 10
>> Each 7 11 3
> {0}
>> 12∖13
>> Each 8 14
>> L≠1
>> Each 16 15
>> Each 7 17 15
>> 18∖13
>> [19]
>> 2’
>> 21⋅20
>> Output 22
इसे ऑनलाइन आज़माएं!
यह गैर-पिल्लई अपराधों के लिए एक खाली सूची देता है, और एक गैर-रिक्त सूची अन्यथा।
यह काम किस प्रकार करता है
फुसफुसाते हुए वास्तविक / जटिल संख्याओं में हेरफेर के लिए डिज़ाइन किया गया था, अच्छे माप के लिए थोड़े सरणी कमांड जोड़े गए थे, इसलिए Each
उत्पन्न सूचियों पर पुनरावृति का दोहराया उपयोग ।
फुसफुसाते हुए पृष्ठभूमि पर थोड़ा सा:
फुसफुसाते हुए यह सबसे अलग भाषाओं के लिए पथ में थोड़ा अलग है। प्रत्येक लाइन के माध्यम से काम करने के बजाय, केवल सशर्त शाखाओं में शाखाओं में बंटी, व्हिस्पर की शुरुआत फ़ाइल में अंतिम पंक्ति से होती है >
(नियम इससे थोड़ा अधिक जटिल होते हैं, लेकिन यह सब हमें अभी जानने की जरूरत है), और संख्याओं के अर्थ अलग है, इस पर निर्भर करता है कि क्या लाइन के साथ शुरू होता है >
या >>
।
यदि रेखा के साथ शुरू होता है >
, जैसे कि > 1
या > Input
, यह एक निरंतर रेखा है - यह हर बार समान मूल्य देता है। यहां, संख्याएं उनके संख्यात्मक रूप का प्रतिनिधित्व करती हैं, इसलिए पहली पंक्ति हमेशा 1 तब वापस आएगी जब बुलाया जाएगा।
यदि रेखा के साथ शुरू होता है >>
, तो संख्याओं को अन्य लाइनों के संदर्भ के रूप में माना जाता है, यदि आप चाहें तो फ़ंक्शन कॉल की तरह। उदाहरण के लिए, लाइन में >> 1…2
, यह …
पूर्णांक 1 और 2 पर कमांड का प्रदर्शन नहीं करता है , बल्कि 1 और 2 लाइनों से लौटाए गए मानों पर निर्भर करता है । इस स्थिति में, वे मान पूर्णांक 1 हैं और जो भी पूर्णांक हम इनपुट के रूप में पास किए गए हैं।
इस उदाहरण के लिए, आइए 23 के इनपुट पर विचार करें । ध्यान रखें कि, व्हिस्पर के प्रीप्रोसेसिंग के कारण दूसरी लाइन ( > Input
) में परिवर्तित हो जाती है > 23
।
हमारा पहला कमांड लाइन 3: पर है >> 1…2
। …
डाईएडिक श्रेणी है, इस मामले में 1 से 23 तक , {1, 2, ... 22, 23} उपज है । इसके बाद, हम लाइनों के लिए नीचे छोड़ 9 के माध्यम से 12 :
>> Each 4 3
>> Each 5 9
>> Each 6 10
>> Each 7 11 3
यहां हमारे पास 4 संकेंद्रित Each
कथन हैं, जिनमें से प्रत्येक पिछले परिणाम पर पुनरावृति करता है, अनिवार्य रूप से पंक्ति 3 पर सरणी पर 4 आदेशों की मैपिंग करता है : सीमा। पहले तीन कथन सरल मानचित्र हैं, जिनमें रेखाएँ 4 , 5 और 6 हैं :
>> L!
>> L+1
>> L∣2
इन तीन आज्ञाओं, एक पूर्णांक n पर , पैदावार (n! +1) wherex , कहाँ ! अर्थ है भाज्य , | दर्शाता है divisbility और एक्स इनपुट है। अंत में, लाइन 12 में एक डाईएडिक मानचित्र संरचना है।
एक डाईएडिक मैप संरचना तीन पूर्णांक लेती है: लक्ष्य, बाएं और दाएं, प्रत्येक अनुक्रमणिका अन्य लाइनों के लिए। यहाँ, हम बाएँ और दाएँ जोड़े की सूची बनाते हैं, फिर प्रत्येक जोड़ी को डाइएडिक कमांड (लक्ष्य) द्वारा कम करते हैं। यहां, यदि इनपुट 23 है , तो सूचियां {1, 2, ... 22, 23} और {0, 0, ... 1, 0} हैं और कमांड है
>> L⋅R
जो दायें से बायें तर्क को गुणा करता है। यह पूर्णांकों की एक सरणी, साथ पैदा करता है 0 पूर्णांकों जिसका factorials वृद्धि आदानों से विभाज्य नहीं कर रहे हैं की अनुक्रमणिका में, और मूल सूचकांक कि वे कहाँ हैं। हम इस सरणी को A कहेंगे । आगे, हम {0} और A के बीच के अंतर को लेते हुए A से 0 को हटाते हैं :
> {0}
>> 12∖13
हमारे उदाहरण इनपुट के साथ, यह {14, 18, 22} सेट का उत्पादन करता है । अगला हम इनपुट के शेष भाग को सेट में प्रत्येक मान से विभाजित करते हैं, और जाँचते हैं कि क्या शेष 1 के बराबर नहीं है :
>> 2%L
>> Each 8 14
>> L≠1
>> Each 16 15
फिर से, हमारे पास 0 या 1 एस की सूची है और 0 एस को हटाने और 1 एस को मूल मूल्यों के साथ बदलने की आवश्यकता है । यहां हम उस कोड को दोहराते हैं जो हमने ऊपर देखा था, लेकिन इसके >> 18∖13
बजाय 12
। अंत में, हमने इस परिणाम को अंतिम जांच के लिए एक सूची में सेट कर दिया। दुर्भाग्य से, हमारे कोड को समग्र संख्या को भी अस्वीकार करना चाहिए जो इन सभी मानदंडों को प्राप्त करते हैं, जैसे कि 437 । इसलिए हम अपनी अंतिम सूची को जोड़ते हैं, इनपुट की प्रधानता द्वारा हमारी अंतिम सूची को गुणा करते हैं। पायथन गुणन सूचियों पर काम करने के कारण, 0 इसे एक खाली सूची के साथ बदल देता है, और 1 का कोई प्रभाव नहीं होता है। तो हम इनपुट की मौलिकता की गणना करते हैं, कि मी की सूची से गुणा करेंइनपुट के लिए और अंतिम परिणाम ouput:
>> 2’
>> 21⋅20
>> Output 22