Posts

Recursion Algorithm (Bangla)

 Recursive Function( āĻĒুāύāϰাāĻŦৃāϤ্āϤ āĻĢাংāĻļāύ)

āϝāĻĻি āĻāĻ•āϟা function āύিāϜেāĻ•ে āύিāϜে call āĻ•āϰে āϤাāĻšāϞে āϤাāĻ•ে āĻŦāϞে, Recursive function. āĻāϟাāĻ•ে Recursive āĻŦāϞা āĻšāϝ় āĻ•াāϰāĻŖ āĻāϟা āĻĒুāύāϰাāĻŦৃāϤ্āϤিāĻŽূāϞāĻ•āĻ­াāĻŦে āύিāϜেāĻ•ে call āĻ•āϰে।

āĻ•েāύ āφāĻŽāϰা āϰিāĻ•াāϰ্āϏāύ āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰāĻŦ?

Recursion āĻāĻ•āϟি āϜāϟিāϞ āϏāĻŽāϏ্āϝা āĻ•ে āϏিāĻŽ্āĻĒāϞ āĻ•āϰāϤে āĻĒাāϰে। āϤāĻŦে āϤুāĻŽি āϝāĻĻি āĻāĻ•āϟি āϏāĻšāϜ āĻĒ্āϰāĻŦāϞেāĻŽ āϏāϞāĻ­ āĻ•āϰāϤে āϰিāĻ•াāϰ্āϏāύ āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰো। āϤাāĻšāϞে āĻāϟা āϤোāĻŽাāϰ Code āĻ•ে āφāϰāĻ“ āϜāϟিāϞ āĻ•āϰāĻŦে ।

Recurtion Algorithm āĻāϰ āĻĻুāχāϟা āĻ…ংāĻļ āϰāϝ়েāĻ›ে:
1. Base Condition (A stopping Condition)
2. Call the function itself.

Factorial Function 

Factorial function āĻāĻ•āϟি āĻ—āĻŖিāϤেāϰ āĻĢাংāĻļāύ, āϝা āĻāĻ•āϟি āĻĒূāϰ্āĻŖāϏংāĻ–্āϝাāϰ āϏāĻŦ āϧāύাāϤ্āĻŽāĻ• āĻĒূāϰ্āĻŖāϏংāĻ–্āϝাāϰ āĻ—ুāĻŖāĻĢāϞ āύিāϰ্āĻŖāϝ় āĻ•āϰে। āϧāϰা āϝাāĻ• n  āĻāĻ•āϟি āĻĒূāϰ্āĻŖāϏংāĻ–্āϝা, āϤাāĻšāϞে āĻāϰ āĻĢ্āϝাāĻ•্āϟোāϰিāϝ়াāϞ n!  āĻĻ্āĻŦাāϰা āĻĒ্āϰāĻ•াāĻļ āĻ•āϰা āĻšāϝ়, āĻāĻŦং āĻāϟি 
n * (n-1) * (n-2) * ....... * 1 āĻāϰ āϏāĻŽাāύ।

āωāĻĻাāĻšāϰāĻŖ: 5! = 5 * 4 * 3 * 2 * 1 = 120
0! = 1 āĻāĻŦং 1! = 1

āĻāϟি n āĻĨেāĻ•ে āĻļুāϰু āĻ•āϰে 1 āĻĒāϰ্āϝāύ্āϤ āϏāĻŦ āĻĒূāϰ্āĻŖ āϏংāĻ–্āϝাāϰ āĻ—ুāĻŖāĻĢāϞ।

Iterative Factorial with explaination





def iterative_factorial(n):
    result = 1
    for i in range(1,n+1):
        result = result * i

    return result
print(iterative_factorial(5))


----- 



āĻŦ্āϝাāĻ–্āϝা:


1. āĻĢাংāĻļāύ āĻĄেāĻĢিāύিāĻļāύ: iterative_factorial(n) āĻāĻ•āϟি āĻĢাংāĻļāύ āϝা āχāύāĻĒুāϟ āĻšিāϏেāĻŦে āĻāĻ•āϟি āϏংāĻ–্āϝা n āύেāϝ় āĻāĻŦং āĻāϰ āĻĢ্āϝাāĻ•্āϟোāϰিāϝ়াāϞ āĻŦেāϰ āĻ•āϰে।



2. āĻļুāϰু āĻŽাāύ: result = 1 āĻĻিāϝ়ে āĻļুāϰু āĻ•āϰা āĻšāϝ়েāĻ›ে, āĻ•াāϰāĻŖ āĻĢ্āϝাāĻ•্āϟোāϰিāϝ়াāϞেāϰ āϜāύ্āϝ āĻ•োāύো āϏংāĻ–্āϝাāϰ āĻĢ্āϝাāĻ•্āϟোāϰিāϝ়াāϞ ā§§ āĻĻিāϝ়ে āĻļুāϰু āĻšāϝ়।



3. āϞুāĻĒ: for i in range(1, n + 1) āϞুāĻĒāϟি ā§§ āĻĨেāĻ•ে n āĻĒāϰ্āϝāύ্āϤ āĻĒ্āϰāϤিāϟি āϏংāĻ–্āϝাāϰ āϜāύ্āϝ āϚāϞে। āĻāĻ–াāύে, range(1, n + 1) āĻŽাāύে ā§§ āĻĨেāĻ•ে n āĻĒāϰ্āϝāύ্āϤ āϏāĻŦāĻ—ুāϞো āϏংāĻ–্āϝা āύেāĻŦে।



4. āĻ—ুāĻŖ āĻ•āϰা: āϞুāĻĒেāϰ āĻĒ্āϰāϤিāϟি āϧাāĻĒে, result = result * i āĻāϰ āĻŽাāϧ্āϝāĻŽে āφāĻ—েāϰ āĻŽাāύেāϰ āϏাāĻĨে āĻŦāϰ্āϤāĻŽাāύ āϏংāĻ–্āϝা i āĻ•ে āĻ—ুāĻŖ āĻ•āϰা āĻšāϝ়। āĻĢāϞে result āϧাāĻĒে āϧাāĻĒে āĻĢ্āϝাāĻ•্āϟোāϰিāϝ়াāϞেāϰ āĻŽাāύ āϧাāϰāĻŖ āĻ•āϰে।



5. āĻĢāϞাāĻĢāϞ āϰিāϟাāϰ্āύ āĻ•āϰা: āϞুāĻĒ āĻļেāώ āĻšāĻ“āϝ়াāϰ āĻĒāϰ, result-āĻ āĻĢ্āϝাāĻ•্āϟোāϰিāϝ়াāϞেāϰ āϚূāĻĄ়াāύ্āϤ āĻŽাāύ āĻĨাāĻ•āĻŦে, āϝা return result āĻĻ্āĻŦাāϰা āĻĢেāϰāϤ āĻĻেāϝ়া āĻšāϝ়।



6. āĻĒ্āϰিāύ্āϟ: print(iterative_factorial(5)) āϞাāχāύে ā§Ģ āϏংāĻ–্āϝাāϟিāϰ āĻĢ্āϝাāĻ•্āϟোāϰিāϝ়াāϞ āĻĢাংāĻļāύেāϰ āĻŽাāϧ্āϝāĻŽে āĻ—āĻŖāύা āĻ•āϰে āĻĒ্āϰিāύ্āϟ āĻ•āϰা āĻšāϝ়েāĻ›ে। āĻ…āϰ্āĻĨাā§Ž, ā§Ģ! (ā§Ģ āĻĢ্āϝাāĻ•্āϟোāϰিāϝ়াāϞ) = ā§Ģ × ā§Ē × ā§Š × ā§¨ × ā§§ = ⧧⧍ā§Ļ।




āĻāĻ­াāĻŦে, ā§Ģ āϏংāĻ–্āϝাāϰ āĻĢ্āϝাāĻ•্āϟো

āϰিāϝ়াāϞ āĻšিāϏেāĻŦে āφāωāϟāĻĒুāϟ āφāϏāĻŦে ⧧⧍ā§Ļ।


āĻĒাāχāĻĨāύে Recursive Factorial āĻĢাংāĻļāύ

āφāϜāĻ•েāϰ āĻāχ āĻŦ্āϞāĻ—ে āφāĻŽāϰা āĻĒাāχāĻĨāύেāϰ recursive_factorial āĻĢাংāĻļāύāϟি āύিāϝ়ে āφāϞোāϚāύা āĻ•āϰāĻŦ। āĻĢ্āϝাāĻ•্āϟāϰিāϝ়াāϞ āĻšāϚ্āĻ›ে āĻāĻŽāύ āĻāĻ•āϟি āĻ—āĻŖিāϤ āĻ…āĻĒাāϰেāĻļāύ, āϝেāĻ–াāύে āĻāĻ•āϟি āϏংāĻ–্āϝাāĻ•ে āϤাāϰ āϚেāϝ়ে āĻ›োāϟ āϏāĻŦ āϧāύাāϤ্āĻŽāĻ• āĻĒূāϰ্āĻŖāϏংāĻ–্āϝাāϰ āĻ—ুāĻŖāĻĢāϞ āĻšিāϏেāĻŦে āĻĒ্āϰāĻ•াāĻļ āĻ•āϰা āĻšāϝ়। āύিāϚে āĻ•োāĻĄāϟি āϧাāĻĒে āϧাāĻĒে āĻŦ্āϝাāĻ–্āϝা āĻ•āϰা āĻšāϝ়েāĻ›ে।

āĻ•োāĻĄāϟি:




def recursive_factorial(n):

    if n == 0 or n == 1:

        return 1

    else:

        return n * recursive_factorial(n-1)

    

print(recursive_factorial(5))



    

āĻ•িāĻ­াāĻŦে āĻ•োāĻĄāϟি āĻ•াāϜ āĻ•āϰāĻ›ে?

āϧাāĻĒ ā§§: āĻŦেāϏ āĻ•েāϏ (Base Case) āϚেāĻ• āĻ•āϰা

if n == 0 or n == 1:
return 1

āĻāĻ–াāύে āĻĒ্āϰāĻĨāĻŽ āĻļāϰ্āϤāϟি āĻšāϚ্āĻ›ে āĻŦেāϏ āĻ•েāϏ। āĻ…āϰ্āĻĨাā§Ž, āϝāĻĻি n āĻāϰ āĻŽাāύ ā§Ļ āĻŦা ā§§ āĻšāϝ়, āϤাāĻšāϞে āĻĢাংāĻļāύāϟি āϏāϰাāϏāϰি ā§§ āϰিāϟাāϰ্āύ āĻ•āϰāĻŦে। āĻ•াāϰāĻŖ, ā§Ļ āĻŦা ā§§ āĻāϰ āĻĢ্āϝাāĻ•্āϟāϰিāϝ়াāϞ āϏāϰ্āĻŦāĻĻা ā§§ āĻšāϝ়।

āϧাāĻĒ ā§¨: Recursive āĻ•āϞ āĻ•āϰা

āϝāĻ–āύ n āĻāϰ āĻŽাāύ ā§Ļ āĻŦা ā§§ āĻāϰ āĻŦেāĻļি āĻšāϝ়, āϤāĻ–āύ āĻĢাংāĻļāύāϟি else āĻ…ংāĻļে āϝাāĻŦে āĻāĻŦং āύিāϜেāĻ•ে āĻĒুāύāϰাāϝ় āĻ•āϞ āĻ•āϰāĻŦে:

return n * recursive_factorial(n-1)

āĻāĻ–াāύে recursive_factorial(n-1) āĻ…ংāĻļāϟি āĻĢাংāĻļāύāϟিāĻ•ে āφāĻŦাāϰ n-1 āĻŽাāύ āύিāϝ়ে āĻ•āϞ āĻ•āϰāĻ›ে। āĻāϟি āϚাāϞু āĻĨাāĻ•āĻŦে āϝāϤāĻ•্āώāĻŖ āύা n āĻāϰ āĻŽাāύ ā§§ āĻŦা ā§Ļ āĻšāϝ়ে āϝাāϝ়, āϤāĻ–āύ āĻŦেāϏ āĻ•েāϏ āĻ…āύুāϝাāϝ়ী ā§§ āϰিāϟাāϰ্āύ āĻšāĻŦে।

āωāĻĻাāĻšāϰāĻŖ

āϝāĻĻি āφāĻŽāϰা recursive_factorial(5) āĻ•āϞ āĻ•āϰি, āϤাāĻšāϞে āύিāϚেāϰ āϧাāĻĒāĻ—ুāϞোāϤে āĻ•োāĻĄāϟি āĻ•াāϜ āĻ•āϰāĻŦে:

  • 5 * recursive_factorial(4)
  • 5 * (4 * recursive_factorial(3))
  • 5 * (4 * (3 * recursive_factorial(2)))
  • 5 * (4 * (3 * (2 * recursive_factorial(1))))
  • 5 * (4 * (3 * (2 * 1)))
  • āĻĢāϞাāĻĢāϞ: ā§Ģ * ā§Ē * ā§Š * ⧍ * ā§§ = ⧧⧍ā§Ļ

āĻļেāώ āĻ•āĻĨা

āĻāχāĻ­াāĻŦে āϰিāĻ•াāϰ্āϏāύ āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰে āφāĻŽāϰা āĻāĻ•āϟি āϏāĻŽāϏ্āϝাāĻ•ে āĻ›োāϟ āĻ›োāϟ āϧাāĻĒে āĻ­াāĻ— āĻ•āϰে āϏāĻŽাāϧাāύ āĻ•āϰāϤে āĻĒাāϰি। āĻĢ্āϝাāĻ•্āϟāϰিāϝ়াāϞেāϰ āĻ•্āώেāϤ্āϰে, āĻāχ āϰিāĻ•াāϰ্āϏāύ āĻĒāĻĻ্āϧāϤি āĻ–ুāĻŦāχ āĻ•াāϰ্āϝāĻ•āϰী, āĻ•াāϰāĻŖ āĻāϟি āĻĒ্āϰāϤিāϟি āϧাāĻĒāĻ•ে āĻ•āĻŽিāϝ়ে āφāύে āĻāĻŦং āĻ…āĻŦāĻļেāώে āĻāĻ•āϟি āύিāϰ্āĻĻিāώ্āϟ āĻĢāϞাāĻĢāϞ āĻĒ্āϰāĻĻাāύ āĻ•āϰে।

About the author

MD Zakaria Hossen
Hi! I am Zakaria. I am the founder of Kochu Programmer. I want to spread tech knowledge to everyone.

Post a Comment