怎麼證明根號2是無理數,我們來推導和計算,還有逼格極高的算法

2021-01-16 楊建榮的學習筆記

這是學習筆記的第 2161 篇文章

  記得上學的時候忙著考試,把心頭的一些為什麼都壓在了腦後。

  面對未知,我們大多數人都選擇了默認接受,其實你不懂根號2,

比如:根號2(√2)為什麼是無理數,我們有什麼辦法去計算它

當我冒出這個想法的時候,其實大部分人的反映都一樣1+1開根號就是啊,至於為什麼,就是規定唄,當然把根號作為一種符號確實如此,但是離結果還差了很遠。


這個問題追根溯源,會發現遠比我們想像的要複雜,得追溯到古希臘時期。 


畢達哥拉斯(Pythagoras,約公元前580年至公元前500年間)是古希臘的大數學家,他提出「萬物皆為數」的觀點。公元前500年,畢達哥拉斯學派的弟子希伯索斯(Hippasus)突然發現好像有些情況解釋不了,比如一個正方形的對角線與其一邊的長度,這明顯與畢氏學派的「萬物皆為數」(指有理數)的哲理大相逕庭,使得學派領導人很惶恐,最後被畢氏門徒殘忍地投入了水中殺害。


要去計算根號2的值,我們可以拆分為兩個問題。

1)怎麼證明根號2是無理數

2)根號2的無理數值是怎麼計算出來的?


我們來從求知的角度來證明下根號2(√2)為什麼是無理數?


方法1:尾數證明法:

假設根號2是一個有理數,那麼根號2就可以使用a/b的形式來標識,其中(a,b)=1,(表示a 與 b 最大的公因數是1),a和b都是正整數,明確了這些條件,我們就開始證明了。

 

第1步:√2=a/b 那麼可以得到a*a=2*b*b

第2步:從數的平方我們可以很快得到,b*b的尾數範圍是 (0,1,4,5,6,9)中的一個數,不可能是2,3,7,8,這個道理不難理解;

第3步:2*b*b的尾數範圍是(0,2,8)中的一個數,

第4步:因為a*a=2*b*b,那麼a*a的尾數範圍可以排除2和8,只有0

第5步:因為2*b*b得到的值肯定是一個偶數,那麼b*b的尾數範圍是(0,5)

第6步:按照目前的尾數可選項,a和b存在公因數5,和(a,b)=1是相矛盾的。


所以根號2是一個無理數。


方法2:奇偶分析法

假設√2=a/b 那麼可以得到a*a=2*b*b,(a,b)=1,(表示a 與 b 最大的公因數是1,a和b都是正整數

1)根據2*b*b可以推得a是一個偶數,我們可以設置a=2c

2)4*c*c=2*b*b得到 b*b=2*c*c,可以得到b也是偶數

3)a,b都是偶數,這和(a,b)=1相矛盾


所以根號2是一個無理數,可以說明的是希帕索斯就是用這種方法證明的。


還有很多種方法補充,差不多有8種左右,我就不一一羅列了。



如何計算根號2的值呢,查找了不少資料,我覺得這幾種方法還是能消化的。 

方法1:


(√2+1)(√2-1)=1,這是我們參考的一個基準,可以按照這種方式不斷的展開。 

√2-1=1/(√2+1)

√2 = 1+ 1/(√2+1),繼續帶入根號2的對等公式

√2 = 1+ 1/(1+ 1/(√2+1)+1)=1+ 1/(2+ 1/(√2+1))


繼續推導:

√2=1+ 1/(2+ 1/(√2+1))=1+ 1/(2+ 1/(1+ 1/(√2+1)+1))=1+ 1/(2+ 1/(2+ 1/(√2+1)))

這種方式叫做連分數法,我們可以通過這種不斷的迭代可以得到更加精確的值。 


方法2:

我們可以很容易得到根號2的範圍,明顯是大於1的,所以我們可以按照y=x+1的函數來表示,即

√2 = y=1+x

對上式做平方,得到

2=(1+x)(1+x),得到

2=1+x*x+2*x+1,進一步得到,

x*x+2*x=1,推得,x*(x+2)=1,得到

x=1/(x+2),所以

1/x=2+x=2+1/(2*x)=2+1/(2*1/(x+2))

    =2+1/(2*1/(1/(x+2)+2))



按照這種方式可以不斷的推導,得到更加精確的值。

計算機如何計算根號2

當然還有很多高大上的方法來進一步輔助,比如牛頓迭代法,二分法等

那麼如何在計算機中來計算得到根號2呢, 這裡要介紹一個傳奇算法:算法名字就是:0x5f375a86,看起來像是一個內存地址一樣,該算法據說比牛頓迭代法快4倍,核心的代碼類似下面這樣:

    i = 0x5f375a86 - (i>>1); 

至今為止仍未能確切知曉此常數的起源 ,值得一提的是這個值最初為0x5f3759df,後來由Lomont通過暴力窮舉找到這個更優值,即0x5f375a86 

Lomont採用暴力方法逐步嘗試,終於找到一個比之前的好那麼一丁點的數字,雖然實際上這兩個數字所產生的結果非常近似,這個暴力得出的數字是0x5f375a86,為此他寫了一篇論文《Fast Inverse Square Root》


點擊原文查看這篇論文,我是被震撼到了。



近期熱文:

遷移到MySQL的業務架構演進實戰

資料庫修改密碼風險高,如何保證業務持續,這幾種密碼雙活方案可以參考

MySQL業務雙活的初步設計方案

如何優化MySQL千萬級大表,我寫了6000字的解讀

一道經典的MySQL面試題,答案出現三次反轉

業務雙活的數據切換思路設計(下)

業務雙活的數據切換思路設計(一)

MySQL中的主鍵和rowid,看似簡單,其實有一些使用陷阱需要注意

小白學MySQL要多久?我整理了10多個問題的答案


轉載熱文:

《吊打面試官》系列-Redis基礎

唯一ID生成算法剖析,看看這篇就夠了

關於大數據運維能力的一些思考

DBA菜鳥的進化簡史:不忘初心,記工作中踩過的三個坑

美女主持直播,被突發意外打斷!灣區網友卻高喊: 我懂!超甜



QQ群號:763628645

QQ群二維碼如下, 添加請註明:姓名+地區+職位,否則不予通過




相關焦點

  • 令人稱奇的簡單證明:五種方法證明根號2是無理數
    當時有個題目叫我們證根號2是無理數,當時很多人打死了也想不明白這個怎麼可能證得到,這種感覺正如前文所說。直到看了答案後才恍然大悟,數學上竟然有這等詭異的證明。當然,我們要證明的不是「根號2是無理數」。那個時候還沒有根號、無理數之類的說法。我們只能說,我們要證明不存在一個數p/q使得它的平方等於2。
  • 證明sin1°和√2+√3+√5+√7是無理數
    昨天發布了「tan1°是無理數」的證明思路(證明過程其實並不完整)後,很多朋友都來了興致,探討起「sin1°是無理數」和「cos1°是無理數」的證明
  • 根號2是無理數的三種證明方法
    關於根號2是無理數的證明方法還有很多,歡迎大家補充。
  • 同樣是無理數,為什麼圓周率π比根號2更受歡迎
    無理數,即是無限不循環的小數,無理數的發現,直接導致了數學危機。人類一開始的數學家認為「萬物皆數」,就是所有的數字都能被表示出來,直到發現並證明了勾股定律,就有這樣一個問題,一個等腰直角三角形的腰長是1,那麼它的斜邊是多少?
  • 世界上第一個證明π是無理數的方法—高中生也能理解
    是無理數,但極少有人知道怎麼證明它。如果需要證明某個數是無理數,大多用反證法,即假設它可以表示成兩個整數的比,然後推導出矛盾,以此證明假設不成立。 例如,如何證明 是無理數?現在來證明這個無限連分數是無理數。 根據 和 的不同,可能是 或 才比 大,這裡不防設 比 大 ,那麼從這一點向後,所有的分母都比分子至少大 。
  • 世界上第一個證明π是無理數的方法——高中生也能理解
    如果需要證明某個數是無理數,大多用反證法,即假設它可以表示成兩個整數的比,然後推導出矛盾,以此證明假設不成立。例如,如何證明lg3是無理數?現在來證明這個無限連分數是無理數。根據u和v的不同,可能是55v或555v才比u大,這裡不防設5v比u大2,那麼從這一點向後,所有的分母都比分子至少大2。
  • 開根號算法的證明——逆運算
    求一個整數的平方根,即開根號的計算方法如下圖所示:       由於我們知道開根號是平方的逆運算,所以我們在探討開根號算法時需要從平方的角度考慮
  • 根號2是無理數的幾種證明方法
    當時人們發現直角邊長為1的等腰直角三角形的斜邊是不能精確測量的,也就是說不能用有理數來表示, 這樣就引發了數學史上的第一次危機。因為古希臘曾有「萬物皆數」的思想,這種認為「大自然的一切皆為整數之比」的思想統治了古希臘數學相當長的一段時間,許多幾何命題都是根據這一點來證明的。當時的很多數學證明都隱性地承認了「所有數都可以表示為整數之比」,「萬物皆數」的思想是古希臘數學發展的奠基。
  • 比根號2更「無理」的數
    事實上,根號 2 只是最普通的無理數。在無理數大家庭中,還有很多比根號 2 更詭異的數。(註:從歷史角度來看,把「無理數」理解成「無理的數」其實是一種錯誤的做法。中國最初對 irrational number 的翻譯是不對的,irrational 這個單詞本應該取「不可比的」之義)根號 2 雖然是無理數,不過也不是那麼沒規律了。
  • √2的√2次方是無理數嗎?
    這個證明本身沒有什麼問題,但它沒有給我們一個實際的構造方法,即,對一般情況的兩個無理數α,β,我們如何判斷αβ是不是無理數呢?人們對無理數甚多了,可是對超越數的了解現在還極少,甚至還沒有入門;(2)超越數的數的測度遠遠大於無理數,意思說,無理數是無窮的,可是它和超越數相比,就幾乎是0個;就如同自然數是無窮的,可是與無理數相比幾乎是0個一樣的。換句話說:「幾乎」所有數都是超越數!
  • 美妙的證明:證明e是無理數最短,最簡單的一種方法
    e是一個非常有用的自然常數,大多數人都知道e是無理數,關於它的證明也有很多方法,本篇我們來介紹一種非常簡單而且巧妙的方法首先我們來熟悉幾個常見的連分式,關於連分式的寫法前面的文章已經介紹的很多了,我們在此不做敘述如下是根號2的連分式,它的一大亮點就是左邊整數部分是:
  • 經典證明:幾乎所有有理數都是無理數的無理數次方
    無理數與有理數內在聯繫一個無理數的無理數次方是否有可能是一個有理數?這是一個非常經典的老問題了。答案是肯定的,證明方法非常巧妙:考慮根號 2 的根號 2 次方。如果這個數是有理數,問題就已經解決了。我們同樣會得到一個無理數的無理數次方是有理數的例子。
  • 你們要的證明來了——證明歐拉數e是無理數
    之前寫過一篇文章證明了圓周率π是無理數,有小夥伴問我能不能證明自然數e也是無理數。今天,在這篇文章中,我將描述兩個簡單的證明歐拉數e≈2.71828是無理數。第一個證明是由法國數學家和物理學家約瑟夫·傅立葉提出的。第二個證據是法國數學家查爾斯·埃爾米特提出的。
  • 數學史的大事件——關於根號2的故事
    其中有這樣一個觀點:「宇宙的一切事物的度量都可用整數或整數的比來表示,除此之外,就再沒有什麼了」。 畢達哥拉斯首先發現並證明了「直角三角形中,兩直角邊的平方和等於斜邊的平方」,證明了這個定理後,他們學派內外都非常高興,宰了100牛大肆慶賀,這個定理在歐洲叫「畢達哥拉斯定理」或「百牛定理」,我國叫勾股定理。可是,他的觀點日後使他狼狽不堪,幾乎無地自容。
  • 無理數引發的第一次的數學危機,兩千年後才平息!
    他在研究1與2的比例中項時發現,沒有一個能用整數比例寫成的數可以表示成這個比例中項。如果設這個數為x,由1:x=x:2,得出x2=2。他畫了一個邊長為1的正方形,設對角線為x,根據畢達哥拉斯定理的出:x2=12+12,可以得出邊長為1的正方形的對角線的長度即為x的值。很顯然,這個值是存在的,我們可以在數軸上表示你出來。可是,希帕索斯百思不得其解,不知道該怎麼表示這個「新數」。
  • π真的是一個無理數嗎?
    自從小學接觸圓以來,π就成為我們數學學習中一個重要的數字。我們都知道,圓的周長和直徑的比是π,也知道圓的面積也與π有關。但與此同時,π又是一個有些神秘的數字,它無法用一個分數表達出來,且尾數無窮無盡。漸漸地,隨著我們對數學更深入的學習,我們知道了π和e與根號2一樣,是無理數大家庭中的一員。然而我們應該如何嚴謹地證明π是無理數呢?
  • 無理數與數學危機
    近代數學極限概念和計算方法的引入不僅解決了主體性的微積分理論的可能性問題,也解決了伴隨性的無理數概念的現實性問題,無窮小量和無窮大量的概念和計算方法既適用於主體性的微積分理論,也適用於解釋伴隨性的無理數的「數論」問題。
  • 轉:既然圓周率都算出萬億位,為何超級計算機還不斷計算圓周率?
    NASA科學家表示,即便在精度要求極高的航天領域,他們也只會用到圓周率小數點後的15至16個位。在理論物理學中,與圓周率有關的基本常數計算也只會用到前32位。如果用40位來計算可觀測宇宙的尺寸,它的誤差將會小於氫原子半徑。因此,把圓周率的小數位計算到萬億位對於實際應用已經沒有意義,幾十位的精度已經完全足夠人們使用。
  • 精美的幾何證明:根號2不是有理數
    證明是數學的基礎。這就是我們知道我們使用的每個規則和定理成立的原因。如果沒有邏輯上嚴格的證明,數學將是一堆虛假的假設。證明有各種方法和規則。有些是長期的和艱苦的,很少能被人發現,而另一些人則站在這樣的基本邏輯上,一點點推動數學的發展數論和分析的一個經典證明是證明無理數的存在,最常見的是平方根2是無理數。有很多方法可以證明這個結果,這是一個極其聰明但又直截了當的非理性證據。利用幾何學的基本知識,我們可以從邏輯上證明平方根2是不合理的。
  • 無理數的「謀殺案」
    難道畢達哥拉斯錯了,世界上除了整數和分數以外還有別的數?這個問題使畢達哥拉斯學派大傷腦筋。小編有話說讀者朋友們,你知道為什麼找不出m這個分數嗎?其實,我們用「反證法」來推導一下就明白了。根據畢達哥拉斯定理,我們知道m⊃2;=2,也就是(A/B)⊃2;=2所以,我們得出m要滿足以下3個條件:(1) A和B是整數(2) A和B互素(3) A/B的平方等於2於是我們得出:A⊃2;/B⊃2;=2