〖數學算法〗求圓周率的幾種算法

2021-02-18 算法與數學之美

圓周率大家都不陌生,最早由歐幾裡德《幾何原本》中提到圓周率是常數,第一個用尋求圓周率數值的人是阿基米德,中國數學家劉徽,和後來大名鼎鼎的祖衝之分別對圓周率進行了計算,從古到今對圓周率的計算方法有幾十種。

下面就介紹幾種求圓周率的方法:

 這是粗略的求圓周率一種常用算法

在(0,0)和(1,1)範圍內隨機投test_sum個點,如果落到圓內,hit_sum數量加1,最後用hit_sum/test_sum算出落在圓內的概率,

由得圓周率 PI=hit_sum / test_sum * 4

public class PI {

 

public static void main(String[] args) {

int test_sum = 1000000;// 投的點數

int hit_sum = 0;// 投中的個數

double x, y;// x和y坐標點

for (int i = 0; i < test_sum; i++) {

// 隨機得到一個坐標

x = Math.random();

y = Math.random();

 

if (x * x + y * y <= 1)// 判斷擲入的這個點在不在在圓內

hit_sum++;

}

// 統計得到π的值

double pi = (double) hit_sum / test_sum * 4;

System.out.println("π的結果為:" + pi);

}

}

隨機測試的幾次結果:

π的結果為:3.140336

π的結果為:3.141012

π的結果為:3.141396

圓周率的公式特別多,介紹其中一個

這是一個迭代過程,code很容易,直接貼代碼了

public class PI {

 

public static void main(String[] args) {

double my_pi = 2;

int _jingdu = 1000;//精度控制

for (int i = _jingdu; i > 0; i--) 

my_pi = my_pi * i / (2 * i + 1) + 2;

System.out.println(my_pi);

}

}

輸出結果:3.141592653589793

這一方法的步驟是:

  1) 取一張白紙,在上面畫上許多條間距為d的平行線。

  2) 取一根長度為l(l<d) 的針,隨機地向畫有平行直線的紙上擲n次,觀察針與直線相交的次數,記為m

  3)計算針與直線相交的概率.

  18世紀,法國數學家蒲豐和勒可萊爾提出的「投針問題」,記載於布豐1777年出版的著作中:「在平面上畫有一組間距為d的平行線,將一根長度為l(l<d)的針任意擲在這個平面上,求此針與平行線中任一條相交的概率。」布豐本人證明了,這個概率是 p=2l/(πd)  π為圓周率。

這個方法真是不可思議,感興趣的朋友可以模擬一下。

證明:http://files.cnblogs.com/ysjxw/蒲豐投針與蒙特卡洛模擬.pdf

福利:四行代碼計算圓周率800位的怪異程序

#include 

#include 

int a=10000, b, c=2800, d, e, f[2801], g; 

main() 

for(;b-c;) 

f[b++]=a/5; 

for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a) 

for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b); 

return 0; 

————

編輯 ∑Gemini

來源:CSDN

更多精彩:

☞泰勒定理的奇聞軼事

☞丘成桐:漫談微分幾何

☞Leibniz 如何想出微積分?(一)

☞線性相關和秩的物理意義

☞數學史上你認為最醜陋的公式是什麼?

☞陶哲軒談什麼是好的數學

☞田淵棟:數學的用處(下篇)

☞你絕對沒想過原來數學家這麼流氓,一言不合就進行暴力證明

☞世界上最牛的五篇博士論文

☞數學中有哪些巧合讓人眼前一亮?

☞算法立功!清華畢業教授美國被搶車,警察無能為力自己用「貪心算法」找回

☞學術史上的奇文:怎樣用數學抓獅子

☞臺大教授的反思:最難的一課 我們卻沒教給學生

☞麻省理工學院(MIT)研究生學習指導—— 怎樣做研究生

☞分享 數學,常識和運氣 ——投資大師詹姆斯·西蒙斯2010年在MIT的講座

算法數學之美微信公眾號歡迎賜稿

稿件涉及數學、物理、算法、計算機、編程等相關領域,經採用我們將奉上稿酬。

投稿郵箱:math_alg@163.com

相關焦點

  • 蒙特卡羅算法
    帶著這個疑問,ARGO今天跟大家一起學習蒙特卡羅算法,本文將分成四個部分展開:蒙特卡羅算法的簡介求圓周率π的python實例演示算法的優缺點算法的應用一 蒙特卡羅算法簡介蒙特·卡羅方法(Monte Carlo method
  • 圓周率π是沒有盡頭的,為什麼我們還是在不斷地計算π?
    你提出100種要求來得到圓周率的值,那我就能想到101種方法來求解圓周率。的確,人們在這項事業上可以說是蒸蒸日上,從上古時代的割圓術,到萊布尼茲級數,投針實驗,以及各種各樣的無窮級數等等。每一種方法到最後都可以把圓周率精準無誤地的出來,然而這並不意味著,這每一種方法實施起來都是一樣的效果。這裡就必須考慮一個執行效率的問題。
  • 加密類型:5種加密算法以及如何選擇正確的算法
    在深入探討5種最常用的加密算法,以前所未有地簡化它們之前,我們將分解兩種主要的加密類型,對稱和非對稱。加密是始終成為頭條新聞的那些網絡安全主題之一。對不同類型的加密有充分了解的任何人都可能會覺得,這種非凡的技術正處於一種不公正的狀態,而這種非凡的技術是Internet安全和隱私的核心。
  • 3.14圓周率日,你知道圓周率有多牛嗎?
    我們把這個數就叫做圓周率,用希臘字母 π 來表示。在幾何問題中,圓周率扮演著非常重要的角色;然而更神奇的是,它也馳騁於幾何以外的其它數學領域。在地板上畫一系列間距為 2 釐米的平行線,然後把一根長度為 1 釐米的針扔在地板上。那麼,這根針與地板上的線條相交的概率是多少呢?1733 年,法國博物學家布豐(Comte de Buffon)第一次提出了這個問題。
  • ,用數學揭開算法的面紗。
    沒點幾下,我發現自己在看他們分享的一些視頻,視頻結束後,我又收到了一些相關的有趣視頻的推薦,接著又繼續點開看。等我意識到大事不妙時,已經半夜了,顯然我不得不熬夜準備第二天的會議發言稿。這種事情會發生在我們大多數人身上,而且這種行為非常普遍。平臺是如何知道我喜歡看某種類型的視頻的呢?從事自媒體的朋友,應該體驗過熱血沸騰的感覺吧?
  • 圓周率π有幾種神奇算法?
    一說起圓周率π,很多人就想到祖衝之老爺子的割圓術。說實話,祖大人也挺無奈的,從我們小學就開始割圓,一直割到大學還在割。
  • 了解算法的前世今生
    一、中國算法的前世中國古代數學是以創造算法特別是各種解方程的算法為主線。從線性方程組到高次多項式方程,乃至不定方程,中國古代數學家創造了一系列先進的算法(中國數學家稱之為「術」),他們用這些算法去求解相應類型的代數方程,從而解決導致這些方程的各種各樣的科學和實際問題。
  • 主宰全球的10大算法
    【編者按】Reddit有篇帖子介紹了算法對我們現在生活的重要性,以及哪些算法對現代文明所做貢獻最大。這個表單並不完整,很多與我們密切相關的算法都沒有提到,如機器學習和矩陣乘法,歡迎你繼續補充。如果對算法有所了解,讀這篇文章時你可能會問「作者知道算法為何物嗎?」,或是「Facebook的『信息流』(News Feed)算是一種算法嗎?」
  • 圖解|什麼是RSA算法
    數學之美和密碼學前陣子閒來無事看了會兒《數學之美》,其中第17章講述了由電視劇《暗算》展開的密碼學背後的一些數學原理。書中從凱撒密碼到二戰盟軍和日軍,講到密碼學中均勻分布&統計獨立的基礎理論,看得我津津有味,但是其中一些細節沒有整明白,於是決定搞篇文章。
  • 論算法的法律規制
    從狹義角度看,算法源於數學與計算科學,用於表述解決數學與計算科學難題的一系列規則,例如數據結構算法、數論與代數算法、計算幾何算法、圖論算法、動態規劃以及數值分析、加密算法、排序算法、檢索算法、隨機化算法、並行算法、厄米變形模型、隨機森林算法等。因此,狹義的算法可被視為純粹的科學或技術。
  • 陳根:算法下的選擇讓渡,你被算法裹挾了嗎?
    但不論是大數據還是人工智慧,都依託算法而存在,我們正在走進的數字世界本質上則是數據驅動的算法應用。當算法充斥於我們的生活,又在細微處改變著我們對信息的接收、對產品的需求以及情緒與狀態時,卻少有人關心算法最終會對我們產生的影響。事實上,以算法為導向的思維模式,正在迅速地蔓延到自然科學和社會科學的所有領域,並滲透到我們日常生活的各個方面。
  • 最安全的加密算法RSA
    tiankonguse的公眾號(tiankonguse-code)。 甲方獲取乙方的公鑰,然後用它對信息加密。乙方得到加密後的信息,用私鑰解密。如果公鑰加密的信息只有私鑰解得開,那麼只要私鑰不洩漏,通信就是安全的。下面就一步步講解這個RSA算法吧。PS:如果你不是程式設計師或者數學專業的,請直接跳到結論小節吧,下面的都是數學知識。
  • KNN算法介紹
    也就是說,該方法在定類決策上只依據最鄰近的一個或者幾個樣本的類別來決定待分樣本所屬的類別。一般來說,KNN分類算法的計算過程:1)計算待分類點與已知類別的點之間的距離2)按照距離遞增次序排序3)選取與待分類點距離最小的K個點4)確定前K個點所在類別的出現次數5)返回前K個點出現次數最高的類別作為待分類點的預測分類KNN用來回歸要預測的點的值通過求與它距離最近的
  • 加密算法科普:des、aes加密、對稱、非對稱加密、Hash算法都是啥
    DSA (數字籤名用)常見的 Hash 算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1分組加密算法中,有ECB,CBC,CFB,OFB這幾種算法模式什麼是對稱密碼算法網絡安全通信中要用到兩類密碼算法,加密一般分為對稱加密(Symmetric Key Encryption)和非對稱加密(Asymmetric Key
  • 走進算法:ECDSA算法如何保護你的數據(上)
    大家好呀,我卡卡博士今天來安利一下ECDSA算法,也就是橢圓曲線數字籤名算法
  • 歷史上最奇怪的圓周率計算法
    兇案現場也有圓周率無獨有偶,美國另一名偵探也將 Buffon 投針實驗應用到了他的調查中。上世紀末,一名中年男子不幸遇害,全身上下共中 37 刀。由於當時中年男子身穿條紋 T 恤,這名偵探敏銳地想到,可以利用 T 恤上的刀印求出圓周率的近似值,並根據其結果與實際圓周率值的接近程度來推斷兇手作案時的心理狀況。
  • 圖像處理算法有哪些_圖像處理十大經典算法
    }}二、廣度優先搜索此圖遍歷中最基本的倆種算法,BFS,DFS,入選本圖算法十大算法,自是無可爭議。因為,這倆種搜索算法,應用實為廣泛而重要。五、Bellman-FordBellman-Ford:求單源最短路,可以判斷有無負權迴路(若有,則不存在最短路),時效性較好,時間複雜度O(VE)。
  • 短小精悍的多源最短路徑算法—Floyd算法
    在圖論中,在尋路最短路徑中除了Dijkstra算法以外,還有Floyd算法也是非常經典,然而兩種算法還是有區別的,Floyd主要計算多源最短路徑。在單源正權值最短路徑,我們會用Dijkstra算法來求最短路徑,並且算法的思想很簡單——貪心算法:每次確定最短路徑的一個點然後維護(更新)這個點周圍點的距離加入預選隊列,等待下一次的拋出確定。但是雖然思想很簡單,實現起來是非常複雜的,我們需要鄰接矩陣(表)儲存長度,需要優先隊列(或者每次都比較)維護一個預選點的集合。
  • 論創造性思維的溫養:如何締造自己的數學公式
    在數學的大千世界裡,有許許多多優美而又實用的數學公式,作為普通數學愛好者,能否通過下番功夫,自己也能創建新的數學公式呢?這是一個很有趣也很吸引人的話題。本文以圓周率的計算公式為例,來探討這個可能性。本人總結了一下,圓周率的計算有許多種類型,其中四大類公式的每一類都有無數個數學公式,既然有無數多個公式,自己能否搞出幾個新的公式來?答案是完全可以,請耐心往下看。
  • 2020年上海中考數學第21題,構造直角三角形求三角函數值
    2020年上海中考數學第21題,構造直角三角形求三角函數值〖原題〗如圖,在直角梯形ABCD中,AB∥DC,∠DAB=90,AB=8,CD=5,(1)求梯形ABCD的面積;(2)連接BD,求∠DBC的正切值.