1.2.38 · D3 · HinglishIntroduction to Programming (Python)

Worked examplesClassic recursion — factorial, Fibonacci, binary search

3,095 words14 min read↑ Read in English

1.2.38 · D3 · Coding › Introduction to Programming (Python) › Classic recursion — factorial, Fibonacci, binary search


Scenario matrix

Har recursion problem situations ke ek chhote grid mein kahin na kahin hoti hai. Agar koi walkthrough tumhe koi cell kabhi na dikhaye, toh jab woh aaye toh tum andaaze laga rahe hoge. Yeh hai woh poora grid jo hum cover karenge — har cell mein woh tricky cheez ka naam hai jo wahan galat ho sakti hai.

# Machine Scenario class Tricky cheez
A factorial typical n>0 multiplications stack hoti hain, phir unwind hoti hain
B factorial boundary n=0 base case seedha fire karta hai, koi recursion nahi
C factorial invalid n<0 0 ke neeche koi base case nahi → infinite recursion
D fibonacci boundary n=0, n=1 do base cases, kyun do
E fibonacci typical n≥2 naive call tree branch karta hai aur kaam repeat karta hai
F fibonacci same n memoized har subproblem ek baar compute hota hai
G binary search target present halving index par converge karta hai
H binary search target absent range collapse hoti hai (lo>hi) → -1
I binary search target edge par pehla ya aakhri element, off-by-one ka khatre
J binary search unsorted input "ek half phenko" logic invalid hai
K word problem real-world phone-book / dictionary lookup as binary search

Neeche ke examples un cell(s) se tagged hain jo unhe hit karte hain. Saath milke yeh A–K ko touch karte hain.


Example 1 — factorial, typical case n=4 (cell A)


Example 2 — factorial boundary n=0 (cell B)


Example 3 — factorial invalid n=-3 (cell C, degenerate)


Example 4 — Fibonacci base cases n=0, n=1 (cell D)


Example 5 — naive Fibonacci fib(5), repeated work (cell E)


Example 6 — memoized Fibonacci fib(30) (cell F)


Example 7 — binary search, target present (cell G)


Example 8 — binary search, target absent (cell H, degenerate collapse)


Example 9 — binary search edges par (cell I, off-by-one)


Example 10 — binary search UNSORTED input par (cell J, invalid precondition)


Example 11 — real-world word problem (cell K)


Recall Matrix par quick self-test

factorial(-2) kya karta hai, aur kyun? ::: RecursionError raise karta hai — n-1, base case 0 se door move karta hai, isliye kabhi terminate nahi karta. Fibonacci ko do base cases kyun chahiye lekin factorial ko ek? ::: fib do steps peeche jaata hai (n-1 aur n-2), isliye do known starting values chahiye warna 0 ke neeche recurse karta hai. Binary search kya return karta hai, aur missing target kaise detect karta hai? ::: -1, detect hota hai jab range lo > hi par collapse ho jaati hai (empty window). Binary search ne kisi aise value ke liye -1 return kiya jo tumhe pata hai present hai — likely cause? ::: Array sorted nahi tha; halving logic unsorted data par invalid hai. 1,000,000 sorted items par binary search ke worst-case comparisons? ::: 20 (1,000,000 ka log base 2 ka ceil).


Connections