මම මේ පැහැදිලි කිරීමට යොදාගන්නේ යම් සංක්යවක 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 වෙනවා. එහෙම රුපයේ තියන විදියට ගැටලුව කුඩා කරමින් ගිහිල්ලා අවසාන අවස්ථාව වෙනකන් පැමිණෙනවා.
ConversionConversion EmoticonEmoticon