最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 蒙特卡洛算法求圓周率近似值實例詳解

 更新時間:2017年09月11日 15:11:24   作者:Sundy_Xu  
這篇文章主要介紹了蒙特卡洛算法的起源,特點,以及Java編程中利用蒙特卡洛算法計算圓周率近似值的實例,需要的朋友可以參考下

起源

 [1946: John von Neumann, Stan Ulam, and Nick Metropolis, all at the Los Alamos Scientific Laboratory, cook up the Metropolis algorithm, also known as the Monte Carlo method.]1946年,美國拉斯阿莫斯國家實驗室的三位科學家John von Neumann,Stan Ulam 和 Nick Metropolis共同發(fā)明,被稱為蒙特卡洛方法。它的具體定義是:在廣場上畫一個邊長一米的正方形,在正方形內部隨意用粉筆畫一個不規(guī)則的形狀,現(xiàn)在要計算這個不規(guī)則圖形的面積,怎么計算列?蒙特卡洛(Monte Carlo)方法告訴我們,均勻的向該正方形內撒N(N 是一個很大的自然數(shù))個黃豆,隨后數(shù)數(shù)有多少個黃豆在這個不規(guī)則幾何形狀內部,比如說有M個,那么,這個奇怪形狀的面積便近似于M/N,N越大,算出來的值便越精確。在這里我們要假定豆子都在一個平面上,相互之間沒有重疊。(撒黃豆只是一個比喻。)

特點

蒙特卡洛方法的偉大之處,在于對精確性問題無法解決的時候,利用“模擬”的思想來求解。 在各個領域得以應用。本質是模擬(simulation): 利用大量隨機輸入,產生各種輸出;結果的概率分布就是真實分布的“近似”。所以,輸入的分布是否隨機(目前計算機所能做的就是偽隨機,并不能產生真正的隨機分布),這個過程我們成為Sampling Random Variables。

計算圓周率近似值代碼:

package com.xu.main; 
import java.util.Scanner; 
public class P9_1 { 
 static double MontePI(int n) { 
  double PI; 
  double x, y; 
  int i, sum; 
  sum = 0; 
  for (i = 1; i < n; i++) { 
   x = Math.random(); 
   y = Math.random(); 
   if ((x * x + y * y) <= 1) { 
    sum++; 
   } 
  } 
  PI = 4.0 * sum / n; 
  return PI; 
 } 
 public static void main(String[] args) { 
  int n; 
  double PI; 
  System.out.println("蒙特卡洛概率算法計算圓周率:"); 
  Scanner input = new Scanner(System.in); 
  System.out.println("輸入點的數(shù)量:"); 
  n = input.nextInt(); 
  PI = MontePI(n); 
  System.out.println("PI="+PI); 
 } 
} 

輸出:

蒙特卡洛概率算法計算圓周率:
輸入點的數(shù)量:
9999999
PI=3.1417975141797516

總結

以上就是本文關于蒙特卡洛算法起源及特點的簡介,還有如何利用這種算法思路在Java編程中求圓周率的近似值實例,希望對大家有所幫助。喜歡的朋友請繼續(xù)關注腳本之家!

相關文章

  • Java中Map接口使用以及有關集合的面試知識點匯總

    Java中Map接口使用以及有關集合的面試知識點匯總

    在java面試過程中,Map時常會被作為一個面試點來問,下面這篇文章主要給大家介紹了關于Java中Map接口使用以及有關集合的面試知識點匯總的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • Spring異常捕獲且回滾事務解決方案

    Spring異常捕獲且回滾事務解決方案

    這篇文章主要介紹了Spring異常捕獲且回滾事務解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • Spring Cloud Gateway重試機制原理解析

    Spring Cloud Gateway重試機制原理解析

    這篇文章主要介紹了Spring Cloud Gateway重試機制原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • Java?toString方法使用超全講解

    Java?toString方法使用超全講解

    在Java中所有的類都有一個共同的父類Object(默認繼承,不用加extends關鍵字),toString方法就是Object類的一個方法,用來返回該對象的字符串表示形式,下面這篇文章主要給大家介紹了關于Java?toString方法使用的相關資料,需要的朋友可以參考下
    2023-05-05
  • EasyExcel實現(xiàn)導入+各種數(shù)據校驗功能

    EasyExcel實現(xiàn)導入+各種數(shù)據校驗功能

    這篇文章主要介紹了EasyExcel實現(xiàn)導入+各種數(shù)據校驗,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • 詳解Spring Security 中的四種權限控制方式

    詳解Spring Security 中的四種權限控制方式

    這篇文章主要介紹了詳解Spring Security 中的四種權限控制方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • AsyncHttpClient IOExceptionFilter異常過濾器

    AsyncHttpClient IOExceptionFilter異常過濾器

    這篇文章主要為大家介紹了AsyncHttpClient IOExceptionFilter異常過濾器代碼流程解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • java同一個類中,一個無事務方法調用一個有事務方法時,事務失效問題

    java同一個類中,一個無事務方法調用一個有事務方法時,事務失效問題

    本文詳細介紹了Spring框架中事務管理的實現(xiàn)原理,包括@Transactional注解的使用、事務的開啟、提交和回滾機制,以及代理對象的兩種實現(xiàn)方式(JDK動態(tài)代理和CGLIB代理),文章還探討了在同一個類中調用有事務方法時事務失效的原因,并提供了解決方法
    2024-12-12
  • Java中BM(Boyer-Moore)算法的圖解與實現(xiàn)

    Java中BM(Boyer-Moore)算法的圖解與實現(xiàn)

    本文主要介紹了兩個大的部分,第一部分通過圖解的方式講解BM算法,第二部分則代碼實現(xiàn)一個簡易的BM算法,感興趣的小伙伴可以學習一下
    2022-05-05
  • java結合email實現(xiàn)自動推送功能

    java結合email實現(xiàn)自動推送功能

    這篇文章主要介紹了java結合email實現(xiàn)自動推送功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03

最新評論

华容县| 景洪市| 土默特右旗| 扬州市| 临沧市| 江阴市| 天津市| 随州市| 东至县| 乡城县| 西盟| 瓦房店市| 两当县| 永定县| 神农架林区| 建昌县| 岱山县| 南平市| 金山区| 怀远县| 靖安县| 漳浦县| 灌云县| 天祝| 湘西| 营口市| 青浦区| 新竹县| 富平县| 丹凤县| 深水埗区| 刚察县| 山西省| 宿州市| 苏尼特左旗| 渭南市| 竹山县| 邯郸市| 芦山县| 综艺| 莆田市|