Fibonacci Series
Fibonacci series क्या है
Fibonacci series वो क्रम है जहाँ हर number अपने से पहले दो का जोड़ होता है। यह 0, 1 से शुरू होता है, फिर 1, 2, 3, 5, 8, 13... जारी रहता है। यह पसंदीदा programming अभ्यास है और प्रकृति में मिलने वाला सुंदर pattern भी।
Loop से Fibonacci
n = 8
a, b = 0, 1
for i in range(n):
print(a, end=" ")
a, b = b, a + b
हम दो numbers रखते हैं, a और b। हर round हम a print करते हैं, फिर दोनों update करते हैं ताकि वे क्रम में आगे बढ़ें।
Dry run
| Step | print a | नया a (= b) | नया b (= a+b) |
|---|---|---|---|
| 1 | 0 | 1 | 1 |
| 2 | 1 | 1 | 2 |
| 3 | 1 | 2 | 3 |
| 4 | 2 | 3 | 5 |
| 5 | 3 | 5 | 8 |
| ऐसे चलता रहता: 0 1 1 2 3 5 8 13 ... | |||
Fibonacci में हर number पिछले दो का जोड़ है। line a, b = b, a+b एक साथ a को b और b को a+b बना देती है। तो series आगे बढ़ती है: 0,1,1,2,3,5,8...
a, b = b, a+b कैसे काम करता है
यह एक line program का दिल है। Python पहले मौजूदा values से पूरी दाईं ओर निकालती है, फिर दोनों variables एक साथ assign करती है:
a, b = b, a + b
# दाईं ओर पुराने a और b इस्तेमाल होते हैं
# फिर a = पुराना b, b = पुराना a + पुराना b
चूँकि दोनों एक साथ update होते हैं, आपको पुरानी value रखने को temporary variable नहीं चाहिए — Python इसे आपके लिए संभालती है।
Recursion से Fibonacci
def fib(n):
if n <= 1:
return n
return fib(n - 1) + fib(n - 2)
for i in range(8):
print(fib(i), end=" ")
यह गणित से मेल खाता है: fib(n) = fib(n-1) + fib(n-2), base cases fib(0)=0 और fib(1)=1 के साथ। यह सुंदर है पर बड़े n के लिए धीमा — बड़ी series को loop इस्तेमाल कीजिए।
आम गलतियाँ
- गलत starting values।
a, b = 0, 1से शुरू कीजिए, वरना पूरी series खिसक जाती है। - a और b अलग-अलग update करना।
a, b = b, a+bएक line में कीजिए, वरना दूसरा update नया a इस्तेमाल करता है। - बड़े n के लिए deep recursion। साधारण recursion बहुत धीमी है — loop बेहतर।
- Recursion में base case भूलना।
if n <= 1बिना यह कभी नहीं रुकती।
सारांश
- Fibonacci: हर number पिछले दो का जोड़, 0, 1 से शुरू।
- Loop दो numbers रखता है और उन्हें बारी-बारी print करता है।
a, b = b, a+bदोनों एक साथ update करता है — कोई temp variable नहीं।- Recursion गणित से मेल खाती है पर बड़े n के लिए धीमी।
- लंबी series print करने को loop इस्तेमाल कीजिए।
आगे, आज़माइए factorial program, या अभ्यास कीजिए Python loops।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
Fibonacci series क्या है?
Python में a, b = b, a+b कैसे काम करता है?
a पुराना b बन जाता है, और b पुराना a + b — दोनों एक साफ़ line में update, बिना temporary variable।