亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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ī)則的形狀,現在要計算這個不規(guī)則圖形的面積,怎么計算列?蒙特卡洛(Monte Carlo)方法告訴我們,均勻的向該正方形內撒N(N 是一個很大的自然數)個黃豆,隨后數數有多少個黃豆在這個不規(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("輸入點的數量:"); 
  n = input.nextInt(); 
  PI = MontePI(n); 
  System.out.println("PI="+PI); 
 } 
} 

輸出:

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

總結

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

相關文章

  • SpringBoot如何基于POI-tl和word模板導出龐大的Word文件

    SpringBoot如何基于POI-tl和word模板導出龐大的Word文件

    這篇文章主要介紹了SpringBoot如何基于POI-tl和word模板導出龐大的Word文件,poi-tl是一個基于Apache?POI的Word模板引擎,也是一個免費開源的Java類庫
    2022-08-08
  • 如何使用JavaMail發(fā)送郵件

    如何使用JavaMail發(fā)送郵件

    這篇文章主要教大家如何使用JavaMail發(fā)送郵件在web應用中,實現用戶注冊成功之后,將用戶的注冊信息以Email的形式發(fā)送到用戶的注冊郵箱當中,感興趣的小伙伴們可以參考一下
    2015-12-12
  • 分布式開發(fā)醫(yī)療掛號系統(tǒng)數據字典模塊前后端實現

    分布式開發(fā)醫(yī)療掛號系統(tǒng)數據字典模塊前后端實現

    這篇文章主要為大家介紹了分布式開發(fā)醫(yī)療掛號系統(tǒng)數據字典模塊前后端實現,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04
  • SpringBoot實現PPT格式文件上傳并在線預覽功能

    SpringBoot實現PPT格式文件上傳并在線預覽功能

    本文介紹SpringBoot實現PPT格式文件上傳并在線預覽功能,通過上傳接口,可在C盤的tempfile目錄下找到上傳的文件,預覽時會在同級目錄下創(chuàng)建一個相同文件名后綴為pdf的文件,每次預覽會先查找文件是否存在,存在則直接預覽,不存在則會走上面的處理,需要的朋友可以參考下
    2022-02-02
  • java單機接口限流處理方案詳解

    java單機接口限流處理方案詳解

    這篇文章主要為大家詳細介紹了java單機接口限流處理方案,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 解決spring-integration-mqtt頻繁報Lost connection錯誤問題

    解決spring-integration-mqtt頻繁報Lost connection錯誤問題

    這篇文章主要介紹了解決spring-integration-mqtt頻繁報Lost connection錯誤問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • java若依框架集成redis緩存詳解

    java若依框架集成redis緩存詳解

    今天小編就為大家分享一篇關于java若依框架集成redis緩存的實現,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2021-08-08
  • Mybatisplus集成springboot完成分頁查詢功能(示例代碼)

    Mybatisplus集成springboot完成分頁查詢功能(示例代碼)

    今天小編給大家分享Mybatisplus集成springboot完成分頁查詢功能,本文通過實例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2023-11-11
  • 基于java實現斗地主代碼實例解析

    基于java實現斗地主代碼實例解析

    這篇文章主要介紹了基于java實現斗地主代碼實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • Java設計模式之適配器模式的實現

    Java設計模式之適配器模式的實現

    這篇文章主要介紹了Java設計模式之適配器模式的實現,適配器模式(Adapter Pattern)是作為兩個不兼容的接口之間的橋梁,這種類型的設計模式屬于結構型模式,它結合了兩個獨立接口的功能,需要的朋友可以參考下
    2023-11-11

最新評論