කියපන් බලන්න වෙන හැටි. 1-99 ගත්තොත් 1st digit 1 වෙන ඉලක්කම් 11ක් තියෙනව. 2 වෙන ඉලක්කමුත් 11යි. 3 වෙන ඉලක්කමුත් 11යි. එතකොට එක් එක් අගයෙන් පටන් ගන්න සංඛ්යාවක් වෙන්න හැම එකටම 11.11% ක probability එකක් තියෙන්නෙ. උබ කියන විදිහට 30% එන එක සරල වෙන හැටි පැහැදිලි කරපන් බලන්න.
ඔය output එකම තමා මගෙ කෝඩ් එකෙත් තව විස්තර එක්ක එන්නෙ. (indentation එනව python select කරල දාපන්)
ඕකෙන් ඉතින් ඔප්පු වෙන්නෑ. ඕකෙන් නිකන් මේ වගේ වෙන්න ඇති කියල හිතන්න විතරයි පුලුවන්. අනන්තෙට යන ශ්රේණියක් අපසාරී අභිසාරි කියල උනත් ඔප්පු කරන්න පුලුවන් ඒක thoracically ඔප්පු කරල විතරයි. brute force කරල පෙන්නන්න බෑ.
------
Post added on Jul 19, 2022 at 4:58 AM
Seed එකත් එක්ක steps ගාන plot කරා. ඒකෙත් අමුතු ලස්සනක් එනව.
1 - 10000
View attachment 178639
1-1000000
View attachment 178641
මේකෙන් ඉන්ද්රය කියපු කතාව graphically පේනව. seed එක වැඩිවෙන්න වැඩිවෙන්න steps ගාන සහ seed එක අතර අනුපාතය අඩු වෙනව. හැබැයි ඉතින් මේකෙන් කියන්න බෑ හිටපු ගමන් කොහේ හරි ලොකු ස්ටෙප්ස් ගානක් යන එකක් තියෙන්න බෑ කියල.
View attachment 178640
------
Post added on Jul 19, 2022 at 5:55 AM
යකෝ කියන ලබ්බ තේරුම් ගනින්, ඔය කියන්නෙ 1-99 ට යන ඉලක්කම් ටික ගැන විතරක් නෙවෙයි, 1 යි 99 යි අතර span වෙන data set එකක් ගැන. මෙහෙම හිතහන්කො. 100 ට අඩු random සංඛ්යා 50 ක් ගනින්. ගන්න තැන වැදගත් නෑ. අරගෙන බලපන් අන්න එ් ඉලක්කම් ටිකේ 1, 2, 3 යෙදිලා තියෙන ප්රමාණය. ප්රතිශතය එන්නෙ 30%, 20%, 15% වගේ. අඩුම දශමස්ථාන දෙකකවත් span වෙන random සංඛ්යා කැමති range එකක අරගෙන බලපන්.
මෙන්න coding අාස නිසා check කරන්න එකක්.
import random
Mylist = random.sample(range(1, 99), 50) count1,count2,count3=0,0,0
for k in range(50):
if "1" in str(Mylist[k]):
count1+=1
if "2" in str(Mylist[k]):
count2+=1
if "3" in str(Mylist[k]):
count3+=1
print("percentage of 1 : ",count1*2,"%")
print("percentage of 2 : ",count2*2,"%")
print("percentage of 3 : ",count3*2,"%")
Python වලින් random generate කරද්දි ඕක ගාණට හරි නොයන්න පුළුවන්. (අැත්ත random generate කරන එක මෙච්චර ප්රශ්නයක් වෙලා තියෙන්නෙත් ඔය නිසා.) හැබැයි අැත්ත random sample එකක් ගත්තොත් ඕක හරියටම හරි.
උඹෙ Code එකේ algorithm එකේ තියෙන්නෙත් මම කියපු කතාවම තමයි. අැඟේ පතේ හයිය පෙන්නන algorithm පට්ට තමයි. මොකද දැන් තියෙන machine වල speed එකත් එක්ක පොඩි calculation ඕන ගාණක් කරන්න ලේසියිනෙ. හැබැයි මේ අපි test කරන level වලට යද්දි efficiency කියන එක අතිශයින්ම වැදගත්. අනවශ්ය දෙයක් කර කර ඉන්න මහන්සි වෙනවා වෙනුවට අත්යාවශ්යම, උවමනාම කොටස විතරයි බලන්න තියෙන්නෙ. මොකද වැඩි වැඩ කරලා 2^70 විතර range එකක් test කරන එක තාමත් ලේසි වැඩක් නෙවෙයි. තව ඉස්සරහට යන්න යන්න තව අමාරු වෙනවා.
අන්න එ්කයි වැඩි විස්තර තියෙන එක පොඩි ඉලක්කම්වල පට්ට කියලා හිතුණාට එහාට එහාට යද්දි සෑහෙන අමාරු වෙන්නෙ. දෙකේ වෙනස තේරුම් ගන්න ලේසිම දේ තමයි 1: 1 million යි, 1 million :1 trillion යි වගේ සමාන magnitude දෙකක් check කරන්න යන වෙලාව අතර අනුපාතය බලන එක.
මම දාලා තියෙන code එක අතිශය සරල වුණාට ඔය pattern එක හරියටම පෙන්නනවා. Plot කරලා extrapolate කරත් තේරුම් ගන්න පුළුවන් ඉලක්කම් exponential වෙද්දිත් steps ගාණ බොහෝ දුරට linear බව.
මම ගත්තෙ maximum steps ගාණ නිසා test කරන range එක අස්සෙ magic එකෙන් ලොකු ඉලක්කමක් තියෙන්න කිසිම ඉඩක් නැහැ. තිබුණා නම් maximum වෙන්නෙ එ්කනෙ. එ් විතරක් නෙවෙයි, අපිට එ්කෙන් test කරගන්න අමාරු, ඊළඟට තියෙන ranges ගැනත් බොහොම හොඳ prediction එකක් ගන්න පුළුවන්. ඉලක්කම් exponential වෙද්දි steps වල Maximum එක linear බව දිගට දිගටම පේනවා කියන්නෙ ඊළඟ ranges වල උඹ කියන magic ඉලක්කමක් තිබීමේ probability එකත් exponentially ම 0 ට ලං වෙනවා. (එකකදි p0.01 නම් ඊළඟට p0.001, p0.0001 වගේ)
මම අර එකෙක්ට කිව්වෙත් එ්ක තමයි, එහෙමයි කියලා probability 0 ක් වෙන් නෑ තමයි. ඉතින් මේක සාධනයකුත් නෙවෙයි. හැබැයි ඉතාම පැහැදිලි අපෝහනයක්. මම code එක අරගෙන තියෙන්නෙ ඔන්න ඔය අරමුණ අැතිව. පෙන්නන්න පුළුවන් කොටස ලස්සනට පෙන්නනවාට වඩා මේ වගේ තැනක වැදගත් වෙන්නෙ පෙන්නන්න බැරි ටික ගැන හොඳම අදහසක් ගන්න එක.
