Бүгін
көрісу күні ғана емес, оған қоса математикадағы Пи күні (3.14 датамен сәйкестігі үшін). Соған байланысты ҚысқаСұрақ:
Пи саны шексіз иррационал сан, бірлік пен нөлден тұратын компьютер үшін бұл қиын мәселе. Бағдарламалау кезінде Монте Карло жолымен оны қалай жуықтап есептей аламыз?
1. Қағазға үлкен шаршы сызыңыз.
2. Шаршы ішіне кездейсоқ 10 нүкте қойыңыз.
3. Шаршы ішінде, шаршының қабырғасына тең радиуста шеңбердің төрттен бір бөлігін сызыңыз (гифкадағы қызыл бөлікке ұқсатып)
4. Шеңбердің ішіне түскен нүктелерді санап шығыңыз.
5. Шеңбер ішіндегі нүктелер санын 4-ке көбейтіп сосын 10-ға бөліңіз
6. Сіз Пи санын жуықтап таптыңыз, (ең күшті жақындады дегенде 3.2 болады)
10 ғана нүкте болған кезде, дәлдігі жақын болмас. Бірақ неғұрлым көбірек нүкте қолдансаңыз, соғұрлым Пи санына жақындай түсесіз.
Осы Монте Карло методы. Егер кодта функциясын көрсетсек былай болады
fun estimatePi(samples: Int): Double { // біздің мысалда samples 10-ға тең
var insideCircle = 0
repeat(samples) {
val x = Math.random()
val y = Math.random()
if (x * x + y * y