कभी-कभी एक गणित समस्या को कई इनपुट के साथ चलाना उपयोगी होता है। इस चुनौती का लक्ष्य एक ऐसा कार्यक्रम बनाना है जो इस कार्य को आसान बनाता है।
संख्या पैदा करने वाले भाव
आपको 3 प्रकार की अभिव्यक्ति का समर्थन करना चाहिए:
- एकल संख्या जनरेटर: बहुत सरल, बस एक शाब्दिक संख्या
- मल्टी-नंबर जनरेटर: एक बालक अधिक जटिल। पैर वर्ग कोष्ठक (
[]) से घिरे होते हैं । संख्याएँ अल्पविराम (,) अभिव्यक्ति में अलग होती हैं। उदाहरण है[-1,2,3.26]। - रेंज जनरेटर: यह एक घुंघराले ब्रेसिज़ (
{}) से घिरा हुआ है । इसमें 3 नंबर एक अल्पविराम द्वारा अलग होंगे। इस अभिव्यक्ति का प्रारूप है{start,stop,step}।startऔरstopसमावेशी हैं।
मूल्यांकन के नियम
- आपको संचालन के क्रम का समर्थन करना चाहिए। ( https://en.wikipedia.org/wiki/Order_of_operations#Definition )
- आपको कोष्ठक का समर्थन करने की आवश्यकता नहीं है।
- अभिव्यक्ति में कोई भी स्थान हो सकता है।
- आपको फ़्लोटिंग पॉइंट नंबरों का समर्थन करना चाहिए (जो भी आपकी भाषा की सटीकता ठीक है)।
0परिणामों में विभाजनNaN(एक संख्या में नहीं)।
आपके कार्यक्रम को गुणा ( *), विभाजन ( /), जोड़ ( +) और घटाव ( -) का समर्थन करना चाहिए ।
उत्पादन
आउटपुट की प्रत्येक पंक्ति जनरेटर के संयोजनों में से एक है। प्रारूप अभिव्यक्ति है (वास्तविक संख्याओं में इसे प्रतिस्थापित किया गया है) इसके बाद एक बराबर चिन्ह ( =) और मूल्यांकन का परिणाम है। जनरेटर के सभी संयोजनों को आउटपुट में प्रस्तुत किया जाना चाहिए।
उदाहरण
( >>>इनपुट को दर्शाता है)
>>>3 * [3,2]
3 * 3 = 9
3 * 2 = 6
>>>{1,2,3}
1 = 1 <-- this is because 1 + 3 > the end
>>>{0,2,1} + {0,1,1}
0 + 0 = 0
1 + 0 = 1
2 + 0 = 2
0 + 1 = 1
1 + 1 = 2
2 + 1 = 3
>>>6/[2,3]
6/2 = 3
6/3 = 2
>>>{1.5,2.5,0.5}
1.5 = 1.5
2 = 2
2.5 = 2.5
>>>3-{6,5,-1}
3-6 = -3
3-5 = -2
>>>5/{-1,1,1}
5/-1 = -5
5/0 = NaN
5/1 = 5
>>>4.4 / [1,2.2] + {0,2,1}
4.4 / 1 + 0 = 4.4
4.4 / 1 + 1 = 5.4
4.4 / 1 + 2 = 6.4
4.4 / 2.2 + 0 = 2
4.4 / 2.2 + 1 = 3
4.4 / 2.2 + 2 = 4
>>> [1,2] / 0 + 5
1 / 0 + 5 = NaN
2 / 0 + 5 = NaN
कार्यक्रम को छोटा करने की आवश्यकता है इसलिए मैं इसे याद कर सकता हूं और इसे कहीं भी उपयोग कर सकता हूं।
सैंडबॉक्स में इस पोस्ट के साथ मेरी मदद करने के लिए @PeterTaylor और @geokavel को धन्यवाद
x/0NaN के लिए तत्काल मूल्यांकन होता है, या क्या मुझे NaN को एक मूल्य के रूप में मानना है?