क्या आप कभी संकलक से पूछना चाहते हैं "क्यों?" जब कोड काम नहीं कर रहा होता है तो हममें से ज्यादातर निराश हो चुके होते हैं। Mathworks ने एक अच्छा सा फंक्शन लागू किया है why, जो सवाल का जवाब देता है। MATLAB से कुछ उदाहरण देने के लिए:
why
The programmer suggested it.
why
To fool the tall good and smart system manager.
why(2)
You insisted on it.
why(46)
Bill insisted on it.
आपका कार्य whyअपनी भाषा में फ़ंक्शन को लागू करना है । फ़ंक्शन को इनपुट तर्क के साथ और उसके बिना काम करना चाहिए (वैकल्पिक रूप से इनपुट 0या उपयोग करें -1)। फ़ंक्शन को नाम दिया जाना चाहिए why(या, why(n)एसटीडीआईएन में लिखना उचित स्ट्रिंग में मुद्रित होना चाहिए)।
यदि कोई तर्क नहीं दिया जाता है, या तर्क शून्य या नकारात्मक है, तो आउटपुट स्ट्रिंग एक यादृच्छिक, वैध वाक्यांश होना चाहिए। तो, वहाँ एक समारोह होना चाहिए why, why(), why(0)या why(-1)एक यादृच्छिक वाक्य है कि रिटर्न।
यदि एक इनपुट तर्क, nदिया जाता है (फ़ंक्शन तर्क, एसटीडीआईएन नहीं), तो आउटपुट n'th स्ट्रिंग (नीचे परिभाषित) होना चाहिए। तो, why(1)हमेशा एक ही परिणाम का उत्पादन (प्रिंट / प्रदर्शन) करना चाहिए।
वाक्यों का निर्माण निम्न प्रकार से किया जाता है (टाइप 1, टाइप 2 और विशेष)। सभी वाक्यों के साथ समाप्त होता है !।
"Person" "ending" !
"Verb" "adjective" "Person" !
A list of special cases
व्यक्तियों की सूची:
Stewie
Peter
Homer
The programmer
The system manager
You
अंत की सूची:
suggested it
insisted on it
did it
क्रियाओं की सूची हैं:
To fool
To satisfy
To please
विशेषणों की सूची:
the smart
the bald
the tall
the rich
the stupid
विशेष मामलों की सूची:
How should I know?
Stop asking!
Don't ask!
गिने चुने का तरीका है:
वाक्यों के प्रकार:
Odd number => Type 1
Even number => Type 2
n % 7 = 0 => Type 3 (% is the modulus operator)
नाम: nth नाम को मापांक (%) का उपयोग करके परिभाषित किया गया है।
n = 1: 1 % 7 => Stewie
n = 2: 2 % 7 => Peter
...
n = 6: 6 % 7 => You
n = 7: 7 % 7 => How should I know?
n = 11: 11 % 7 => The programmer
n = 14: 14 % 7 => Stop asking!
n = 21: 21 % 7 => Don't ask!
एंडिंग्स: nth एंडिंग को भी मापांक के उपयोग से परिभाषित किया गया है। मान लें कि अंत (1, 2 और 3) की तरह सूचीबद्ध हैं (1 2 2 3)। जैसा कि संख्या हमेशा विषम होती हैं, उपयोग करें((n+1)/2 % 4)
n = 1: ((1+1)/2 % 4) => suggested it
n = 3: ((3+1)/2 % 4) => insisted on it
n = 13: ((13+1)/2 % 4) => did it
विशेषण: nth विशेषण को मापांक के उपयोग से परिभाषित किया गया है। जैसा कि संख्याएँ हमेशा होती हैं, उपयोग करें:(n % 10)/2
n = 2: (2 % 10)/2 => Smart
n = 6: (6 % 10)/2 => The tall
...
क्रिया: nth क्रिया को मापांक के उपयोग से भी परिभाषित किया जाता है। क्रियाओं को मानें (1, 2 और 3) को सूचीबद्ध किया गया है (1 2 2 3)क्योंकि संख्याएँ हमेशा क्रिया के लिए होती हैं, उपयोग करें(n % 8) / 2
n = 2: (2 % 8)/2 => To fool
n = 4: (4 % 8)/2 => To satisfy
n = 6: (6 % 8)/2 => To satisfy
n = 8: (8 % 8)/2 => To please
अब, एक यादृच्छिक बनाने का तरीका काफी सरल होना चाहिए, बस एक यादृच्छिक का चयन करें n।
कुछ उदाहरण:
why
You suggested it!
why
To fool the tall Homer!
why
Don't ask!
why(1)
Stewie suggested it!
why(14)
Stop asking!
why(8)
To please the rich Stewie!
मानक कोड गोल्फ नियम लागू होते हैं। जिस दिन चैलेंज पोस्ट किया गया था, उसमें से एक सप्ताह एक विजेता का चयन किया जाएगा।
/2को काम करने की आवश्यकता नहीं होनी चाहिए । यह भिन्नात्मक मूल्य देता है। 13भी होना चाहिए insisted(१४ / २ = =% ४ = ३ = २ पर जोर)।
the rich The programmerनिर्दिष्ट के कारण जैसे मामलों को समाप्त करते हैं तो क्या यह महत्वपूर्ण है the?
Theऔर Toआपकी सूचियों में संभवतः आपके उदाहरणों से मेल खाने के लिए कम होना चाहिए ...
whyयाWHYस्वीकार्य होगा ?