Is Recursion Always Good_ _ C Tutorial In Hindi #29
51 views
Feb 15, 2024
In the video "Is Recursion Always Good? | C Tutorial In Hindi #29," the tutorial likely explores the concept of recursion in the context of C programming, discussing its advantages and limitations. It may delve into scenarios where recursion is beneficial for solving problems efficiently and concisely, as well as situations where it may lead to issues such as stack overflow or reduced performance. The video may provide examples and explanations to illustrate both the benefits and drawbacks of using recursion in programming. Overall, it aims to help Hindi-speaking learners understand when recursion is suitable and when alternative approaches may be preferable for solving certain programming tasks.
View Video Transcript
0:00
Guys, मैंने आप लोगों को recursion पे एक exercise दी थ��
0:03
और मैंने उसमें आप लोगों को दिखाया किस तरह हम लोग Fibonacci सीरीज क��
0:07
जब nth element print कर रहे थे तब जब हमने iterative strategy यूज़ कर��
0:11
तो काफी अच्छी तरह हम fast उसको retrieve कर पा रहे थे लेकिन जैसे ही हमने recursive strategy use करी तो वो slow हो गय��
0:17
जिसने इस point को prove किया कि recursion हमेशा अच्छा नहीं होता ह��
0:21
लेकिन क्यों ऐसा होता क्यों है ये आज की video का मुद्दा ह��
0:24
मैं इसको बहुत अच्छी तरह breakdown करूँगा आप लोग के लिए simply समझाऊँगा और जितना complicated इसको बना जाता है उतना ये है नहीं
0:31
आप लोग मुझे पर भरोसा करें, और मेरी बात को ध्यान से सुनें, यहाँ पर मैं कहूँगा कि जितने भी लोग यह भी सुन रहे हैं
0:37
बहुत ध्यान से आप लोग सुनना, क्योंकि थोड़ा सा ये, मैं यह नहीं कहूँगा difficult है लेकिन अगर आप लोग नहीं सुनेंगे तो समझ में नहीं आएग��
0:43
recursion हमारा जो recursive approach है वो slow क्यों हुआ देखो मैंने यह बोला था कि जो fib n ह��
0:50
मालो मैं iterative strategy का use कर रहा हूँ तब क्या होगा मैंने यहाँ पर बोला कि fib 0 को निकालो ठीक ह��
0:57
फिर मैंने बोला fib 1 को निकालो ठीक है तो यहाँ पर क्या आ गय��
1:02
यह 0 था यह 1 था फिर मैंने बोला जो fib 2 निकालोगे ��
1:07
उसको किस तरह निकालोगे उसको इन दोनों को जोड़ के निकाल देन��
1:10
कैस क्या आ गया 1 आ गया फिर मैंने जो बोला कि यो fib 3 है ��
1:15
उसको निकाल देना इन दोनों को जोड़के तो मैंने बोला वो यहाँ गय��
1:18
फिर मैंने बोला जो Fib 4 है उसको निकाल देना इन दोनों को आड़ करक��
1:23
अब मेरी बात को आप ध्यान से सुनना मैं यहाँ पर क्या बता रहा हूँ यह 3 and so on
1:27
अगर मैं आप लोगों से सवाल पूछूँ कि Fib 0 कितनी बार calculate हु��
1:31
तो आप लोग कहेंगे यार एक बार हुआ calculate मैं बोलूं Fib 1 कितनी बार calculate हु��
1:36
आप बोलेंगे दो बार हुआ calculate sorry एक बार हुआ calculate मैं बोलूंगा Fib 2 कितनी बार calculate हु��
1:41
तो आप लोग बोलेंगे यह भी एक बार हुआ फिर मैं आपसे पूछते जाओंगा और आपका जवाब बदलेगा नही��
1:45
आप कहेंगे सिर्फ एक बार हुआ और यह सारे के सारे कितनी बार evaluate हुए और कब तक evaluate हु��
1:50
तब तक you evaluate होगे जब तक आप n पे न पहुँच जाए अगर n की value 4 है तो यह 3 return हो जाएगा यहीं प��
1:55
और यह यहीं पर रुख जाएगा तो कुल मैंने कितनी calls यहाँ पर लगी मुझ��
1:59
Fib n तक आने में 1, 2, 3, 4, 5 n की value 4 थी तो 5 calls लग��
2:04
तो यहाँ पर मुझे n plus 1 function calls लग रही है लेकिन यही थीज़ अगर मैं recursive approach से करू��
2:10
तो number of lines of code तो कम लगेगा जैसे कि हम लोगों ने देखा थ��
2:14
लेकिन यहाँ पर मैंने क्या बोला था मैंने बोला था fib n जो होता ह��
2:18
वो sum होता है किसका fib n minus 1 का और fib n minus 2 क��
2:25
मैंने बोला इनको निकाल लो और इनको add कर लो ठीक है इन दोनों को क्या कर ल��
2:31
add कर लो और उसी के साथ साथ फिर क्या हुआ Fib n Fib n break down break down n value 0 1 0 1
3:05
sorry, fib2 में और fib1 में, fib2 और fib1 में ये मेरा fib3 तूटेगा, ठीक है, और fib2 किसमें तूटेगा
3:15
fib1 में तूट जाएगा, और fib0 में तूट जाएगा, और ये हमारी base condition है, ठीक है
3:21
तो अगर मैं आप लोगों से एक simple सा सवाल पूछूं, कि fib2 कितनी बार calculate हुआ
3:25
तो ये देखो एक दो, दो बार calculate हुआ Fib 1 कितनी बार calculate हुआ, दो बार calculate हु��
3:31
उसे के साथ से अगर आप यहाँ पर एक बड़ा number रखेंगे जैसे 40 हम लोग ने रखा था, 42 रखा थ��
3:36
तो आप लोग देखेंगे बहुत सारी redundant function calls लग रही है मुझे यहाँ पर Fib 2 को दो बार क्यों निकालना पड़��
3:43
और अगर क्योंकि मुझे निकालना पड़ा इस recursive approach में तो मुझे उसकी cost पे करनी पड़ेगी time के form मे��
3:50
मुझे time जादा लगेगा इस बात को समझने की आप कोशिश करि��
3:54
मैं आप लोगों को recursion tree दिखाता हूँ तो ये है मेरा recursion tree
3:58
Fib 4 वाले example के लिए तो मैंने यहाँ पर बोला जो Fib 4 थ��
4:02
वो था Fib 3 sorry Fib 2 और Fib 3 फिर उसके बाद यहाँ पर यह Fib 2 में तूट��
4:13
और Fib 3 में तूटा जैसे कि मैंने आप लोगों को दिखाया Fib2 और Fib3 में तूटा और यह वापस से Fib0 और Fib1 में तूटा और यह Fib3 जो है यह Fib1, Fib2 में तूटा और मुझे यहाँ पर देखो Fib1 कितनी बार लगा 1, 2, 3, 1, 2, 3, 3 बार Fib1 लगा और 1, 2, 2 बार मुझे क्या लगा Fib0 लग��
4:35
तो मुझे ये सारी की सारी calls multiple time लग रही ह��
4:40
एक recursive value को evaluate करने में यानि कि अगर मैं यहाँ प��
4:45
fib 42 लिखूं और मैं इसको तोड़ता जाओं मानलो मैं यहाँ पर इसको तोड़��
4:49
मैं fib नहीं लिख रहा हूँ सिर्फ 41 और 40 लिख रहा हूँ और इसके बाद मैंने इसको तोड़ा किस मे��
4:55
मैंने इसको तोड़ा 40 में और 39 में ठीक है और उसी के साथ 40 को मैंने तोड़��
5:01
39 और 38 में फिर 39 को मैंने तोड़ा 38 और 37 मे��
5:07
38 को तोड़ा किस में 37 और 36 में तो आप लोग देखो ये 37 ही मेर��
5:12
एक, दो, और भी कई बार लगेगा 38 36 37
5:27
इशू यह है कि number of calls जो है, वो exponentially grow करती जा रही है
5:31
और यहाँ पर जो है overhead बहुत जादा आ रहा है जिस काम को हम आसानी से कर सकते थ��
5:36
वो काम को हमने complex बना दिया recursion से और क्या बड़ा time जादा लग रहा ह��
5:41
तो हमने time complexity को unnecessarily बढ़ा दिया यहाँ पर तो यह चीज आप लोग समझने की कोशिश करि��
5:46
मैं आप लोगों को एक quiz देना चाता हूँ मैं आपको लिखूँगा quick quiz
5:51
और अगर आप लोग इस course को थोड़ा सा भी seriously देख रहे है��
5:56
तब आप लोग नीचे challenge accepted लिखें और उसके बाद मुझे इस quiz का जवाब दें आप लो��
6:01
आप लोग को मुझे बताना है कि जो Fib 22 है उसमें आपन��
6:07
उसमें आपने Fib 19 को कितनी बार call करना होगा यह मुझे बताना है आपको कितनी बार लगेग��
6:13
Fib 19 आपको recursion tree बनाना है बिल्कुल इसी तरह और उसमें देखना है और तब तक बनाना ह��
6:17
जब तक आप लगता है कि Fib 19 नहीं आने वाला तो आप लोग को मुझे बताना है Fib 19 को कितनी बार आप लोगों ने call किय��
6:23
नीचे आप अभी के अभी challenge accepted लिखें अगर आप थोड़ा सा भी serious हैं इस course को लेक��
6:27
चुकी मैंने तो जिम्मेदारी ले ली है आप लोग को C programming अच्छी तेरा modern way में पढ़ाने क��
6:31
तो मैं चाहता हूँ कि आप लोग भी corporate करके इस quiz को solve करें और मुझे बताए कि क्या answer आया ह��
6:36
और उसके बद मैं आप लोगों को comment में ही pin करके answer बताऊंग��
6:40
तो इसलिए जल्दी से आप लोग नीचे कमेंट करें जितने भी लोग कमेंट करेंगे चालेंज एक्सेबे��
6:45
सबको मैं एक एक दिल दूँगा अगर आप लोग सीरियसली स्कोर्स को देख रहे हैं तो डेफिनिटली मेरी तरफ से भी आपको रिस्पॉंस मिलेग��
6:50
मैं आप लोगों को एक हर्ट दूँगा कमेंट में तो ये आप लोगों को समझ में आया की नही��
6:55
ये मुझे बताना मैं आशा करता हूँ समझ में आगे होगा सब लोगों को अब यहाँ पर मैं इसको समराइस कर देता हू��
7:01
कि in a nutshell इस चीज़ का क्या मतलब है देखो recursion एक अच्छा approach होता ह��
7:06
when it comes to programming बहुत अच्छी technique है मैं यह नहीं कहा रहो recursion खराब ह��
7:09
लेकिन एक बार आप recursion अकर use कर रहे हैं आप programmer है��
7:14
तो आपको evaluate करना है programmer needs to evaluate the need and impact of using
7:20
recursive iterative approach कि कौन सा approach use करना है recursive या फिर iterative किसी भी एक particular problem को solve करने के लि��
7:26
अब होता किया है कि ज़रूरी नहीं है कि आप लोगों को जो problem दी जा रही ह��
7:31
वो इसी तरह की हो factorial निकालने की या फिर Fibonacci sequence निकालने क��
7:35
nth number निकालने की Fibonacci sequence में आप लोगों को ऐसी problem भी दी जा सकती ह��
7:40
जो कि कभी पहले solve नहीं हुई है और अगर आप लोग industry वगरा में काम करेंग��
7:44
तब आप लोग को यही पता चलेगा कि आप लोग को जितनी problem थमाई जा रही हैं वो सारी क��
7:48
सारी पहले solve नहीं हुई है तो इसी लिए आप लोग क��
7:52
decision decision practice decision decision rumors recursion recursion use recursion
8:07
लेकिन नहीं ऐसा नहीं है तो यह बहुत ज़्यादा important topic हो जाता ह��
8:11
और इसलिए C programming के course में यह चीज़ में आप लोगों को समझाना चाहता था recursions के साथ सा��
8:15
अब यहाँ पर factorial calculation में recursion आपने use किया हमें काफी lines बची code की और हमारा काम हो गय��
8:22
अगर आप लोग देखें कितनी function calls लग रही हैं तो आप लोग देख सकते हैं recursion की मदद से factorial calculation में iterative versus recursive
8:30
तो आप लोग वहाँ पर जाके देख सकते हैं हमें काफी lines बची कोड की तो ये इसलिए हमारे लिए factorial का जो calculation था वो recursion की मदद स��
8:38
काफी हमको अच्छा पड़ा, हमको फायदा हुआ उसका, ठीक है, however Fibonacci series में क्या हु��
8:44
जो recursion था, वो backfire कर गया हमारे उपर हमने recursion use किया, लेकिन हमन��
8:49
time को इतना जादा बढ़ा दिया, हमने अपने program को, time complexity
8:53
को इतना जादा बढ़ा दिया, कि वो intolerable हो गया, आप लोगों ने देखा जब आप लोगों ने 41, 42 के लिए निकाल��
8:58
तब seconds में time चला गया, यानि कि आप लोग wait कर रहे हैं और देख रहे हैं और आप लो��
9:02
को पता भी नहीं चला कि कब क्या कहते हैं आपका ये Fibonacci
9:06
इस इटरेटिव निकाल दिया लेकिन जब आप रिकर्ड से वह प्रोस्ट्र निकाल लेते फिबोना� original तब आप लोगो��
9:11
ने देखा कि काफी टाइम लग रहा है तो उसका रिजन मैंने आप लोगों को बताया उसका रिजन क्या है उसका रिज��
9:17
recursion tree से समझाए जा सकता है कि एक ही चीज को वो बार बार दोहरा रहा है
9:21
Fib 0 को बार बार calculate करेगा, Fib 2 को करेगा बार बार calculate, अगर एक से भी जादा बार calculate हो रहा है, तो वो सही नहीं है
9:27
तो इसलिए बार बार calculate करेगा, 42 का tree जब बनेगा, अगर आप लोग यहाँ पर 42 का tree बनाएंग��
9:33
तब आपको पता चलेगा कि कितनी सारी redundant function calls लगी ह��
9:36
तो इसलिए मैंने यहाँ पर लिखा है running time of a Bonacci series grows exponentially with input
9:41
क्योंकि जो number of calls हैं वो exponentially बढ़ती जा रही ह��
9:46
recursive approach में obviously तो मैं आशा करता हूँ कि आप लोगों को समझ में आ गई होगी बा��
9:51
तो recursion हमेशा हमारे लिए अच्छा नहीं होता है हमको evaluate करना पड़ेगा कि कब recursion हमारे लिए अच्छा ह��
9:57
और कब iterative approach हमारे लिए अच्छा है मैं आशा करतो आप लोग कोई वीडियो समझ में आया होग��
10:02
So guys अभी के लिए इस वीडियो में इतना ही मैं चाहता हूँ कि सभी के सब इस वीडियो को अभी के अभी like जरूर से कर दे��
10:07
और मुझे आप लोग contact कर सकते हैं Facebook, Instagram पर वीडियो को like जरूर करन��
10:12
और question हो तो comment जरूर करना और further reading वगैरा के लिए कुछ भी होग��
10:16
मैं नीचे description में जरूर डाल दूँगा so guys अभी के लिए इस वीडियो में इतना ह��
10:20
thank you so much guys for watching this video and I will see you next time
#C & C++
#Computer Education
#Computer Science