當前位置:首頁 » 操作系統 » 優美演算法

優美演算法

發布時間: 2022-10-22 22:01:07

Ⅰ 高分懸賞

圓的周長與直徑之比是一個常數,人們稱之為圓周率。通常用希臘字母「π」來表示。1706年,英國人瓊斯首次創用π代表圓周率。他的符號並未立刻被採用,以後,歐拉予以提倡,才漸漸推廣開來。現在π已成為圓周率的專用符號,π的研究,在一定程度上反映這個地區或時代的數學水平,它的歷史是饒有趣味的。
在古代,實際上長期使用 π=3這個數值,巴比倫、印度、中國都是如此。到公元前2世紀,中國的《周髀算經》里已有周三徑一的記載。東漢的數學家又將值改為根號10(約為3.16)。真正使圓周率計算建立在科學的基礎上,首先應歸功於阿基米德。他專門寫了一篇論文《圓的度量》,用幾何方法證明了圓周率與圓直徑之比小於三又七分之一而大於三又七十一分之十。這是第一次在科學中創用上、下界來確定近似值。第一次用正確方法計算π值的,是魏晉時期的劉徽,在公元263年,他創用了用圓的內接正多邊形的面積來逼近圓面積的方法,算得π值為3.14。我國稱這種方法為「割圓術」。直到1200年後,西方人才找到了類似的方法。後人為紀念劉徽的貢獻,將3.14稱為徽率。
公元460年,南朝的祖沖之利用劉徽的割圓術,把π值算到小點後第七位3.1415926,這個具有七位小數的圓周率在當時是世界首次。祖沖之還找到了兩個分數:22/7和113/355,用分數來代替π,極大地簡化了計算,這種思想比西方也早一千多年。
祖沖之的圓周率,保持了一千多年的世界記錄。終於在1596年,由荷蘭數學家盧道夫打破了。他把π值推到小數點後第15位小數,最後推到第35位。為了紀念他這項成就,人們在他1610年去世後的墓碑上,刻上:3.這個數,從此也把它稱為「盧道夫數」。
之後,西方數學家計算 的工作,有了飛速的進展。1948年1月,費格森與雷思奇合作,算出808位小數的π值。計算機問世後,π的人工計算宣告結束。20世紀50年代,人們藉助計算機算得了10萬位小數的π值,70年代又突破這個記錄,算到了150萬位。到90年代初,用新的計算方法,算到的值已到了4.8億位。π的計算經歷了幾千年的歷史,它的每一次重大進步,都標志著技術和演算法的革新。
圓周率π的計算歷程
圓周率是一個極其馳名的數。從有文字記載的歷史開始,這個數就引進了外行人和學者們的興趣。作為一個非常重要的常數,圓周率最早是出於解決有關圓的計算問題。僅憑這一點,求出它的盡量准確的近似值,就是一個極其迫切的問題了。事實也是如此,幾千年來作為數學家們的奮斗目標,古今中外一代一代的數學家為此獻出了自己的智慧和勞動。回顧歷史,人類對 π 的認識過程,反映了數學和計算技術發展情形的一個側面。 π 的研究,在一定程度上反映這個地區或時代的數學水平。德國數學史家康托說:"歷史上一個國家所算得的圓周率的准確程度,可以作為衡量這個國家當時數學發展水平的指標。"直到19世紀初,求圓周率的值應該說是數學中的頭號難題。為求得圓周率的值,人類走過了漫長而曲折的道路,它的歷史是饒有趣味的。我們可以將這一計算歷程分為幾個階段。
實驗時期
通過實驗對 π 值進行估算,這是計算 π 的的第一階段。這種對 π 值的估算基本上都是以觀察或實驗為根據,是基於對一個圓的周長和直徑的實際測量而得出的。在古代世界,實際上長期使用 π =3這個數值。最早見於文字記載的有基督教《聖經》中的章節,其上取圓周率為3。這一段描述的事大約發生在公元前950年前後。其他如巴比倫、印度、中國等也長期使用3這個粗略而簡單實用的數值。在我國劉徽之前"圓徑一而周三"曾廣泛流傳。我國第一部《周髀算經》中,就記載有圓"周三徑一"這一結論。在我國,木工師傅有兩句從古流傳下來的口訣:叫做:"周三徑一,方五斜七",意思是說,直徑為1的圓,周長大約是3,邊長為5的正方形,對角線之長約為7。這正反映了早期人們對圓周率 π 和√2 這兩個無理數的粗略估計。東漢時期官方還明文規定圓周率取3為計算面積的標准。後人稱之為"古率"。
早期的人們還使用了其它的粗糙方法。如古埃及、古希臘人曾用穀粒擺在圓形上,以數粒數與方形對比的方法取得數值。或用勻重木板鋸成圓形和方形以秤量對比取值……由此,得到圓周率的稍好些的值。如古埃及人應用了約四千年的 4 (8/9)2 = 3.1605。在印度,公元前六世紀,曾取 π= √10 = 3.162。在我國東、西漢之交,新朝王莽令劉歆製造量的容器――律嘉量斛。劉歆在製造標准容器的過程中就需要用到圓周率的值。為此,他大約也是通過做實驗,得到一些關於圓周率的並不劃一的近似值。現在根據銘文推算,其計算值分別取為3.1547,3.1992,3.1498,3.2031比徑一周三的古率已有所進步。人類的這種探索的結果,當主要估計圓田面積時,對生產沒有太大影響,但以此來製造器皿或其它計算就不合適了。
幾何法時期
憑直觀推測或實物度量,來計算 π 值的實驗方法所得到的結果是相當粗略的。
真正使圓周率計算建立在科學的基礎上,首先應歸功於阿基米德。他是科學地研究這一常數的第一個人,是他首先提出了一種能夠藉助數學過程而不是通過測量的、能夠把 π 的值精確到任意精度的方法。由此,開創了圓周率計算的第二階段。
圓周長大於內接正四邊形而小於外切正四邊形,因此 2√2 < π < 4 。
當然,這是一個差勁透頂的例子。據說阿基米德用到了正96邊形才算出他的值域。
阿基米德求圓周率的更精確近似值的方法,體現在他的一篇論文《圓的測定》之中。在這一書中,阿基米德第一次創用上、下界來確定 π 的近似值,他用幾何方法證明了"圓周長與圓直徑之比小於 3+(1/7) 而大於 3 + (10/71) ",他還提供了誤差的估計。重要的是,這種方法從理論上而言,能夠求得圓周率的更准確的值。到公元150年左右,希臘天文學家托勒密得出 π =3.1416,取得了自阿基米德以來的巨大進步。
割圓術。不斷地利用勾股定理,來計算正N邊形的邊長。
在我國,首先是由數學家劉徽得出較精確的圓周率。公元263年前後,劉徽提出著名的割圓術,得出 π =3.14,通常稱為"徽率",他指出這是不足近似值。雖然他提出割圓術的時間比阿基米德晚一些,但其方法確有著較阿基米德方法更美妙之處。割圓術僅用內接正多邊形就確定出了圓周率的上、下界,比阿基米德用內接同時又用外切正多邊形簡捷得多。另外,有人認為在割圓術中劉徽提供了一種絕妙的精加工辦法,以至於他將割到192邊形的幾個粗糙的近似值通過簡單的加權平均,竟然獲得具有4位有效數字的圓周率 π =3927/1250 =3.1416。而這一結果,正如劉徽本人指出的,如果通過割圓計算得出這個結果,需要割到3072邊形。這種精加工方法的效果是奇妙的。這一神奇的精加工技術是割圓術中最為精彩的部分,令人遺憾的是,由於人們對它缺乏理解而被長期埋沒了。
恐怕大家更加熟悉的是祖沖之所做出的貢獻吧。對此,《隋書·律歷志》有如下記載:"宋末,南徐州從事祖沖之更開密法。以圓徑一億為丈,圓周盈數三丈一尺四寸一分五厘九毫二秒七忽,朒數三丈一尺四寸一分五厘九毫二秒六忽,正數在盈朒二限之間。密率:圓徑一百一十三,圓周三百五十五。約率,圓徑七,周二十二。"
這一記錄指出,祖沖之關於圓周率的兩大貢獻。其一是求得圓周率
3.1415926 < π < 3.1415927
其二是,得到 π 的兩個近似分數即:約率為22/7;密率為355/113。
他算出的 π 的8位可靠數字,不但在當時是最精密的圓周率,而且保持世界記錄九百多年。以致於有數學史家提議將這一結果命名為"祖率"。
這一結果是如何獲得的呢?追根溯源,正是基於對劉徽割圓術的繼承與發展,祖沖之才能得到這一非凡的成果。因而當我們稱頌祖沖之的功績時,不要忘記他的成就的取得是因為他站在數學偉人劉徽的肩膀上的緣故。後人曾推算若要單純地通過計算圓內接多邊形邊長的話,得到這一結果,需要算到圓內接正12288邊形,才能得到這樣精確度的值。祖沖之是否還使用了其它的巧妙辦法來簡化計算呢?這已經不得而知,因為記載其研究成果的著作《綴術》早已失傳了。這在中國數學發展史上是一件極令人痛惜的事。
中國發行的祖沖之紀念郵票
祖沖之的這一研究成果享有世界聲譽:巴黎"發現宮"科學博物館的牆壁上著文介紹了祖沖之求得的圓周率,莫斯科大學禮堂的走廊上鑲嵌有祖沖之的大理石塑像,月球上有以祖沖之命名的環形山……
對於祖沖之的關於圓周率的第二點貢獻,即他選用兩個簡單的分數尤其是用密率來近似地表示 π 這一點,通常人們不會太注意。然而,實際上,後者在數學上有更重要的意義。
密率與 π 的近似程度很好,但形式上卻很簡單,並且很優美,只用到了數字1、3、5。數學史家梁宗巨教授驗證出:分母小於16604的一切分數中,沒有比密率更接近 π 的分數。在國外,祖沖之死後一千多年,西方人才獲得這一結果。
可見,密率的提出是一件很不簡單的事情。人們自然要追究他是採用什麼辦法得到這一結果的呢?他是用什麼辦法把圓周率從小數表示的近似值化為近似分數的呢?這一問題歷來為數學史家所關注。由於文獻的失傳,祖沖之的求法已不為人知。後人對此進行了各種猜測。
讓我們先看看國外歷史上的工作,希望能夠提供出一些信息。
1573年,德國人奧托得出這一結果。他是用阿基米德成果22/7與托勒密的結果377/120用類似於加成法"合成"的:(377-22) / (120-7) = 355/113。
1585年,荷蘭人安托尼茲用阿基米德的方法先求得:333/106 < π < 377/120,用兩者作為 π 的母近似值,分子、分母各取平均,通過加成法獲得結果:3 ((15+17)/(106+120) = 355/113。
兩個雖都得出了祖沖之密率,但使用方法都為偶合,無理由可言。
在日本,十七世紀關孝和重要著作《括要演算法》卷四中求圓周率時創立零約術,其實質就是用加成法來求近似分數的方法。他以3、4作為母近似值,連續加成六次得到祖沖之約率,加成一百十二次得到密率。其學生對這種按部就班的笨辦法作了改進,提出從相鄰的不足、過剩近似值就近加成的辦法,(實際上就是我們前面已經提到的加成法)這樣從3、4出發,六次加成到約率,第七次出現25/8,就近與其緊鄰的22/7加成,得47/15,依次類推,只要加成23次就得到密率。
錢宗琮先生在《中國算學史》(1931年)中提出祖沖之採用了我們前面提到的由何承天首創的"調日法"或稱加權加成法。他設想了祖沖之求密率的過程:以徽率157/50,約率22/7為母近似值,並計算加成權數x=9,於是 (157 + 22×,9) / (50+7×9) = 355/113,一舉得到密率。錢先生說:"沖之在承天後,用其術以造密率,亦意中事耳。"
另一種推測是:使用連分數法。
由於求二自然數的最大公約數的更相減損術遠在《九章算術》成書時代已流行,所以藉助這一工具求近似分數應該是比較自然的。於是有人提出祖沖之可能是在求得盈 二數之後,再使用這個工具,將3.14159265表示成連分數,得到其漸近分數:3,22/7,333/106,355/113,102573/32650…
最後,取精確度很高但分子分母都較小的355/113作為圓周率的近似值。至於上面圓周率漸近分數的具體求法,這里略掉了。你不妨利用我們前面介紹的方法自己求求看。英國李約瑟博士持這一觀點。他在《中國科學技術史》卷三第19章幾何編中論祖沖之的密率說:"密率的分數是一個連分數漸近數,因此是一個非凡的成就。"
我國再回過頭來看一下國外所取得的成果。
1150年,印度數學家婆什迦羅第二計算出 π= 3927/1250 = 3.1416。1424年,中亞細亞地區的天文學家、數學家卡西著《圓周論》,計算了3×228=805,306,368邊內接與外切正多邊形的周長,求出 π 值,他的結果是:
π=3.14159265358979325
有十七位準確數字。這是國外第一次打破祖沖之的記錄。
16世紀的法國數學家韋達利用阿基米德的方法計算 π 近似值,用 6×216正邊形,推算出精確到9位小數的 π 值。他所採用的仍然是阿基米德的方法,但韋達卻擁有比阿基米德更先進的工具:十進位置制。17世紀初,德國人魯道夫用了幾乎一生的時間鑽研這個問題。他也將新的十進制與早的阿基米德方法結合起來,但他不是從正六邊形開始並將其邊數翻番的,他是從正方形開始的,一直推導出了有262條邊的正多邊形,約4,610,000,000,000,000,000邊形!這樣,算出小數35位。為了記念他的這一非凡成果,在德國圓周率 π 被稱為"魯道夫數"。但是,用幾何方法求其值,計算量很大,這樣算下去,窮數學家一生也改進不了多少。到魯道夫可以說已經登峰造極,古典方法已引導數學家們走得很遠,再向前推進,必須在方法上有所突破。
17世紀出現了數學分析,這銳利的工具使得許多初等數學束手無策的問題迎刃而解。 π 的計算歷史也隨之進入了一個新的階段。
分析法時期
這一時期人們開始擺脫求多邊形周長的繁難計算,利用無窮級數或無窮連乘積來算 π 。
1593年,韋達給出
這一不尋常的公式是 π 的最早分析表達式。甚至在今天,這個公式的優美也會令我們贊嘆不已。它表明僅僅藉助數字2,通過一系列的加、乘、除和開平方就可算出 π 值。
接著有多種表達式出現。如沃利斯1650年給出:
1706年,梅欽建立了一個重要的公式,現以他的名字命名:
再利用分析中的級數展開,他算到小數後100位。
這樣的方法遠比可憐的魯道夫用大半生時間才摳出的35位小數的方法簡便得多。顯然,級數方法宣告了古典方法的過時。此後,對於圓周率的計算像馬拉松式競賽,紀錄一個接著一個:
1844年,達塞利用公式:
算到200位。
19世紀以後,類似的公式不斷涌現, π 的位數也迅速增長。1873年,謝克斯利用梅欽的一系列方法,級數公式將 π 算到小數後707位。為了得到這項空前的紀錄,他花費了二十年的時間。他死後,人們將這凝聚著他畢生心血的數值,銘刻在他的墓碑上,以頌揚他頑強的意志和堅韌不拔的毅力。於是在他的墓碑上留下了他一生心血的結晶: π 的小數點後707位數值。這一驚人的結果成為此後74年的標准。此後半個世紀,人們對他的計算結果深信不疑,或者說即便懷疑也沒有辦法來檢查它是否正確。以致於在1937年巴黎博覽會發現館的天井裡,依然顯赫地刻著他求出的 π 值。
又過了若干年,數學家弗格森對他的計算結果產生了懷疑,其疑問基於如下猜想:在 π 的數值中,盡管各數字排列沒有規律可循,但是各數碼出現的機會應該相同。當他對謝克斯的結果進行統計時,發現各數字出現次數過於參差不齊。於是懷疑有誤。他使用了當時所能找到的最先進的計算工具,從1944年5月到1945年5月,算了整整一年。1946年,弗格森發現第528位是錯的(應為4,誤為5)。謝克斯的值中足足有一百多位全都報了銷,這把可憐的謝克斯和他的十五年浪費了的光陰全部一筆勾銷了。
對此,有人曾嘲笑他說:數學史在記錄了諸如阿基米德、費馬等人的著作之餘,也將會擠出那麼一、二行的篇幅來記述1873年前謝克斯曾把 π 計算到小數707位這件事。這樣,他也許會覺得自己的生命沒有虛度。如果確實是這樣的話,他的目的達到了。
人們對這些在地球的各個角落裡作出不懈努力的人感到不可理解,這可能是正常的。但是,對此做出的嘲笑卻是過於殘忍了。人的能力是不同的,我們無法要求每個人都成為費馬、高斯那樣的人物。但成為不了偉大的數學家,並不意味著我們就不能為這個社會做出自己有限的貢獻。人各有其長,作為一個精力充沛的計算者,謝克斯願意獻出一生的大部分時光從事這項工作而別無報酬,並最終為世上的知識寶庫添了一小塊磚加了一個塊瓦。對此我們不應為他的不懈努力而感染並從中得到一些啟發與教育嗎?
1948年1月弗格森和倫奇兩人共同發表有808位正確小數的 π 。這是人工計算 π 的最高記錄。
計算機時期
1946年,世界第一台計算機ENIAC製造成功,標志著人類歷史邁入了電腦時代。電腦的出現導致了計算方面的根本革命。1949年,ENIAC根據梅欽公式計算到2035(一說是2037)位小數,包括准備和整理時間在內僅用了70小時。計算機的發展一日千里,其記錄也就被頻頻打破。
ENIAC:一個時代的開始
1973年,有人就把圓周率算到了小數點後100萬位,並將結果印成一本二百頁厚的書,可謂世界上最枯燥無味的書了。1989年突破10億大關,1995年10月超過64億位。1999年9月30日,《文摘報》報道,日本東京大學教授金田康正已求到2061.5843億位的小數值。如果將這些數字列印在A4大小的復印紙上,令每頁印2萬位數字,那麼,這些紙摞起來將高達五六百米。來自最新的報道:金田康正利用一台超級計算機,計算出圓周率小數點後一兆二千四百一十一億位數,改寫了他本人兩年前創造的紀錄。據悉,金田教授與日立製作所的員工合作,利用目前計算能力居世界第二十六位的超級計算機,使用新的計算方法,耗時四百多個小時,才計算出新的數位,比他一九九九年九月計算出的小數點後二千六百一十一位提高了六倍。圓周率小數點後第一兆位數是二,第一兆二千四百一十一億位數為五。如果一秒鍾讀一位數,大約四萬年後才能讀完。
不過,現在打破記錄,不管推進到多少位,也不會令人感到特別的驚奇了。實際上,把 π 的數值算得過分精確,應用意義並不大。現代科技領域使用的 π 值,有十幾位已經足夠。如果用魯道夫的35位小數的 π 值計算一個能把太陽系包圍起來的圓的周長,誤差還不到質子直徑的百萬分之一。我們還可以引美國天文學家西蒙·紐克姆的話來說明這種計算的實用價值:
"十位小數就足以使地球周界准確到一英寸以內,三十位小數便能使整個可見宇宙的四周准確到連最強大的顯微鏡都不能分辨的一個量。"
那麼為什麼數學家們還象登山運動員那樣,奮力向上攀登,一直求下去而不是停止對 π 的探索呢?為什麼其小數值有如此的魅力呢?
這其中大概免不了有人類的好奇心與領先於人的心態作怪,但除此之外,還有許多其它原因。
奔騰與圓周率之間的奇妙關系……
1、它現在可以被人們用來測試或檢驗超級計算機的各項性能,特別是運算速度與計算過程的穩定性。這對計算機本身的改進至關重要。就在幾年前,當Intel公司推出奔騰(Pentium)時,發現它有一點小問題,這問題正是通過運行 π 的計算而找到的。這正是超高精度的 π 計算直到今天仍然有重要意義的原因之一。
2、 計算的方法和思路可以引發新的概念和思想。雖然計算機的計算速度超出任何人的想像,但畢竟還需要由數學家去編製程序,指導計算機正確運算。實際上,確切地說,當我們把 π 的計算歷史劃分出一個電子計算機時期時,這並非意味著計算方法上的改進,而只是計算工具有了一個大飛躍而已。因而如何改進計算技術,研究出更好的計算公式,使公式收斂得更快、能極快地達到較大的精確度仍是數學家們面對的一個重要課題。在這方面,本世紀印度天才數學家拉馬努揚得出了一些很好的結果。他發現了許多能夠迅速而精確地計算 π 近似值的公式。他的見解開通了更有效地計算 π 近似值的思路。現在計算機計算 π 值的公式就是由他得到的。至於這位極富傳奇色彩的數學家的故事,在這本小書中我們不想多做介紹了。不過,我希望大家能夠明白 π 的故事講述的是人類的勝利,而不是機器的勝利。
3、還有一個關於 π 的計算的問題是:我們能否無限地繼續算下去?答案是:不行!根據朱達偌夫斯基的估計,我們最多算1077位。雖然,現在我們離這一極限還相差很遠很遠,但這畢竟是一個界限。為了不受這一界限的約束,就需要從計算理論上有新的突破。前面我們所提到的計算,不管用什麼公式都必須從頭算起,一旦前面的某一位出錯,後面的數值完全沒有意義。還記得令人遺憾的謝克斯嗎?他就是歷史上最慘痛的教訓。
4、於是,有人想能否計算時不從頭開始,而是從半截開始呢?這一根本性的想法就是尋找並行演算法公式。1996年,圓周率的並行演算法公式終於找到,但這是一個16進位的公式,這樣很容易得出的1000億位的數值,只不過是16進位的。是否有10進位的並行計算公式,仍是未來數學的一大難題。
5、作為一個無窮數列,數學家感興趣的把 π 展開到上億位,能夠提供充足的數據來驗證人們所提出的某些理論問題,可以發現許多迷人的性質。如,在 π 的十進展開中,10個數字,哪些比較稀,哪些比較密? π 的數字展開中某些數字出現的頻率會比另一些高嗎?或許它們並非完全隨意?這樣的想法並非是無聊之舉。只有那些思想敏銳的人才會問這種貌似簡單,許多人司空見慣但卻不屑發問的問題。
6、數學家弗格森最早有過這種猜想:在 π 的數值式中各數碼出現的概率相同。正是他的這個猜想為發現和糾正向克斯計算 π 值的錯誤立下了汗馬功勞。然而,猜想並不等於現實。弗格森想驗證它,卻無能為力。後人也想驗證它,也是苦於已知的 π 值的位數太少。甚至當位數太少時,人們有理由對猜想的正確性做出懷疑。如,數字0的出現機會在開始時就非常少。前50位中只有1個0,第一次出現在32位上。可是,這種現象隨著數據的增多,很快就改變了:100位以內有8個0;200位以內有19個0;……1000萬位以內有999,440個0;……60億位以內有599,963,005個0,幾乎佔1/10。
其他數字又如何呢?結果顯示,每一個都差不多是1/10,有的多一點,有的少一點。雖然有些偏差,但都在1/10000之內。
7、人們還想知道: π 的數字展開真的沒有一定的模式嗎?我們希望能夠在十進制展開式中通過研究數字的統計分布,尋找任何可能的模型――如果存在這種模型的話,迄今為止尚未發現有這種模型。同時我們還想了解: π 的展開式中含有無窮的樣式變化嗎?或者說,是否任何形式的數字排列都會出現呢?著名數學家希爾伯特在沒有發表的筆記本中曾提出下面的問題: π 的十進展開中是否有10個9連在一起?以現在算到的60億位數字來看,已經出現:連續6個9連在一起。希爾伯特的問題答案似乎應該是肯定的,看來任何數字的排列都應該出現,只是什麼時候出現而已。但這還需要更多 π 的數位的計算才能提供切實的證據。
8、在這方面,還有如下的統計結果:在60億數字中已出現連在一起的8個8;9個7;10個6;小數點後第710150位與3204765位開始,均連續出現了七個3;小數點52638位起連續出現了14142135這八個數字,這恰是的前八位;小數點後第2747956位起,出現了有趣的數列876543210,遺憾的是前面缺個9;還有更有趣的數列123456789也出現了。
如果繼續算下去,看來各種類型的數字列組合可能都會出現。
拾零: π 的其它計算方法
在1777年出版的《或然性算術實驗》一書中,蒲豐提出了用實驗方法計算 π 。這個實驗方法的操作很簡單:找一根粗細均勻,長度為 d 的細針,並在一張白紙上畫上一組間距為 l 的平行線(方便起見,常取 l = d/2),然後一次又一次地將小針任意投擲在白紙上。這樣反復地投多次,數數針與任意平行線相交的次數,於是就可以得到 π 的近似值。因為蒲豐本人證明了針與任意平行線相交的概率為 p = 2l/πd 。利用這一公式,可以用概率方法得到圓周率的近似值。在一次實驗中,他選取 l = d/2 ,然後投針2212次,其中針與平行線相交704次,這樣求得圓周率的近似值為 2212/704 = 3.142。當實驗中投的次數相當多時,就可以得到 π 的更精確的值。
1850年,一位叫沃爾夫的人在投擲5000多次後,得到 π 的近似值為3.1596。目前宣稱用這種方法得到最好結果的是義大利人拉茲瑞尼。在1901年,他重復這項實驗,作了3408次投針,求得 π 的近似值為3.1415929,這個結果是如此准確,以致於很多人懷疑其實驗的真偽。如美國猶他州奧格登的國立韋伯大學的L·巴傑就對此提出過有力的質疑。
不過,蒲豐實驗的重要性並非是為了求得比其它方法更精確的 π 值。蒲豐投針問題的重要性在於它是第一個用幾何形式表達概率問題的例子。計算 π 的這一方法,不但因其新穎,奇妙而讓人叫絕,而且它開創了使用隨機數處理確定性數學問題的先河,是用偶然性方法去解決確定性計算的前導。
在用概率方法計算 π 值中還要提到的是:R·查特在1904年發現,兩個隨意寫出的數中,互素的概率為6/π2。1995年4月英國《自然》雜志刊登文章,介紹英國伯明翰市阿斯頓大學計算機科學與應用數學系的羅伯特·馬修斯,如何利用夜空中亮星的分布來計算圓周率。馬修斯從100顆最亮的星星中隨意選取一對又一對進行分析,計算它們位置之間的角距。他檢查了100萬對因子,據此求得 π 的值約為3.12772。這個值與真值相對誤差不超過5%。
通過幾何、微積分、概率等廣泛的范圍和渠道發現 π ,這充分顯示了數學方法的奇異美。 π 竟然與這么些表面看來風馬牛不相及的試驗,溝通在一起,這的確使人驚訝不已。

Ⅱ 有哪些美麗或者神奇的理科公式

這個歐拉公式是由瑞士數學家歐拉發現。該公式由5個數學上最簡單的符號組成,它通過3種基礎運算,即加法、乘法和冪運算就將1、0、π、i和e這五個數學中最重要的數字聯系在了一起,堪稱天才的完美之作。它是數學與世界之間兼具理性色彩與深邃之美的巔峰之筆。它是純粹的數學之美,淋漓盡致地展現出數學作為跨文化、跨種族的通用語言的簡單與和諧,讓人們得以一窺數學穿越宇宙時空通行無礙的完美特性。

Ⅲ aks演算法優點和缺點

AKS演算法是一個新穎的、有趣的、優美的演算法,它解決了一
個很多世紀沒有解決的基本問題OAKS演算法的最重要之處就是
它是相當簡單的,不需要特殊的橢圓曲線數學及類似知識。
AKS演算法不是其他人工作的簡單推廣,它摒棄了把已有的方法
集中到一起的想法,而是探素使用簡單的代數概念來解決問題
的方法。盡管思想是簡單的,但是非常有創造性。然而,這個算
法目前可能不會有太多的實際應用。這是因為演算法的運行時間
是0((log n)}),與Miller和Rabin設計的概率測試的0(log rz)
運行時間相比是相形見咄的。研究者們注意到如果某個猜想被
證明,演算法可以在0((logn)')時間內運行,這樣的改善將促進
實際的應用。研究者們還證明如果Sophie Germain素數具有期
望的分布,那麼在時間估計中的指數12可以減少到5。當然如
果發現素數的分布並非如此,那將會有很大區別。
AKS演算法最重要的意義是作為一個理論結果,為這一領域
的研究奠定了基礎。之後在技術上將會進行改進與完善,使之
更為實用。

Ⅳ 圓周率餓演算法

圓周率的計算方法

古人計算圓周率,一般是用割圓法。即用圓的內接或外切正多邊形來逼近圓的周長。Archimedes用正96邊形得到圓周率小數點後3位的精度;劉徽用正3072邊形得到5位精度;Ludolph Van Ceulen用正262邊形得到了35位精度。這種基於幾何的演算法計算量大,速度慢,吃力不討好。隨著數學的發展,數學家們在進行數學研究時有意無意地發現了許多計算圓周率的公式。下面挑選一些經典的常用公式加以介紹。除了這些經典公式外,還有很多其他公式和由這些經典公式衍生出來的公式,就不一一列舉了。

http://www.jason314.com/palgorithm.htm

這個公式由英國天文學教授John Machin於1706年發現。他利用這個公式計算到了100位的圓周率。Machin公式每計算一項可以得到1.4位的十進制精度。因為它的計算過程中被乘數和被除數都不大於長整數,所以可以很容易地在計算機上編程實現。

Machin.c 源程序

還有很多類似於Machin公式的反正切公式。在所有這些公式中,Machin公式似乎是最快的了。雖然如此,如果要計算更多的位數,比如幾千萬位,Machin公式就力不從心了。下面介紹的演算法,在PC機上計算大約一天時間,就可以得到圓周率的過億位的精度。這些演算法用程序實現起來比較復雜。因為計算過程中涉及兩個大數的乘除運算,要用FFT(Fast Fourier Transform)演算法。FFT可以將兩個大數的乘除運算時間由O(n2)縮短為O(nlog(n))。

*********************************
http://www.sdxcx.com/a/a278/text/278zs_10.htm
**********************************************
在我國,首先是由數學家劉徽得出較精確的圓周率。公元263年前後,劉徽提出著名的割圓術,得出 π =3.14,通常稱為「徽率」,他指出這是不足近似值。雖然他提出割圓術的時間比阿基米德晚一些,但其方法確有著較阿基米德方法更美妙之處。割圓術僅用內接正多邊形就確定出了圓周率的上、下界,比阿基米德用內接同時又用外切正多邊形簡捷得多。另外,有人認為在割圓術中劉徽提供了一種絕妙的精加工辦法,以致於他將割到192邊形的幾個粗糙的近似值通過簡單的加權平均,竟然獲得具有4位有效數字的圓周率 π =3927/1250 =3.1416。而這一結果,正如劉徽本人指出的,如果通過割圓計算得出這個結果,需要割到3072邊形。這種精加工方法的效果是奇妙的。這一神奇的精加工技術是割圓術中最為精彩的部分,令人遺憾的是,由於人們對它缺乏理解而被長期埋沒了。

恐怕大家更加熟悉的是祖沖之所做出的貢獻吧。對此,《隋書·律歷志》有如下記載:「宋末,南徐州從事祖沖之更開密法。以圓徑一億為丈,圓周盈數三丈一尺四寸一分五厘九毫二秒七忽,朒數三丈一尺四寸一分五厘九毫二秒六忽,正數在盈朒二限之間。密率:圓徑一百一十三,圓周三百五十五。約率,圓徑七,周二十二。」

這一記錄指出,祖沖之關於圓周率的兩大貢獻。其一是求得圓周率

3.1415926 < π < 3.1415927

其二是,得到 π 的兩個近似分數即:約率為22/7;密率為355/113。

他算出的 π 的8位可靠數字,不但在當時是最精密的圓周率,而且保持世界記錄九百多年。以致於有數學史家提議將這一結果命名為「祖率」。

這一結果是如何獲得的呢?追根溯源,正是基於對劉徽割圓術的繼承與發展,祖沖之才能得到這一非凡的成果。因而當我們稱頌祖沖之的功績時,不要忘記他的成就的取得是因為他站在數學偉人劉徽的肩膀上的緣故。後人曾推算若要單純地通過計算圓內接多邊形邊長的話,得到這一結果,需要算到圓內接正12288邊形,才能得到這樣精確度的值。祖沖之是否還使用了其它的巧妙辦法來簡化計算呢?這已經不得而知,因為記載其研究成果的著作《綴術》早已失傳了。這在中國數學發展史上是一件極令人痛惜的事。

中國發行的祖沖之紀念郵票
祖沖之的這一研究成果享有世界聲譽:巴黎「發現宮」科學博物館的牆壁上著文介紹了祖沖之求得的圓周率,莫斯科大學禮堂的走廊上鑲嵌有祖沖之的大理石塑像,月球上有以祖沖之命名的環形山……

對於祖沖之的關於圓周率的第二點貢獻,即他選用兩個簡單的分數尤其是用密率來近似地表示 π 這一點,通常人們不會太注意。然而,實際上,後者在數學上有更重要的意義。

密率與 π 的近似程度很好,但形式上卻很簡單,並且很優美,只用到了數字1、3、5。數學史家梁宗巨教授驗證出:分母小於16604的一切分數中,沒有比密率更接近 π 的分數。在國外,祖沖之死後一千多年,西方人才獲得這一結果。

可見,密率的提出是一件很不簡單的事情。人們自然要追究他是採用什麼辦法得到這一結果的呢?他是用什麼辦法把圓周率從小數表示的近似值化為近似分數的呢?這一問題歷來為數學史家所關注。由於文獻的失傳,祖沖之的求法已不為人知。後人對此進行了各種猜測。
http://www.oursci.org/magazine/200301/030126.htm
參考資料:http://www.jason314.com/palgorithm.htm

Ⅳ 優化演算法筆記(十八)灰狼演算法

(以下描述,均不是學術用語,僅供大家快樂的閱讀)
灰狼演算法(Grey Wolf Algorithm)是受灰狼群體捕獵行為啟發而提出的演算法。演算法提出於2013年,仍是一個較新的演算法。目前為止(2020)與之相關的論文也比較多,但多為演算法的應用,應該仍有研究和改進的餘地。
灰狼演算法中,每隻灰狼的位置代表了解空間中的一個可行解。群體中,占據最好位置的三隻灰狼為狼王及其左右護法(衛)。在捕獵過程中這三隻狼將帶領著狼群蛇皮走位,抓捕獵物,直至找到獵物(最優解)。當然狼王不會一直是狼王,左右護法也是一樣,每一輪走位後,會根據位置的優劣重新選出新的狼王和左右護法。狼群中的每一隻灰狼會向著(也可能背向)這三隻位置最優的灰狼移動一定的距離,來決定這一步自己將如何走位。簡單來說, 灰狼個體會向則群體中最優的三個個體移動

很明顯該演算法的主角就是灰狼了。

設定目標灰狼為
,當前灰狼的為 ,則該灰狼向著目標灰狼移動後的位置 可以由一下公式計算得出:

灰狼群體中位置最好的三隻灰狼編號為1,2,3,那麼當前的灰狼i通過觀察灰狼1、灰狼2和灰狼3,根據公式(1)得出的三個位置為Xi1,Xi2,Xi3。那麼灰狼i將要移動到的位置可以根據以下供述計算得出:

可以看出該灰狼的目標位置是通過觀察三隻頭狼得到的三個目標位置的所圍成的區域的質心。(質心超出邊界時,取值為邊界值)。

灰狼演算法的論文描述很多,但是其公式和流程都非常簡單,主要對其參數A和C的作用效果進行了詳細描述。
C主要決定了新位置相對於目標灰狼的方位,而A則決定新位置向目標靠近還是遠離目標灰狼。當|A|>=1時,為遠離目標,表現出更強的全局搜索能力,|A|<1時靠近目標,表現出更強的局部搜索能力。

適應度函數 。
實驗一:

看看這圖像和結果,效果好極了。每當我這么認為時,總會出現意想不到的轉折。
修改一下最優解位置試一試, 。
實驗二 : 。

其結果比上面的實驗差了不少,但我覺得這才是一個優化演算法應有的搜索圖像。其結果看上去較差只是因為迭代次數較少,收斂不夠迅速,這既是優點也是缺點,收斂慢但是搜索更細致。
仔細分析灰狼演算法的流程,它並沒有向原點靠近的趨勢,那隻能理解為演算法群體總體上向著群體的中心移動。 猜想 :當初始化群體的中心恰好是正解時,演算法的結果將會非常的好。
下面使用 ,並將灰狼的初始位置限定在(50,100)的范圍內,看看實驗圖像是否和實驗二的圖像一致。

實驗三 . ,初始種群取值范圍為(50,100)

這圖像和結果跟實驗一的不是一樣的嗎?這說明從實驗二中得出的猜想是錯誤的。

從圖像和結果上看,都和實驗二非常相似,當解在解空間的中心時但不在原點時,演算法的結果將差一些。
為什麼會這樣呢?從演算法的流程上看,灰狼演算法的各個行為都是關於頭狼對稱的,當最優解在原點且頭狼在附近時,公式(1)將變為如下:

實驗五 . ,三隻頭狼添加貪心演算法。

從圖像可以看出中心的三個點移動的頻率要比其他點的移動頻率低。從結果上可以看出其結果相對穩定了不少,不過差距非常的小,幾乎可以認為是運氣好所導致。如果所有的個體都添加貪心演算法呢?顯然,演算法的全局搜索能力將進一步減弱,並且更容易向群體中心收斂,這並不是一個好的操作。

實驗六 . ,
在實驗五的基礎上為狼群添加一個統一的步長,即每隻狼每次向著目標狼移動的距離不能大於其步長,將其最大步長設為1,看看效果。

從圖像可以看出,受到步長的約束每隻狼的移動距離較小,在結束時還沒有收斂,其搜索能力較強但收斂速度過慢且極易陷入局部最優。現在將最大步長設置為10(1/10解空間范圍)使其搜索能力和收斂速度相對平衡,在看看效果。

從圖像可以看出,演算法的收斂速度快了不少,但從結果可知,相較於實驗五,演算法的提升並不太大。
不過這個圖像有一種似曾相識的感覺,與螢火蟲演算法(FireFly Algorithm)差不多,仔細對比這兩個演算法可以發現, 灰狼演算法相當於螢火蟲演算法的一個簡化 。實驗六種對灰狼演算法添加步長的修改,讓其離螢火蟲演算法更近了一步。

實驗七 . ,
在實驗六的基礎上讓最大步長隨著迭代次數增加遞減。

從實驗七的圖像可以看出,種群的收斂速度好像快了那麼一點,結果也變好了不少。但是和改進後的螢火蟲演算法相比仍然有一定的差距。
灰狼演算法在全局搜索和局部搜索上的平衡已經比較好了,嘗試過對其進行改進,但是修改使搜索能力更強時,對於局部最優的函數求解效果很差,反之結果的精度較低,總體而言修改後的演算法與原演算法相差無幾。

灰狼演算法是根據灰狼群體的捕獵行動而提出的優化演算法,其演算法流程和步驟非常簡單,數學模型也非常的優美。灰狼演算法由於沒有貪心演算法,使得其有著較強的全局搜索能力同時參數A也控制了演算法的局部搜索范圍,演算法的全局搜索能力和局部搜索能力比較平衡。
從演算法的優化圖像可以看出,灰狼演算法和螢火蟲演算法非常的相似。可以認為,灰狼演算法是對螢火蟲演算法的一種改進。螢火蟲演算法向著由於自己的個體飛行,而灰狼演算法則的條件更為苛刻,向著群體前三強前進,螢火蟲演算法通過步長控制搜索范圍,而灰狼演算法則直接定義搜索范圍參數A,並令A線性遞減。
灰狼演算法的結構簡單,但也不容易改進,數次改進後只是改變了全局搜索能力和局部搜索能力的比例,綜合能力並沒有太大變化。
由於原點對於灰狼演算法有著隱隱的吸引力,當測試函數目標值在原點時,其結果會異常的好。因此,灰狼演算法的實際效果沒有論文中的那麼好,但也不差,算是一個中規中矩的優化演算法。
參考文獻
Mirjalili S , Mirjalili S M , Lewis A . Grey Wolf Optimizer[J]. Advances in Engineering Software, 2014, 69:46-61. 提取碼:wpff

以下指標純屬個人yy,僅供參考

目錄
上一篇 優化演算法筆記(十七)萬有引力演算法
下一篇 優化演算法筆記(十九)頭腦風暴演算法

優化演算法matlab實現(十八)灰狼演算法matlab實現

Ⅵ 微觀經濟學中的dq比上dp是怎麼算的

dq/dp是求導的另一種寫法,本質就是對p(自變數)求導,也可以寫成q'。不能跳過中級。關於區別,舉幾個例子。

一、於由效用函數,求得需求函數

中級:列個什麼Lagrangian,求導,算得結果,交卷。

高級:先判斷u的性質,和budget constraint的性質(是否compact,要緊),論證解的存在性,然後在適當使用Kuhn Tucker condition 求得需求函數。進而考慮compensated demand。

研究者:我先捏一個需求函數,再翻書找什麼樣的效用函數可以得到這個需求函數。

二、關於博弈論

中級:畫個表,求什麼NE就行了。

高級:回想起不動點定理成立條件。

研究者:我說這個狀態是NE,它就是NE。

三、關於動態優化

中級:人類在t=2時滅絕。

高級:一個人可以永遠活下去。列出Bellman equation。

研究者:我只關心動態軌跡畫出來是不是很優美,關於模型的不確定性。

中級:不確定性就跟扔骰子一樣。

高級:我先要定義一個sigma-algebra……

研究者:只認識Normal Distribution(其它distribution一般都會導致模型不可解)。

(6)優美演算法擴展閱讀:


一、詳細演算法

1、價格彈性公式是 e = dlnQ/dlnP = dQ/dP * P/Q

其中第一項表示價格微小的變化所引起的數量的變化 是數量對於價格在該點的導數

如果數量詳細演算法是價格的連續可導函數Q = Q(P)

那麼第一項就是 dQ/dP = dQ(P)/dP 然後把該點的(P,Q) 代入 就可以算出其彈性

2、如果沒有學過導數.那就沒有辦法了

簡單一點的常用一點的是線性需求函數 Q = a - bP,a,b>0

dQ/dP = -b

那麼(P0,Q0)點的彈性是

e = -b * P0/Q0

二、微觀經濟學產生發展

1、微觀經濟學的發展,迄今為止大體上經歷了四個階段:

第一階段:17世紀中期到19世紀中期,是早期微觀經濟學階段,或者說是微觀經濟學的萌芽階段。

第二階段:19世紀晚期到20世紀初葉,是新古典經濟學階段,也是微觀經濟學的奠定階段。

第三階段:20世紀30年代到60年代,是微觀經濟學的完成階段。

第四階段:20世紀60年代至今,是微觀經濟學的進一步發展、擴充和演變階段。

2、通觀微觀經濟學的發展過程與全部理論,始終圍繞著價格這一核心問題進行分析,所以微觀經濟學在很多場合又被稱為「價格理論及其應用」。

Ⅶ 哪些演算法讓你感覺醍醐灌頂

整數因子分解的Pallord-Rho演算法。差不多是O(n^0.25)效率,n是數的大小(所以對位數的話就指數級別了)
這個演算法本身其實到還不算醍醐灌頂。重點在其中的一個優化:在一個環中如果一個人以1的速度另一個人以2的速度(同向),那麼他們必然相遇。雖然簡單,但是異常漂亮^^

我覺得, 醍醐灌頂的, 當屬 並查集和動態規劃. 並查集的路徑壓縮 至今我認為是我看過里最簡潔最優美的設計. 而動態規劃, 在我心裡是一種很務實, 很有教育意義的演算法, "步步最優並非結果最優", "Trade-off", 等等. 這兩個, 對我而言, 確實是醍醐灌頂的.

Ⅷ /≈圓周率 越精確越好,最好說計算方法。

圓周率的計算方法

古人計算圓周率,一般是用割圓法。即用圓的內接或外切正多邊形來逼近圓的周長。Archimedes用正96邊形得到圓周率小數點後3位的精度;劉徽用正3072邊形得到5位精度;Ludolph Van Ceulen用正262邊形得到了35位精度。這種基於幾何的演算法計算量大,速度慢,吃力不討好。隨著數學的發展,數學家們在進行數學研究時有意無意地發現了許多計算圓周率的公式。下面挑選一些經典的常用公式加以介紹。除了這些經典公式外,還有很多其他公式和由這些經典公式衍生出來的公式,就不一一列舉了。

Machin公式

這個公式由英國天文學教授John Machin於1706年發現。他利用這個公式計算到了100位的圓周率。Machin公式每計算一項可以得到1.4位的十進制精度。因為它的計算過程中被乘數和被除數都不大於長整數,所以可以很容易地在計算機上編程實現。

Machin.c 源程序

還有很多類似於Machin公式的反正切公式。在所有這些公式中,Machin公式似乎是最快的了。雖然如此,如果要計算更多的位數,比如幾千萬位,Machin公式就力不從心了。下面介紹的演算法,在PC機上計算大約一天時間,就可以得到圓周率的過億位的精度。這些演算法用程序實現起來比較復雜。因為計算過程中涉及兩個大數的乘除運算,要用FFT(Fast Fourier Transform)演算法。FFT可以將兩個大數的乘除運算時間由O(n2)縮短為O(nlog(n))。

Ⅸ 怎樣求圓周率

實驗對 π 值進行估算,這是計算 π 的的第一階段。這種對 π 值的估算基本上都是以觀察或實驗為根據,是基於對一個圓的周長和直徑的實際測量而得出的。在古代世界,實際上長期使用 π =3這個數值。最早見於文字記載的有基督教《聖經》中的章節,其上取圓周率為3。這一段描述的事大約發生在公元前950年前後。其他如巴比倫、印度、中國等也長期使用3這個粗略而簡單實用的數值。在我國劉徽之前「圓徑一而周三」曾廣泛流傳。我國第一部《周髀算經》中,就記載有圓「周三徑一」這一結論。在我國,木工師傅有兩句從古流傳下來的口訣:叫做:「周三徑一,方五斜七」,意思是說,直徑為1的圓,周長大約是3,邊長為5的正方形,對角線之長約為7。這正反映了早期人們對圓周率 π 和√2 這兩個無理數的粗略估計。東漢時期官方還明文規定圓周率取3為計算面積的標准。後人稱之為「古率」。

早期的人們還使用了其它的粗糙方法。如古埃及、古希臘人曾用穀粒擺在圓形上,以數粒數與方形對比的方法取得數值。或用勻重木板鋸成圓形和方形以秤量對比取值……由此,得到圓周率的稍好些的值。如古埃及人應用了約四千年的 4 (8/9)2 = 3.1605。在印度,公元前六世紀,曾取 π= √10 = 3.162。在我國東、西漢之交,新朝王莽令劉歆製造量的容器――律嘉量斛。劉歆在製造標准容器的過程中就需要用到圓周率的值。為此,他大約也是通過做實驗,得到一些關於圓周率的並不劃一的近似值。現在根據銘文推算,其計算值分別取為3.1547,3.1992,3.1498,3.2031比徑一周三的古率已有所進步。人類的這種探索的結果,當主要估計圓田面積時,對生產沒有太大影響,但以此來製造器皿或其它計算就不合適了。

幾何法時期

憑直觀推測或實物度量,來計算 π 值的實驗方法所得到的結果是相當粗略的。

真正使圓周率計算建立在科學的基礎上,首先應歸功於阿基米德。他是科學地研究這一常數的第一個人,是他首先提出了一種能夠藉助數學過程而不是通過測量的、能夠把 π 的值精確到任意精度的方法。由此,開創了圓周率計算的第二階段。

圓周長大於內接正四邊形而小於外切正四邊形,因此 2√2 < π < 4 。
當然,這是一個差勁透頂的例子。據說阿基米德用到了正96邊形才算出他的值域。

阿基米德求圓周率的更精確近似值的方法,體現在他的一篇論文《圓的測定》之中。在這一書中,阿基米德第一次創用上、下界來確定 π 的近似值,他用幾何方法證明了「圓周長與圓直徑之比小於 3+(1/7) 而大於 3 + (10/71) 」,他還提供了誤差的估計。重要的是,這種方法從理論上而言,能夠求得圓周率的更准確的值。到公元150年左右,希臘天文學家托勒密得出 π =3.1416,取得了自阿基米德以來的巨大進步。

割圓術。不斷地利用勾股定理,來計算正N邊形的邊長。

在我國,首先是由數學家劉徽得出較精確的圓周率。公元263年前後,劉徽提出著名的割圓術,得出 π =3.14,通常稱為「徽率」,他指出這是不足近似值。雖然他提出割圓術的時間比阿基米德晚一些,但其方法確有著較阿基米德方法更美妙之處。割圓術僅用內接正多邊形就確定出了圓周率的上、下界,比阿基米德用內接同時又用外切正多邊形簡捷得多。另外,有人認為在割圓術中劉徽提供了一種絕妙的精加工辦法,以致於他將割到192邊形的幾個粗糙的近似值通過簡單的加權平均,竟然獲得具有4位有效數字的圓周率 π =3927/1250 =3.1416。而這一結果,正如劉徽本人指出的,如果通過割圓計算得出這個結果,需要割到3072邊形。這種精加工方法的效果是奇妙的。這一神奇的精加工技術是割圓術中最為精彩的部分,令人遺憾的是,由於人們對它缺乏理解而被長期埋沒了。

恐怕大家更加熟悉的是祖沖之所做出的貢獻吧。對此,《隋書·律歷志》有如下記載:「宋末,南徐州從事祖沖之更開密法。以圓徑一億為丈,圓周盈數三丈一尺四寸一分五厘九毫二秒七忽,朒數三丈一尺四寸一分五厘九毫二秒六忽,正數在盈朒二限之間。密率:圓徑一百一十三,圓周三百五十五。約率,圓徑七,周二十二。」

這一記錄指出,祖沖之關於圓周率的兩大貢獻。其一是求得圓周率

3.1415926 < π < 3.1415927

其二是,得到 π 的兩個近似分數即:約率為22/7;密率為355/113。

他算出的 π 的8位可靠數字,不但在當時是最精密的圓周率,而且保持世界記錄九百多年。以致於有數學史家提議將這一結果命名為「祖率」。

這一結果是如何獲得的呢?追根溯源,正是基於對劉徽割圓術的繼承與發展,祖沖之才能得到這一非凡的成果。因而當我們稱頌祖沖之的功績時,不要忘記他的成就的取得是因為他站在數學偉人劉徽的肩膀上的緣故。後人曾推算若要單純地通過計算圓內接多邊形邊長的話,得到這一結果,需要算到圓內接正12288邊形,才能得到這樣精確度的值。祖沖之是否還使用了其它的巧妙辦法來簡化計算呢?這已經不得而知,因為記載其研究成果的著作《綴術》早已失傳了。這在中國數學發展史上是一件極令人痛惜的事。

中國發行的祖沖之紀念郵票
祖沖之的這一研究成果享有世界聲譽:巴黎「發現宮」科學博物館的牆壁上著文介紹了祖沖之求得的圓周率,莫斯科大學禮堂的走廊上鑲嵌有祖沖之的大理石塑像,月球上有以祖沖之命名的環形山……

對於祖沖之的關於圓周率的第二點貢獻,即他選用兩個簡單的分數尤其是用密率來近似地表示 π 這一點,通常人們不會太注意。然而,實際上,後者在數學上有更重要的意義。

密率與 π 的近似程度很好,但形式上卻很簡單,並且很優美,只用到了數字1、3、5。數學史家梁宗巨教授驗證出:分母小於16604的一切分數中,沒有比密率更接近 π 的分數。在國外,祖沖之死後一千多年,西方人才獲得這一結果。

可見,密率的提出是一件很不簡單的事情。人們自然要追究他是採用什麼辦法得到這一結果的呢?他是用什麼辦法把圓周率從小數表示的近似值化為近似分數的呢?這一問題歷來為數學史家所關注。由於文獻的失傳,祖沖之的求法已不為人知。後人對此進行了各種猜測。

讓我們先看看國外歷史上的工作,希望能夠提供出一些信息。

1573年,德國人奧托得出這一結果。他是用阿基米德成果22/7與托勒密的結果377/120用類似於加成法「合成」的:(377-22) / (120-7) = 355/113。

1585年,荷蘭人安托尼茲用阿基米德的方法先求得:333/106 < π < 377/120,用兩者作為 π 的母近似值,分子、分母各取平均,通過加成法獲得結果:3 ((15+17)/(106+120) = 355/113。

兩個雖都得出了祖沖之密率,但使用方法都為偶合,無理由可言。

在日本,十七世紀關孝和重要著作《括要演算法》卷四中求圓周率時創立零約術,其實質就是用加成法來求近似分數的方法。他以3、4作為母近似值,連續加成六次得到祖沖之約率,加成一百十二次得到密率。其學生對這種按部就班的笨辦法作了改進,提出從相鄰的不足、過剩近似值就近加成的辦法,(實際上就是我們前面已經提到的加成法)這樣從3、4出發,六次加成到約率,第七次出現25/8,就近與其緊鄰的22/7加成,得47/15,依次類推,只要加成23次就得到密率。

錢宗琮先生在《中國算學史》(1931年)中提出祖沖之採用了我們前面提到的由何承天首創的「調日法」或稱加權加成法。他設想了祖沖之求密率的過程:以徽率157/50,約率22/7為母近似值,並計算加成權數x=9,於是 (157 + 22×,9) / (50+7×9) = 355/113,一舉得到密率。錢先生說:「沖之在承天後,用其術以造密率,亦意中事耳。」

另一種推測是:使用連分數法。

由於求二自然數的最大公約數的更相減損術遠在《九章算術》成書時代已流行,所以藉助這一工具求近似分數應該是比較自然的。於是有人提出祖沖之可能是在求得盈 二數之後,再使用這個工具,將3.14159265表示成連分數,得到其漸近分數:3,22/7,333/106,355/113,102573/32650…

最後,取精確度很高但分子分母都較小的355/113作為圓周率的近似值。至於上面圓周率漸近分數的具體求法,這里略掉了。你不妨利用我們前面介紹的方法自己求求看。英國李約瑟博士持這一觀點。他在《中國科學技術史》卷三第19章幾何編中論祖沖之的密率說:「密率的分數是一個連分數漸近數,因此是一個非凡的成就。」

我國再回過頭來看一下國外所取得的成果。

1150年,印度數學家婆什迦羅第二計算出 π= 3927/1250 = 3.1416。1424年,中亞細亞地區的天文學家、數學家卡西著《圓周論》,計算了3×228=805,306,368邊內接與外切正多邊形的周長,求出 π 值,他的結果是:

π=3.14159265358979325

有十七位準確數字。這是國外第一次打破祖沖之的記錄。

16世紀的法國數學家韋達利用阿基米德的方法計算 π 近似值,用 6×216正邊形,推算出精確到9位小數的 π 值。他所採用的仍然是阿基米德的方法,但韋達卻擁有比阿基米德更先進的工具:十進位置制。17世紀初,德國人魯道夫用了幾乎一生的時間鑽研這個問題。他也將新的十進制與早的阿基米德方法結合起來,但他不是從正六邊形開始並將其邊數翻番的,他是從正方形開始的,一直推導出了有262條邊的正多邊形,約4,610,000,000,000,000,000邊形!這樣,算出小數35位。為了記念他的這一非凡成果,在德國圓周率 π 被稱為「魯道夫數」。但是,用幾何方法求其值,計算量很大,這樣算下去,窮數學家一生也改進不了多少。到魯道夫可以說已經登峰造極,古典方法已引導數學家們走得很遠,再向前推進,必須在方法上有所突破。

17世紀出現了數學分析,這銳利的工具使得許多初等數學束手無策的問題迎刃而解。 π 的計算歷史也隨之進入了一個新的階段。

分析法時期

這一時期人們開始擺脫求多邊形周長的繁難計算,利用無窮級數或無窮連乘積來算 π 。

1593年,韋達給出

這一不尋常的公式是 π 的最早分析表達式。甚至在今天,這個公式的優美也會令我們贊嘆不已。它表明僅僅藉助數字2,通過一系列的加、乘、除和開平方就可算出 π 值。

接著有多種表達式出現。如沃利斯1650年給出:

1706年,梅欽建立了一個重要的公式,現以他的名字命名:

再利用分析中的級數展開,他算到小數後100位。

這樣的方法遠比可憐的魯道夫用大半生時間才摳出的35位小數的方法簡便得多。顯然,級數方法宣告了古典方法的過時。此後,對於圓周率的計算像馬拉松式競賽,紀錄一個接著一個:

1844年,達塞利用公式:

算到200位。

19世紀以後,類似的公式不斷涌現, π 的位數也迅速增長。1873年,謝克斯利用梅欽的一系列方法,級數公式將 π 算到小數後707位。為了得到這項空前的紀錄,他花費了二十年的時間。他死後,人們將這凝聚著他畢生心血的數值,銘刻在他的墓碑上,以頌揚他頑強的意志和堅韌不拔的毅力。於是在他的墓碑上留下了他一生心血的結晶: π 的小數點後707位數值。這一驚人的結果成為此後74年的標准。此後半個世紀,人們對他的計算結果深信不疑,或者說即便懷疑也沒有辦法來檢查它是否正確。以致於在1937年巴黎博覽會發現館的天井裡,依然顯赫地刻著他求出的 π 值。

又過了若干年,數學家弗格森對他的計算結果產生了懷疑,其疑問基於如下猜想:在 π 的數值中,盡管各數字排列沒有規律可循,但是各數碼出現的機會應該相同。當他對謝克斯的結果進行統計時,發現各數字出現次數過於參差不齊。於是懷疑有誤。他使用了當時所能找到的最先進的計算工具,從1944年5月到1945年5月,算了整整一年。1946年,弗格森發現第528位是錯的(應為4,誤為5)。謝克斯的值中足足有一百多位全都報了銷,這把可憐的謝克斯和他的十五年浪費了的光陰全部一筆勾銷了。

對此,有人曾嘲笑他說:數學史在記錄了諸如阿基米德、費馬等人的著作之餘,也將會擠出那麼一、二行的篇幅來記述1873年前謝克斯曾把 π 計算到小數707位這件事。這樣,他也許會覺得自己的生命沒有虛度。如果確實是這樣的話,他的目的達到了。

人們對這些在地球的各個角落裡作出不懈努力的人感到不可理解,這可能是正常的。但是,對此做出的嘲笑卻是過於殘忍了。人的能力是不同的,我們無法要求每個人都成為費馬、高斯那樣的人物。但成為不了偉大的數學家,並不意味著我們就不能為這個社會做出自己有限的貢獻。人各有其長,作為一個精力充沛的計算者,謝克斯願意獻出一生的大部分時光從事這項工作而別無報酬,並最終為世上的知識寶庫添了一小塊磚加了一個塊瓦。對此我們不應為他的不懈努力而感染並從中得到一些啟發與教育嗎?

1948年1月弗格森和倫奇兩人共同發表有808位正確小數的 π 。這是人工計算 π 的最高記錄。

計算機時期

1946年,世界第一台計算機ENIAC製造成功,標志著人類歷史邁入了電腦時代。電腦的出現導致了計算方面的根本革命。1949年,ENIAC根據梅欽公式計算到2035(一說是2037)位小數,包括准備和整理時間在內僅用了70小時。計算機的發展一日千里,其記錄也就被頻頻打破。

ENIAC:一個時代的開始

1973年,有人就把圓周率算到了小數點後100萬位,並將結果印成一本二百頁厚的書,可謂世界上最枯燥無味的書了。1989年突破10億大關,1995年10月超過64億位。1999年9月30日,《文摘報》報道,日本東京大學教授金田康正已求到2061.5843億位的小數值。如果將這些數字列印在A4大小的復印紙上,令每頁印2萬位數字,那麼,這些紙摞起來將高達五六百米。來自最新的報道:金田康正利用一台超級計算機,計算出圓周率小數點後一兆二千四百一十一億位數,改寫了他本人兩年前創造的紀錄。據悉,金田教授與日立製作所的員工合作,利用目前計算能力居世界第二十六位的超級計算機,使用新的計算方法,耗時四百多個小時,才計算出新的數位,比他一九九九年九月計算出的小數點後二千六百一十一位提高了六倍。圓周率小數點後第一兆位數是二,第一兆二千四百一十一億位數為五。如果一秒鍾讀一位數,大約四萬年後才能讀完。

不過,現在打破記錄,不管推進到多少位,也不會令人感到特別的驚奇了。實際上,把 π 的數值算得過分精確,應用意義並不大。現代科技領域使用的 π 值,有十幾位已經足夠。如果用魯道夫的35位小數的 π 值計算一個能把太陽系包圍起來的圓的周長,誤差還不到質子直徑的百萬分之一。我們還可以引美國天文學家西蒙·紐克姆的話來說明這種計算的實用價值:

「十位小數就足以使地球周界准確到一英寸以內,三十位小數便能使整個可見宇宙的四周准確到連最強大的顯微鏡都不能分辨的一個量。」

那麼為什麼數學家們還象登山運動員那樣,奮力向上攀登,一直求下去而不是停止對 π 的探索呢?為什麼其小數值有如此的魅力呢?

這其中大概免不了有人類的好奇心與領先於人的心態作怪,但除此之外,還有許多其它原因。

奔騰與圓周率之間的奇妙關系……

1、它現在可以被人們用來測試或檢驗超級計算機的各項性能,特別是運算速度與計算過程的穩定性。這對計算機本身的改進至關重要。就在幾年前,當Intel公司推出奔騰(Pentium)時,發現它有一點小問題,這問題正是通過運行 π 的計算而找到的。這正是超高精度的 π 計算直到今天仍然有重要意義的原因之一。

2、 計算的方法和思路可以引發新的概念和思想。雖然計算機的計算速度超出任何人的想像,但畢竟還需要由數學家去編製程序,指導計算機正確運算。實際上,確切地說,當我們把 π 的計算歷史劃分出一個電子計算機時期時,這並非意味著計算方法上的改進,而只是計算工具有了一個大飛躍而已。因而如何改進計算技術,研究出更好的計算公式,使公式收斂得更快、能極快地達到較大的精確度仍是數學家們面對的一個重要課題。在這方面,本世紀印度天才數學家拉馬努揚得出了一些很好的結果。他發現了許多能夠迅速而精確地計算 π 近似值的公式。他的見解開通了更有效地計算 π 近似值的思路。現在計算機計算 π 值的公式就是由他得到的。至於這位極富傳奇色彩的數學家的故事,在這本小書中我們不想多做介紹了。不過,我希望大家能夠明白 π 的故事講述的是人類的勝利,而不是機器的勝利。

3、還有一個關於 π 的計算的問題是:我們能否無限地繼續算下去?答案是:不行!根據朱達偌夫斯基的估計,我們最多算1077位。雖然,現在我們離這一極限還相差很遠很遠,但這畢竟是一個界限。為了不受這一界限的約束,就需要從計算理論上有新的突破。前面我們所提到的計算,不管用什麼公式都必須從頭算起,一旦前面的某一位出錯,後面的數值完全沒有意義。還記得令人遺憾的謝克斯嗎?他就是歷史上最慘痛的教訓。

4、於是,有人想能否計算時不從頭開始,而是從半截開始呢?這一根本性的想法就是尋找並行演算法公式。1996年,圓周率的並行演算法公式終於找到,但這是一個16進位的公式,這樣很容易得出的1000億位的數值,只不過是16進位的。是否有10進位的並行計算公式,仍是未來數學的一大難題。

5、作為一個無窮數列,數學家感興趣的把 π 展開到上億位,能夠提供充足的數據來驗證人們所提出的某些理論問題,可以發現許多迷人的性質。如,在 π 的十進展開中,10個數字,哪些比較稀,哪些比較密? π 的數字展開中某些數字出現的頻率會比另一些高嗎?或許它們並非完全隨意?這樣的想法並非是無聊之舉。只有那些思想敏銳的人才會問這種貌似簡單,許多人司空見慣但卻不屑發問的問題。

6、數學家弗格森最早有過這種猜想:在 π 的數值式中各數碼出現的概率相同。正是他的這個猜想為發現和糾正向克斯計算 π 值的錯誤立下了汗馬功勞。然而,猜想並不等於現實。弗格森想驗證它,卻無能為力。後人也想驗證它,也是苦於已知的 π 值的位數太少。甚至當位數太少時,人們有理由對猜想的正確性做出懷疑。如,數字0的出現機會在開始時就非常少。前50位中只有1個0,第一次出現在32位上。可是,這種現象隨著數據的增多,很快就改變了:100位以內有8個0;200位以內有19個0;……1000萬位以內有999,440個0;……60億位以內有599,963,005個0,幾乎佔1/10。

其他數字又如何呢?結果顯示,每一個都差不多是1/10,有的多一點,有的少一點。雖然有些偏差,但都在1/10000之內。

7、人們還想知道: π 的數字展開真的沒有一定的模式嗎?我們希望能夠在十進制展開式中通過研究數字的統計分布,尋找任何可能的模型――如果存在這種模型的話,迄今為止尚未發現有這種模型。同時我們還想了解: π 的展開式中含有無窮的樣式變化嗎?或者說,是否任何形式的數字排列都會出現呢?著名數學家希爾伯特在沒有發表的筆記本中曾提出下面的問題: π 的十進展開中是否有10個9連在一起?以現在算到的60億位數字來看,已經出現:連續6個9連在一起。希爾伯特的問題答案似乎應該是肯定的,看來任何數字的排列都應該出現,只是什麼時候出現而已。但這還需要更多 π 的數位的計算才能提供切實的證據。

8、在這方面,還有如下的統計結果:在60億數字中已出現連在一起的8個8;9個7;10個6;小數點後第710150位與3204765位開始,均連續出現了七個3;小數點52638位起連續出現了14142135這八個數字,這恰是的前八位;小數點後第2747956位起,出現了有趣的數列876543210,遺憾的是前面缺個9;還有更有趣的數列123456789也出現了。

如果繼續算下去,看來各種類型的數字列組合可能都會出現。

拾零: π 的其它計算方法

在1777年出版的《或然性算術實驗》一書中,蒲豐提出了用實驗方法計算 π 。這個實驗方法的操作很簡單:找一根粗細均勻,長度為 d 的細針,並在一張白紙上畫上一組間距為 l 的平行線(方便起見,常取 l = d/2),然後一次又一次地將小針任意投擲在白紙上。這樣反復地投多次,數數針與任意平行線相交的次數,於是就可以得到 π 的近似值。因為蒲豐本人證明了針與任意平行線相交的概率為 p = 2l/πd 。利用這一公式,可以用概率方法得到圓周率的近似值。在一次實驗中,他選取 l = d/2 ,然後投針2212次,其中針與平行線相交704次,這樣求得圓周率的近似值為 2212/704 = 3.142。當實驗中投的次數相當多時,就可以得到 π 的更精確的值。

1850年,一位叫沃爾夫的人在投擲5000多次後,得到 π 的近似值為3.1596。目前宣稱用這種方法得到最好結果的是義大利人拉茲瑞尼。在1901年,他重復這項實驗,作了3408次投針,求得 π 的近似值為3.1415929,這個結果是如此准確,以致於很多人懷疑其實驗的真偽。如美國猶他州奧格登的國立韋伯大學的L·巴傑就對此提出過有力的質疑。

不過,蒲豐實驗的重要性並非是為了求得比其它方法更精確的 π 值。蒲豐投針問題的重要性在於它是第一個用幾何形式表達概率問題的例子。計算 π 的這一方法,不但因其新穎,奇妙而讓人叫絕,而且它開創了使用隨機數處理確定性數學問題的先河,是用偶然性方法去解決確定性計算的前導。

在用概率方法計算 π 值中還要提到的是:R·查特在1904年發現,兩個隨意寫出的數中,互素的概率為6/π2。1995年4月英國《自然》雜志刊登文章,介紹英國伯明翰市阿斯頓大學計算機科學與應用數學系的羅伯特·馬修斯,如何利用夜空中亮星的分布來計算圓周率。馬修斯從100顆最亮的星星中隨意選取一對又一對進行分析,計算它們位置之間的角距。他檢查了100萬對因子,據此求得 π 的值約為3.12772。這個值與真值相對誤差不超過5%。

熱點內容
qml文件修改後編譯未生效 發布:2025-05-14 07:31:00 瀏覽:330
內到內演算法 發布:2025-05-14 07:29:11 瀏覽:33
文件夾名字不顯示 發布:2025-05-14 07:27:47 瀏覽:774
oracle的資料庫驅動jar 發布:2025-05-14 07:23:20 瀏覽:555
我的世界電腦版伺服器手機版能進嗎 發布:2025-05-14 07:22:01 瀏覽:678
達內培訓php多少錢 發布:2025-05-14 07:19:10 瀏覽:26
python位元組轉字元串 發布:2025-05-14 07:06:35 瀏覽:421
subplotpython 發布:2025-05-14 06:53:51 瀏覽:661
豎屏大屏導航工廠密碼一般是多少 發布:2025-05-14 06:49:29 瀏覽:806
如何在手機里設置無線網密碼 發布:2025-05-14 06:47:54 瀏覽:120