蒙地卡羅為摩洛哥王國之首都,該國位於法國與義大利國境,以賭博聞名。蒙地卡羅的基本原理為以亂數配合面積公式來進行解題,這種以機率來解題的方式帶有賭博的意味,雖然在精確度上有所疑慮,但其解題的思考方向卻是個值得學習的方式。
解法蒙地卡羅的解法適用於與面積有關的題目,例如求pi值或橢圓面積,這邊介紹如何求pi值;假設有乙個圓半徑為1,所以四分之一圓面積就為pi,而包括此四分之一圓的正方形面積就為1,如下圖所示:
如果隨意的在正方形中投射飛標(點)好了,則這些飛標(點)有些會落於四分之一圓內,假設所投射的飛標(點)有n點,在圓內的飛標(點)有c點,則依比例來算,就會得到上圖中最後的公式。
至於如何判斷所產生的點落於圓內,很簡單,令亂數產生x與y兩個數值,如果x^2+y^2等於1就是落在圓內。
#include #include #include #define n 50000
int main(void)
printf("pi = %f\n", (double) 4 * sum / n);
return 0;
}
蒙地卡羅法求 PI
蒙地卡羅法求 pi 蒙地卡羅為摩洛哥王國之首都,該國位於法國與義大利國境,以賭博聞名。蒙地卡羅的基本原理為以亂數配合面積公式來進行解題,這種以機率來解題的方式帶有賭博的意味,雖然在精確度上有所疑慮,但其解題的思考方向卻是個值得學習的方式。演算法說明 蒙地卡羅的解法適用於與面積有關的題目,例如求pi值...
經典演算法 蒙地卡羅法求 PI
題目說明 蒙地卡羅為摩洛哥王國之首都,該國位於法國與義大利國境,以賭博聞名。蒙地卡羅的基本原理為以亂數配合面積公式來進行解題,這種以機率來解題的方式帶有賭博的意味,雖然在精確度上有所疑慮,但其解題的思考方向卻是個值得學習的方式。題目解析 蒙地卡羅的解法適用於與面積有關的題目,例如求pi值或橢圓面積,...
蒙地卡羅樹搜尋
這個也不是我原創的,我只是個學習者。第一次聽蒙地卡羅樹搜尋是關於阿爾法狗大戰李世石。回合制遊戲中,每個選手都沒有什麼資訊可以對對方隱藏的,而且也沒有概率的因素在裡面,比如擲骰子或者從牌隊裡面抽一張牌出來。很多遊戲都是這種型別,比如西洋棋,圍棋等。什麼東西在這類遊戲中都是確定的,從理論上來說,可以構建...