यादृच्छिक गणितीय अभिव्यक्तियों को उत्पन्न करने और उनका मूल्यांकन करने के लिए मेरे पास यह विचार मेरे दिमाग में घूम रहा है। इसलिए, मैंने इसे परीक्षण करने के लिए कोडिंग करने से पहले, इसे एक शॉट देने और एक एल्गोरिथ्म को विस्तृत करने का फैसला किया।
उदाहरण:
यहाँ कुछ उदाहरण अभिव्यक्तियाँ हैं जिन्हें मैं बेतरतीब ढंग से उत्पन्न करना चाहता हूँ:
4 + 2 [easy]
3 * 6 - 7 + 2 [medium]
6 * 2 + (5 - 3) * 3 - 8 [hard]
(3 + 4) + 7 * 2 - 1 - 9 [hard]
5 - 2 + 4 * (8 - (5 + 1)) + 9 [harder]
(8 - 1 + 3) * 6 - ((3 + 7) * 2) [harder]
आसान और मध्यम लोगों सुंदर सीधी-सपाट हैं। int
बेतरतीब ऑपरेटरों द्वारा रैंडम एस को अलग किया गया, यहां कुछ भी पागल नहीं है। लेकिन मुझे कुछ परेशानी शुरू हो रही है, जो कठिन और कठिन उदाहरणों में से एक बना सकती है । मुझे यकीन नहीं है कि एक एकल एल्गोरिथ्म मुझे अंतिम दो दे सकता है।
मैं क्या विचार कर रहा हूं:
मैं यह नहीं कह सकता कि मैंने उन विचारों को आजमाया , क्योंकि मैं वास्तव में उस दिशा में जाने में ज्यादा समय बर्बाद नहीं करना चाहता था, जिसमें पहली बार काम करने का कोई मौका नहीं था। लेकिन फिर भी, मैंने कुछ समाधानों के बारे में सोचा:
- पेड़ों का उपयोग करना
- नियमित अभिव्यक्ति का उपयोग करना
- एक पागल "फॉर-टाइप" लूप का उपयोग करना (निश्चित रूप से सबसे खराब)
मैं जिस चीज़ की तलाश कर रहा हूँ:
मैं जानना चाहता हूं कि आप किस रास्ते पर जाना चाहते हैं, जो मैंने सोचा था, और आपके खुद के विचारों के बीच जाना सबसे अच्छा है।
यदि आप शुरू करने का एक अच्छा तरीका देखते हैं, तो मैं सही दिशा में एक लीड की सराहना करूँगा, जैसे कि एल्गोरिथ्म की शुरुआत, या इसकी एक सामान्य संरचना।
यह भी ध्यान दें कि मुझे उन भावों का मूल्यांकन करना होगा। यह अभिव्यक्ति उत्पन्न होने के बाद या इसके निर्माण के दौरान भी किया जा सकता है। यदि आप इसे अपने उत्तर में ध्यान में रखते हैं, तो यह बहुत अच्छा है।
मैं कुछ भी भाषा से संबंधित नहीं देख रहा हूं, लेकिन रिकॉर्ड के लिए, मैं इसे ऑब्जेक्टिव-सी में लागू करने के बारे में सोच रहा हूं, क्योंकि हाल ही में मैं जिस भाषा के साथ काम कर रहा हूं।
उन उदाहरणों में :
ऑपरेटर शामिल नहीं था , क्योंकि मैं केवल int
एस में हेरफेर करना चाहता हूं , और यह ऑपरेटर कई सत्यापन जोड़ता है। यदि आपका जवाब इस एक को संभालने का समाधान देता है, तो यह बहुत अच्छा है।
यदि मेरे प्रश्न को किसी स्पष्टीकरण की आवश्यकता है, तो कृपया टिप्पणियों में पूछें। आपकी सहायता के लिए धन्यवाद।