Pages

Saturday, March 3, 2012

තමන් විසින් තමන්වම කැඳවීම හෙවත් Recursive Algorithms


එදා මට Recursive Algorithms වල හොඳ උදාහරණයක් මඟ ඇරුනා. ඒ නිසා මේ එක ලිව්වේ ඒ උදාහරණය ගැන කියන්න. මේ වෙද්දිත් කාට හරි මේ Algorithms වර්ගය ගැන පොඩි හරි අවුලක් තියෙනවා නම් මේක කියෙව්වම ඒක නිරාකරණය වෙලා ඕනෙම අමාරු ගානක් ගොඩ දාගන්න පුළුවන් වෙයි කියලා හිතෙනවා. ඒ නිසා කොතරම් කාර්ය්‍ය බහුල උනත් විනාඩි 10කින් මේක ලිව්වේ.



උදා : 1

2 පාදයේ ඕනෑම බලයක පිළිතුර ලබා ගැනීමට ඇල්ගොරිතමයක් ලියන්න.
එනම් 2 , 5වෙනි බලය =32
2, 7 වෙනි බලය 128 යනාදී වශයෙනි.
සැ.යු. මෙහි දක්වා ඇත්තේ මෙම ඇල්ගොරිදමයේ Pseudo Code එක(සැකිල්ල ) පමණක් වන අතර යම් කිසි පරිගණක භාෂාවකින් ලිවීමට මෙහි යම් වෙනස් කම් කල යුතුය.

පළමුවෙන්ම කළ යුත්තේ මෙම ගුණිතයේ කුඩාම සංඛ්‍යාව සොයා ගැනීමයි. ඔබ සැවොම දන්නා පරිදි ඕනෑම සංඛ්‍යාවක 0 වැනි බලයේ පිළිතුර 1ය. එනම් අප දැනටමත් අපේ ගණනෙහි පළමු කොටස කර අවසානය.
එය මෙසේ දැක්විය හැක.

power (2,0) =1


එසේ නම් අනික් කොටස සාදන්නේ කෙසේද අප දන්න පරිදි 2 පාදයේ බලයක් සොයන විට සෑම විටම සිදුවන්නේ අදාල බලයට අදාල වාර ගණනක් 2න් ගුණ වීමයි
උදාහරණ ලෙස
2, 4 වෙනි බලය නම් 2*2*2*2 ලෙස 4 වරක් ගුණ වේ.
2, වෙනි බලය නම් 2*2*2*2*2*2 ලෙස 6 වරක් 2න් ගුණ වීමයි.

එසේ නම් අපගේ ඇල්ගොරිදමයත් එවැනිම වාර ගණනක් ක්‍රියාත්මක වී පිළිතුර සඳහා ලඟා විය යුතුය. එසේ නම් එක කොටසක 2න් වැඩි වීමක්ද අනික් කොටසින් නැවත තමන්වම කැඳවා ගැනීමද කල යුතුවේ
එය මෙසේ දැක්විය හැක.

powe(2,n) = 2* power(2, n-1)

එසේ නම් අප සම්පූර්ණ ගානම සදා නිම කර ඇත. එය මෙසේ දැක්විය හැක.

power (2,0) =1 
powe(2,n) = 2* power(2, n-1)



අපි දැන් බලමු අපි ලියාගත්තු මේ ඇල්ගොරිදමය නිවැරදි ද කියා. මේ ආකරයට ඔබ ලියන සෑම ඇල්ගොරිදමයක්ම නිවැරදි දැයි බැලිය හැකිය.

උදාරණයක් ලෙස 2, 5 වෙනි බලය ගනිමු.

1)  power(2, 5 ) = 2* power(2,5-1)
දකුණු පස කෙළවරින් නැවත 2හි 4වෙනි බලයේ පිළිතුර ඉල්ලා සිටිනවා.
2)  power(2, 4 )= 2* power(2,4-1)
එය ලබා ගැනීමට ගිය විට 2හි 3වෙනි බලයේ පිළිතුර ඉල්ලා සිටිනවා.
3)  power(2, 3) = 2* power(2,3-1)
මේ ආකාරයෙන් 2,0වෙනි බලය දක්වා ක්‍රියාත්මක වෙනවා.
4) power(2, 2) = 2* power(2,2-1)
5) power(2, 1 )= 2* power(2,1-1)
2හි 0 මුලින් කිවූ පරිදි 1යි එය ඇල්ගොර්දමයේ මුල් කොටසින් ගෙන පිළිතුර ලබා දෙනවා
6) power(2, 0 )= 1


දැන් මුල් සිට අගට ඇල්ගොරිදමයේ පිළිතුරු ආදේශ වෙමින් ක්‍රියාත්මක වෙනවා.
power (2, 1) =2
4) power(2, 2 )= 2* 2
power (2, 2) =4
3)  power(2, 3) = 2* 4
power (2, 3) =8
2)  power(2, 4 )= 2* 8
power (2, 4) =16
1)  power(2, 5 ) = 2* 16

එසේ නම් 2හි 5වෙනි බලය 32කි.
power(2, 5 ) = 2* 16=32

මේ ආකර‍යට ඕනම ඇල්ගොරිතමයක් ගොඩ නැංවිය හැකිය. ඔබට යම් ගැටළුවක් වේ නම් එය comment එකක් ලෙස මෙහි පළ කරන්න. හැකි අවස්ථාවක පිළිතුරු ලබා දෙන්නම්.


2 comments:

  1. Algorithm eka patteta liyagaththa ayyata pin sidda wenna

    ReplyDelete
  2. ehenam echcharay kolla.eka thamay mata one :)

    ReplyDelete