Recursion

Recursion කියන්නේ අපිට යම් ගැටලුවක් විසදන්න පුළුවන් ආකාරයක්. මෙහිදී සිද්දවෙන්නේ අපේ ගැටලුව එවැනිම කුඩා ගැටළු වලට කඩාගෙන එම කුඩා ගැටළු විසදීම මගින් ප්‍රදාන ගැටලුවට උත්තරයක් ගැනීම. Theory විදියට recursion concept එක තේරුම්ගන්න එක ටිකක් අමාරුයි. ඒ නිසා අපි උදාහරණයක් මගින් තේරුම්ගන්න උත්සහ කරමු.

මම මේ පැහැදිලි කිරීමට යොදාගන්නේ යම් සංක්‍යවක factorial ලබාගැනීම සදහා වන පොඩි program එකක් මගින්. මුලින්ම මම recursion යොදාගෙන code එක ලියන්නම්. ඊටපස්සේ පැහැදිලි කරගැනීම කරගමු.

def factorial( n ):
      if n <1:
          return 1
      else:
          return n * factorial( n -1 )


හිතමු අපිට ඕනේ 5හේ factorial එක කියලා. එතකොට  manually බැලුවොත් ,


රුපයේ පේන විදියට තමා අපේ ගැටලුව අපි සරල කරගන්නේ. මෙතැනදී ඔයාලට බලන්න පුළුවන් 1 තමා මේ ගැටලුවේ සරලම කොටස ඒ නිසා අපි එකට කියනවා base එක කියලා. Recursion use කරන හැම වෙලාවෙම මේ base එක identify කිරීම ගොඩක් වැදගත්.

දැන් code එක run වෙන හැටි බලමු. අපේ n=5 නේ ඒ නිසා n >1. ඉතින් else statement එකේ code block එක තමයි run වෙන්නේ. එතකොට return වෙන්න ඕනේ 5 * factorial (4) නමුත් factorial (4) කියද කියලා දන්නේ නෑ. ආයේ code එක නැවත factorial (4) හොයනවා. එතකොට factorial කියන function එක ඇතුලේ ඒ function එකම call වෙනවා. එහෙම රුපයේ තියන විදියට ගැටලුව කුඩා කරමින් ගිහිල්ලා අවසාන අවස්ථාව වෙනකන් පැමිණෙනවා.