 nth fibonacci අංකය ගණනය කිරීම සඳහා මට පුනරාවර්තන ශ්‍රිතයක් ලියන්න
පහත දැක්වෙන්නේ nth Fibonacci අංකය ගණනය කරන recursive Python Fib(n) ශ්‍රිතයකි. මෙය මූලික නඩුවක් සහ පුනරාවර්තන නඩුවක් ලෙස බෙදා ඇත. Fibonacci අනුක්‍රමයේ පළමු පද දෙක 0 සහ 1 වීම නිසා මූලික අවස්ථාව ලබා දී ඇත, එබැවින් fib(0)=0 සහ fib(1)=1. nth Fibonacci අංකය f_n පෙර Fibonacci සංඛ්‍යා දෙකේ එකතුව ලෙස ලිවිය හැකි බැවින් පුනරාවර්තන අවස්ථාව ලබා දී ඇත, එබැවින් f_n = f_{n-1} + f_{n-2}. මේ සියල්ල එකතු කළ විට, අපට ලැබෙන්නේ ``` def fib(n): # base case නම් n == 0: return 0 නම් n == 1: return 1 # recursive case return fib(n - 1) + fib(n - 2) ``` මෙය සෘණ නොවන පූර්ණ සංඛ්‍යා යෙදවුම් n සඳහා nth Fibonacci අංකය නිවැරදිව ගණනය කරනු ඇත. කෙසේ වෙතත්, මේ ආකාරයෙන් Fibonacci සංඛ්‍යා ප්‍රත්‍යාවර්තීව ගණනය කිරීම සඳහා n අගයෙහි ඝාතීය කාලයක් ගත වේ, එබැවින් විශාල යෙදවුම් සඳහා මෙම කේතය ඉතා මන්දගාමී විය හැක. පෙර ප්‍රතිඵල මතක තබා ගැනීමෙන් හෝ පුනරාවර්තන නොවන ප්‍රවේශයක් භාවිතා කිරීමෙන් එය වැඩිදියුණු කළ හැක. සරල පුනරාවර්තන ප්‍රවේශයන් මඟින් ගැටලුව වඩාත් ඉක්මනින් විසඳා ගත හැකි අතර, nth Fibonacci අංකය සඳහා සංවෘත ආකෘති ප්‍රකාශන පවතින අතර ඒවා ඇගයීමට වඩා වේගවත් වේ.