91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用hadoop計算PI值

發布時間:2021-12-09 15:38:12 來源:億速云 閱讀:400 作者:小新 欄目:云計算

這篇文章主要介紹怎么用hadoop計算PI值,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

一、計算PI值的方式與原理

      百度一下,計算PI的方法還真不少。但在hadoop examples代碼中的注釋寫的是:是采用 Quasi-Monte Carlo 算法來估算PI的值。 

      維基百科中對Quasi-Monte Carlo的描述比較理論,好多難懂的公式。 

      好在google了一把,找到了斯坦福大學網站上的一篇文章:《通過扔飛鏢也能得出PI的值?》,文章很短,圖文并茂,而且很好理解。 

      我這里將那篇文章的重要部分截了個圖: 

怎么用hadoop計算PI值

      對上面的圖再稍微解釋一下: 
      1、Figure2是Figure1的右上角的部分。 
      2、向Figure2中投擲飛鏢若干次(一個很大的數目),并且每次都仍在不同的點上。 
      3、如果投擲的次數非常多,Figure2將被刺得“千瘡百孔”。 
      4、這時,“投擲在圓里的次數”除以“總投擲次數”,再乘以4,就是PI的值!(具體的推導過程參見原文) 


      在這個算法中,很重要的一點是:如何做到“隨機地向Figure2投擲”,就是說如何做到Figure2上的每個點被投中的概率相等。 

      hadoop examples代碼中,使用了Halton sequence保證這一點,關于Halton sequence,大家可以參考維基百科。

      我這里再總結一下Halton sequence的作用: 在1乘1的正方形中,產生不重復,并且均勻的點。每個點的橫坐標和縱坐標的值都在0和1之間。 

正是這樣,保證了能夠做到“隨機地向Figure2投擲”。

      有人總結了一下,這個實際上叫做蒙特卡洛算法,我們取一個單位的正方形(1×1) 里面做一個內切圓(單位圓),則 單位正方形面積 : 內切單位圓面積 = 單位正方形內的飛鏢數 : 內切單位圓內的飛鏢數 ,通過計算飛鏢個數就可以把單位圓面積算出來, 通過面積,在把圓周率計算出來。 
注意 ,精度和你投擲的飛鏢次數成正比。

二,運行hadoop估算PI的命令

[java] view plaincopyprint?

  1. <span style="white-space:pre">    </span>hadoop jar $HADOOP_HOME/hadoop-*-examples.jar pi 100 100000000  

     后面2個數字參數的含義: 
     第1個100指的是要運行100次map任務 
     第2個數字指的是每個map任務,要投擲多少次 

     2個參數的乘積就是總的投擲次數。 

     我運行的結果: 
怎么用hadoop計算PI值

以上是“怎么用hadoop計算PI值”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平泉县| 遂平县| 元朗区| 杭锦后旗| 泽州县| 武穴市| 太谷县| 炉霍县| 利辛县| 宝鸡市| 霍州市| 通许县| 合川市| 新干县| 邵阳市| 吐鲁番市| 安丘市| 板桥市| 三江| 碌曲县| 子长县| 绥德县| 灵川县| 永城市| 南陵县| 定襄县| 三亚市| 封开县| 安国市| 乌什县| 汝阳县| 贡山| 兴山县| 宜黄县| 叶城县| 德庆县| 东丽区| 定结县| 大埔县| 清河县| 浮梁县|