एल्गोरिदम विश्लेषण क्या है?
एल्गोरिदम (algorithm) कदमों की वह सूची है जो कोई काम हल करती है। एल्गोरिदम का विश्लेषण करने का मतलब है उसे ध्यान से जाँचना: वह क्या करता है और क्या-क्या हो सकता है?
शुरुआत में जो डेटा देते हैं वह इनपुट (input) है। आख़िर में जो निकलता है वह नतीजा (result या आउटपुट) है। एल्गोरिदम क्या करता है यह देखने के लिए उसे ट्रेस (trace) करते हैं: हर कदम हाथ से करो और हर कदम के बाद का मान लिख लो।
इनपुट से नतीजा: एक मामला ट्रेस करना
यह एल्गोरिदम लो: x पढ़ो, 2 से गुणा करो, 3 जोड़ो, नतीजा दो।
- इनपुट x = 4
- पहले कदम के बाद: 4 × 2 = 8
- दूसरे कदम के बाद: 8 + 3 = 11
- नतीजा: 11
मानों को छोटी तालिका में लिखो। तालिका से जल्दी पता चलता है कि गड़बड़ कहाँ हुई। अगर एल्गोरिदम में विकल्प है (अगर x 10 से बड़ा है ...), तो लिखो कि तुमने कौन-सी शाखा ली।
सभी संभव नतीजे
अक्सर पूछा जाता है: यह एल्गोरिदम कौन-कौन से नतीजे दे सकता है? पहले देखो कि कौन-से इनपुट मान्य हैं (जैसे 0 से 9 तक की पूरी संख्याएँ)। फिर हर इनपुट ट्रेस करो और नतीजे इकट्ठे करो।
x × 2 + 3 के नतीजे हैं 3, 5, 7, 9 ... 21। सब विषम हैं, क्योंकि x × 2 हमेशा सम होता है और 3 जोड़ने से विषम बन जाता है। इसलिए हर इनपुट आज़माए बिना कह सकते हैं कि सम नतीजा नामुमकिन है। ऐसा पैटर्न पहचानना ही विश्लेषण की असली कला है।
यह नतीजा किस इनपुट से आया? पीछे चलना
नतीजे से इनपुट खोजने के लिए कदमों को उल्टे क्रम में पलटो। आगे के कदम थे × 2, फिर + 3। तो पीछे: पहले − 3, फिर ÷ 2।
नतीजा 11: 11 − 3 = 8, 8 ÷ 2 = 4। इनपुट 4 था। जाँच के लिए फिर आगे चलो: 4 × 2 + 3 = 11। जाँच हमेशा करो।
अगर पीछे चलने पर ऐसी संख्या मिले जो मान्य नहीं है (भिन्न, ऋणात्मक संख्या या सीमा से बाहर), तो वह नतीजा नामुमकिन है। नतीजा 10: 10 − 3 = 7, 7 ÷ 2 = 3.5, पूरी संख्या नहीं, इसलिए नामुमकिन।
जब दो इनपुट का नतीजा एक हो
जिन एल्गोरिदम में विकल्प होता है, उनमें दो अलग इनपुट एक ही नतीजे पर पहुँच सकते हैं। यह लो: अगर n, 10 से बड़ा है तो नतीजा = n − 10, वरना नतीजा = n × 2। इनपुट 2 का नतीजा 4 है। इनपुट 14 का नतीजा भी 4 है। इसलिए सिर्फ़ नतीजा 4 देखकर इनपुट नहीं बता सकते। तुम्हें वे सभी इनपुट लिखने होंगे जो इसे दे सकते हैं।
मुख्य सूत्र और परिभाषाएँ
- आगे: इनपुट → कदम 1 → कदम 2 → नतीजा
- पीछे: नतीजा → आख़िरी कदम पलटो → पहला कदम पलटो → इनपुट
- उल्टी क्रियाएँ: + और −, × और ÷
- जवाब की जाँच हमेशा एल्गोरिदम आगे चलाकर करो
हल किए गए उदाहरण
1. एल्गोरिदम: x लो, 2 से गुणा करो, 3 जोड़ो। x = 7 का नतीजा निकालो।
7 × 2 = 14, फिर 14 + 3 = 17। नतीजा 17 है।
2. इसी एल्गोरिदम का नतीजा 21 आया। इनपुट कौन-सा था?
पीछे चलो। 21 − 3 = 18, और 18 ÷ 2 = 9। जाँच: 9 × 2 + 3 = 21। इनपुट 9 था।
3. क्या इसी एल्गोरिदम का नतीजा किसी पूर्ण संख्या इनपुट के लिए 12 हो सकता है?
12 − 3 = 9, और 9 ÷ 2 = 4.5। यह पूरी संख्या नहीं है। इसलिए 12 नामुमकिन है। असल में हर नतीजा विषम होता है, इसलिए कोई सम संख्या संभव नहीं।
4. एल्गोरिदम: अगर n > 10 तो नतीजा = n − 10, वरना नतीजा = n × 2। n = 7 और n = 25 के नतीजे निकालो।
n = 7, 10 से बड़ा नहीं है, इसलिए नतीजा = 7 × 2 = 14। n = 25, 10 से बड़ा है, इसलिए नतीजा = 25 − 10 = 15।
5. पिछले उदाहरण के एल्गोरिदम में वे सभी इनपुट खोजो जिनका नतीजा 4 है।
शाखा 1 (n ≤ 10): n × 2 = 4, तो n = 2। यह ≤ 10 है, इसलिए मान्य। शाखा 2 (n > 10): n − 10 = 4, तो n = 14। यह > 10 है, इसलिए मान्य। इनपुट 2 और 14 हैं।
आम गलतियाँ
- कदमों को उसी क्रम में पलटना। पीछे चलने में आख़िरी कदम सबसे पहले पलटता है।
- उल्टी क्रिया इस्तेमाल करना भूल जाना, जैसे कदम घटाना था और फिर घटा देना।
- यह न जाँचना कि मिला हुआ इनपुट मान्य है या नहीं (पूरी संख्या, सीमा के अंदर)। अगर नहीं है तो नतीजा नामुमकिन है।
- सोचना कि एक नतीजे का मतलब एक ही इनपुट। शाखाओं वाले एल्गोरिदम में दो या ज़्यादा इनपुट का नतीजा एक हो सकता है।