蒙特卡羅演算法求圓周率Pi的值
已知這是一個單位圓,每個小正方形的面積是1,每個四分之一圓的面積則是
S=Pi R ^2=Pi/4,將四乘到等式左邊即可得到 Pi=4(S扇/S 正)
也就是說,如果能求出 S扇/S 正,就可以求出***Pi***
這裡,我們用撒點計數的方法,向正方形中隨機撒一些點
***S扇/S正方形=落在扇形區域點的數量/總共撒的點的數量***
點撒的越多,精度越高
下面進行程式碼實現
import java.util.Random;
import static org.datanucleus.NucleusContext.random;
/**
* @auther iris
* @date 2020/11/14
* @ desc :
**/
public class MonteCarloTest_1 {
public static void main(String[] args) {
//定義變數
int count = 0;// 記錄落在扇形區域的點的數量
int total = 1000000000; //記錄總共撒的點的數量
//定義一個隨機數
Random random = new Random();
for (int i = 0; i < total; i++) {
double x = random.nextDouble();//生成橫座標,[0,1)範圍的隨機數
double y = random.nextDouble();//生成縱座標y, [0,1)範圍的隨機數
if (x * x + y * y < 1) {
count++;
}
}
double pi = 4 * (count * 1.0 / total);
System.out.println("蒙特卡洛演算法求得的Pi值為:" + pi);
}
}
相關文章
- Java演算法 概率演算法(蒙特卡洛概率演算法求圓周率)Java演算法
- 蒙特卡羅演算法的matlab實現演算法Matlab
- 蒙特卡羅方法入門
- 蒙特卡羅模型(轉載)模型
- 如何用python求圓周率?Python
- 隨機化演算法(5) — 蒙特卡羅(Monte Carlo)演算法隨機演算法
- 蒙特卡羅模擬技術 (轉載)
- 專案風險管理與蒙特卡羅方法(轉)
- AlphaGo相關技術:蒙特卡羅方法簡介Go
- 強化學習(四)用蒙特卡羅法(MC)求解強化學習
- 六西格瑪與商業分析:蒙特卡羅模擬
- 圓周率的計算 (轉)
- 蒙特卡羅方法:當丟失確定性時的處理辦法
- VB計算圓周率的方法
- DQN(Deep Q-learning)入門教程(三)之蒙特卡羅法演算法與Q-learning演算法演算法
- 計算PI值到一億位的演算法 (轉)演算法
- 粒子物理蒙特卡羅模擬庫Geant4開發之一個例項
- 強化學習(十八) 基於模擬的搜尋與蒙特卡羅樹搜尋(MCTS)強化學習
- 有人測試LLVM5.0的蒙特卡羅程式比MSVC2017快15%LVM
- Oracle中實現圓周率計算(三)Oracle
- Oracle中實現圓周率計算(二)Oracle
- Oracle中實現圓周率計算(一)Oracle
- 幾種計算圓周率的軟體比較
- 資源 | 跟著Sutton經典教材學強化學習中的蒙特卡羅方法(程式碼例項)強化學習
- Python運用蒙特卡洛演算法模擬植物生長Python演算法
- 演算法求陣列中的最大值最小值演算法陣列
- 使用Kubernetes裡的job計算圓周率後2000位
- 比特幣的價格今年會達到10萬美元嗎?有人用蒙特卡羅方法預測了一下比特幣
- [譯]什麼是蒙特卡洛樹搜尋
- 圓周率π的計算曆程及各種腦洞大開的估計方法
- Google:Google Cloud再次打破了百萬億位的圓周率計算紀錄GoCloud
- 新紀錄!谷歌 Cloud 計算出圓周率“ π” 第 100 萬億位數谷歌Cloud
- 【計算機演算法】 求字首表示式的值計算機演算法
- Python 求圓的面積Python
- Qt 求圓和橢圓上任意角度點的座標QT
- C#程式設計求一個圓弧演算法問題,已知圖形的終點起點,和圓弧角度,求程式設計方法解圓弧的半徑和優劣弧C#程式設計演算法
- 【AlphaGo】AlphaGo背後的力量:蒙特卡洛樹搜尋入門指南Go
- AlphaGo的制勝祕訣:蒙特卡洛樹搜尋初學者指南Go