蒙特卡洛方法,是一種以機率統計理論為指導的一類非常重要的數值計算方法。是指使用随機數來解決很多計算問題的方法。蒙特卡洛方法的名字來源于摩納哥的一個城市蒙特卡洛,該城市以×××業聞名,而蒙特卡洛方法正是以機率為基礎的方法。這裡我們使用這種方法求PI的值和橢圓的面積:
求PI:假設有一半徑為1的圓,那麼其面積就是PI的值,1/4圓的面積就是PI/4。現在有邊長為1的正方形包括這1/4的圓,如下圖所示:

現在我們随機求得正方形中的點,這些點有的在1/4圓内,假如在1/4圓内的點數為c,總點數為n,則PI/4:1=c:n,進而我們可以求出PI=4*c/n。
如何判斷點落在圓内呢,涉及一點數學知識:對于圓,其函數為x的平方+y的平方等于1,對于某點坐标的x和y,x的平方和y的平方和小于1時,說明在圓内。
package com.cloud.algorithm;
public class PI {
public static void main(String[] args) {
int n = 100000;
int count = 0;
for (int i = 1; i < n; i++) {
double x = Math.random();
double y = Math.random();
if ((x * x + y * y) < 1) {
count++;
}
}
System.out.println("PI = " + (double) 4 * count / n);
}
}