蒙特卡羅演算法求圓周率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);
}
}
相關文章
- 蒙特卡羅法求圓周率
- 如何用python求圓周率?Python
- 隨機化演算法(5) — 蒙特卡羅(Monte Carlo)演算法隨機演算法
- 你也能看懂的:蒙特卡羅方法
- 使用蒙特卡羅模擬期權定價
- 強化學習(四)用蒙特卡羅法(MC)求解強化學習
- 六西格瑪與商業分析:蒙特卡羅模擬
- 蒙特卡羅方法:當丟失確定性時的處理辦法
- DQN(Deep Q-learning)入門教程(三)之蒙特卡羅法演算法與Q-learning演算法演算法
- 圓周率位數記憶記錄
- 使用Kubernetes裡的job計算圓周率後2000位
- 強化學習(十八) 基於模擬的搜尋與蒙特卡羅樹搜尋(MCTS)強化學習
- Python運用蒙特卡洛演算法模擬植物生長Python演算法
- DeepMind開發用於量子化學計算的神經網路變分蒙特卡羅神經網路
- Google:Google Cloud再次打破了百萬億位的圓周率計算紀錄GoCloud
- 【倉頡】入門文件程式碼圓周率估算程式碼更正
- 資源 | 跟著Sutton經典教材學強化學習中的蒙特卡羅方法(程式碼例項)強化學習
- 蒙特卡洛方法(Monte-Carlo Simulation)
- 新紀錄!谷歌 Cloud 計算出圓周率“ π” 第 100 萬億位數谷歌Cloud
- 圓周率π的計算曆程及各種腦洞大開的估計方法
- Python 求圓的面積Python
- 【計算機演算法】 求字首表示式的值計算機演算法
- 比特幣的價格今年會達到10萬美元嗎?有人用蒙特卡羅方法預測了一下比特幣
- 蒙特卡洛模擬(1)————三門問題
- 蒙特卡洛積分——非均勻取樣
- Qt 求圓和橢圓上任意角度點的座標QT
- C#程式設計求一個圓弧演算法問題,已知圖形的終點起點,和圓弧角度,求程式設計方法解圓弧的半徑和優劣弧C#程式設計演算法
- 【AlphaGo】AlphaGo背後的力量:蒙特卡洛樹搜尋入門指南Go
- 頁面卡頓的優化–圓角優化
- AlphaGo的制勝祕訣:蒙特卡洛樹搜尋初學者指南Go
- 【短道速滑八】圓形半徑的影像最大值和最小值演算法的實現及其實時優化(非二值圖)演算法優化
- C語言中pi=&j和*pi=j的區別C語言
- 談談SAP PI 的功能和PI顧問的特點
- 兩圓相交求面積c++C++
- 羅永浩萬字求職信求職
- 蒙特卡洛模擬(3)————求解有約束的非線性規劃問題
- 蒙特卡洛——使用CDF反函式生成非均勻隨機數函式隨機
- Python演算法與資料結構–求所有子陣列的和的最大值Python演算法資料結構陣列