1. 程式人生 > >整數的故事(3)——最小公倍數與哥德巴赫猜想

整數的故事(3)——最小公倍數與哥德巴赫猜想

最小公倍數

  就像硬幣的正反兩面,最大公約數往往是和最小公倍數成對出現的。對於兩個不等於零的整數a和b,如果a|k且b|k,那麼k就是a和b的公倍數;在所有的k中,大於0的最小者就是a和b的最小公倍數(least common multiple),記作c = LCM(a,b),根據慣例,a≥b。

尋找最小公倍數

  尋找兩個數的最小公倍數遠比尋找它們的最大公約數簡單:

 1 # 求a,b的最小公倍數
 2 def lcm(a, b):
 3     m, n = abs(a), abs(b)
 4     if m < n:
 5         m, n = n, m
 6
7 result = 1 8 for x in range(1, n + 1): 9 cm = m * x 10 if cm % n == 0: 11 result = cm 12 break 13 14 return result

  根據定義,最小公倍數是正整數,計算負數的最小公倍數相當於計算其絕對值的最小公倍數。

尋找最小公倍數2.0版

  既然最大公約數和最小公倍數經常成對出現,是否能夠通過其中一個直接計算另一個呢?當然可以,這需要用到下面的定理:

  定理說的是a和b的乘積等於它們最大公約數和最小公倍數的乘積,於是我們得到了尋找最小公倍數的另一個版本:

1 # 求a,b的最小公倍數
2 def lcm_2(a, b):
3     m, n = abs(a), abs(b)
4     if m < n:
5         m, n = n, m
6
7     return (a * b) / gcd(a, b)

  可以隨便找一些數字去驗證,驗證的結果一定是正確的,但是定理是概念和其它定理推導而來的,而不是根據通過無數個計算總結出來的,讓我們看看這個定理為什麼成立。

  依然是利用素因子表示式:

  p1,p2……pt是a和b共同的素因子,它們的次數可以是0,比如:

  由於素因子分解是唯一的,所以a和b的約數的素因子將是:

  只有這樣才能儲存a’|a,b’|b。作為a和b的最大公約數,GCD(a,b)可以分解為:

  類似的,LCM(a,b)可以分解為:

  將二者相乘:

哥德巴赫猜想猜的是什麼

  哥德巴赫猜想是最廣為人知的數學難題,它的簡稱是1+1,這實在不怎麼好。最普遍的誤解版本是說哥德巴赫猜想就是證明1+1=2——一個蘋果加另一個蘋果為什等於兩個蘋果至今還沒有被證明,這就一點不貼邊了,哥德巴赫才不會那麼無聊。另一個誤解版本稍微高階一點,說一個素數加上另一個素數等於一個偶數,這個就不用麻煩老爺子了吧,更不用著尤拉,我就能證明。

  真正的哥德巴赫猜想是哥德巴赫在1742年提出的:任一大於2的偶數都可寫成兩個素數之和。但是哥德巴赫自己無法證明它,於是就寫信請教赫赫有名的大數學家尤拉幫忙證明,但是一直到死,尤拉也無法證明。因現今數學界已經不使用“1也是素數”這個約定,所以哥德巴赫猜想的現代版本是:“所有大於4的偶數都可以分解成兩個素數(質數)的和”,簡稱1+1,沒有=2。

整數比自然數更多嗎?

  這裡有個好玩的問題,整數是無窮的,自然數也是無窮的,那麼整數和自然數的個數哪個更多呢?

  第一感覺是整數更多,多了一倍,它比自然數多了負值部分。但真相是,二者的數量一樣多!這就要了解數學中是怎樣定義“一樣多”的。在數學中,如果兩個集合能夠產生一一對應的關係,並且這個對應關係可以用一個函式表示,我們就可以說這兩個集合的元素一樣多。比如整數和自然數的對應可以是:

  這個對應關係函可以是:

  x是整數,f(x)是自然數,無論哪一個整數,都能在自然數中找到唯一的對應。f(x)沒有盡頭,所以不用關心會對應不上。

  自然數和實數是否也有這樣的對應關係呢?沒有。它們無法產生一一對應,因為每兩個實數間都有無窮多個數,無法有效寫出一個對應關係。

全體實數比±1之間的實數更多嗎?

  整數和自然數一樣多,那麼全體實數的個數與[-1,1]區間內的實數個數哪個多呢?第一感覺又是實數多,但實際上二者一樣多!

  這個匪夷所思的問題可以用一個數軸表示,說明二者一一對應:數軸上的每一個點都代表一個實數,把-1 到1之間的線段的向上彎折,得到一個與0點相切,弧長是2的圓弧:

  現在,把數軸上的任意點與弧連線,都可以在弧上找到唯一點:

  弧上的點和數軸上的點都有無數個,最終的密集連線將會變成一個平面,無限遠端的連線也將近似地平行於數軸。由此可見,二者的數量相等,更準確的說是“勢”相等。

  


   作者:我是8位的

  出處:http://www.cnblogs.com/bigmonkey

  本文以學習、研究和分享為主,如需轉載,請聯絡本人,標明作者和出處,非商業用途! 

  掃描二維碼關注公眾號“我是8位的”

  出處:http://www.cnblogs.com/bigmonkey

  本文以學習、研究和分享為主,如需轉載,請聯絡本人,標明作者和出處,非商業用途! 

  掃描二維碼關注公眾號“我是8位的”