Spark自帶求 的演算法 蒙特卡洛演算法

2021-10-05 17:26:27 字數 1082 閱讀 8191

bin/spark-submit \

--class org.apache.spark.examples.sparkpi \

--master yarn \

--deploy-mode cluster \

--driver-memory 6g\

--executor-memory 8g \

--executor-cores 4 \

--num-executor 10 \

./examples/jars/spark-examples_2.11-2.1.1.jar 100

上面最後乙個數字100為隨機投點次數,我們會發現,如果這個數字越大,那麼計算出pi的結果越準確,那麼內部到底是怎樣原理。

** 2. 蒙特卡洛演算法**

蒙特卡洛演算法主要理論是:在乙個正方形中,以正方形中心畫乙個圓,然後向此正方形中隨機投點,計算落在圓內的概率,然後根據公式計算出π的值。

例如:a.乙個邊長為2的正方形,那麼它的面積s1=4 ,在此正方形內畫乙個圓,那麼這個圓的半徑r=1,圓的面積s2=πr²=π

b.此時開始隨機投點,例如總投點數為sum,落在圓內的點數為count,那麼可以認為圓的面積佔正方形的面積比例為:v=count/sum

c.由此得知,正方形s1=4,圓形s2=π,圓形面積佔正方形比例為v,s1與v的值都是乙個常量,那麼可以得出s2=s1v;那麼s2的面積就可以求出來了,進而就得出了π的值。

val conf: sparkconf = new  sparkconf(

"getpi"

).setmaster(

"local[*]"

) val sc = new sparkcontext(conf)

//n總投點數

val sum = int.maxvalue

//count為落在圓內的點數

val count = sc.parallelize(1 until sum).map .reduce(_ + _)

println(s"π的值是: $"

) sc.stop(

)

原始碼路徑:

蒙特卡洛演算法

從今天開始要研究sampling methods,主要是mcmc演算法 contents 1.蒙特卡洛介紹 2.蒙特卡洛的應用 3.蒙特卡洛積分 1.蒙特卡洛介紹 蒙特卡羅方法 monte carlo method 也稱統計模擬方法,是二十世紀四十年代中期由於科學技術的 發展和電子計算機的發明,而被...

蒙特卡洛演算法

問題描述 在數值積分法中,利用求單位圓的1 4的面積來求得pi 4從而得到pi。單位圓的1 4面積是乙個扇形,它是邊長為1單位正方形的一部分。只要能求出扇形面積s1在正方形面積s中佔的比例k s1 s就立即能得到s1,從而得到pi的值。怎樣求出扇形面積在正方形面積中佔的比例k呢?乙個辦法是在正方形中...

python蒙特卡洛求定積分 蒙特卡洛定積分(一)

一 蒙特卡洛模擬法分類 蒙特卡洛法模擬法從其應用方面來劃分,可以分成以下三種形式 1 直接蒙特卡洛模擬。採用隨機數學咧來模擬複雜隨機過程的效應。2 蒙特卡洛定積分 間接蒙特卡洛模擬 利用隨機數序列計算積分的方法。積分維數越高,該方法的積分效率就越高。3 metropolis蒙特卡洛模擬。以 馬爾可夫...