本文實(shí)例講述了Java使用Math.random()結(jié)合蒙特卡洛方法計(jì)算pi值。分享給大家供大家參考,具體如下:
創(chuàng)新互聯(lián)建站網(wǎng)絡(luò)公司擁有10多年的成都網(wǎng)站開(kāi)發(fā)建設(shè)經(jīng)驗(yàn),近千家客戶(hù)的共同信賴(lài)。提供成都網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)站開(kāi)發(fā)、網(wǎng)站定制、買(mǎi)友情鏈接、建網(wǎng)站、網(wǎng)站搭建、響應(yīng)式網(wǎng)站開(kāi)發(fā)、網(wǎng)頁(yè)設(shè)計(jì)師打造企業(yè)風(fēng)格,提供周到的售前咨詢(xún)和貼心的售后服務(wù)
一、概述
蒙特·卡羅方法(Monte Carlo method),也稱(chēng)統(tǒng)計(jì)模擬方法,是二十世紀(jì)四十年代中期由于科學(xué)技術(shù)的發(fā)展和電子計(jì)算機(jī)的發(fā)明,而被提出的一種以概率統(tǒng)計(jì)理論為指導(dǎo)的一類(lèi)非常重要的數(shù)值計(jì)算方法。是指使用隨機(jī)數(shù)(或更常見(jiàn)的偽隨機(jī)數(shù))來(lái)解決很多計(jì)算問(wèn)題的方法。與它對(duì)應(yīng)的是確定性算法。
詳細(xì)可參考百度百科:https://baike.baidu.com/item/%E8%92%99%E7%89%B9%C2%B7%E5%8D%A1%E7%BD%97%E6%96%B9%E6%B3%95
二、實(shí)現(xiàn)代碼
/** * Monte Carlo algorithm */ import java.math.*; public class PI { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub double xf = 0.0d; double yf = 0.0d; int total = 0; for(int i = 0;i<1000000;i++){ xf = Math.random(); yf = Math.random(); if(Math.sqrt(xf*xf+yf*yf) < 1) total++; } System.out.println("創(chuàng)新互聯(lián)測(cè)試結(jié)果:"); System.out.println(4*(total/1000000.0)); } }
運(yùn)行結(jié)果:
更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。