ACM數論總結數組
http://blog.csdn.net/xieshimao/article/details/6425099函數
斷斷續續的學習數論已經有一段時間了,學得也很雜,如今進行一些簡單的回顧和總結。學習
學過的東西不能忘啊。。。.net
一、本原勾股數:blog
概念:一個三元組(a,b,c),其中a,b,c沒有公因數並且知足:a^2+b^2=c^2get
首先,這種本原勾股數的個數是無限的,並且構造的條件知足:原理
a=s*t,b=(s^2-t^2)/2,c=(s^2+t^2)/2程序
其中s>t>=1是任意沒有公因數的奇數!方法
由以上概念就能夠導出任意一個本原勾股數組。im
二、素數計數(素數定理)
令π(x)爲1到x中素數的個數
19世紀最高的數論成就就是如下這個玩意兒:
lim(x->∞){π(x)/(x/ln(x))}=1
數論最高成就,最高成就!!!有木有!!!
三、哥德巴赫猜測(1+1)
一個大偶數(>=4)必然能夠拆分爲兩個素數的和,雖然目前尚未人可以從理論上進行證實,不過我根據科學家們利用計算機運算的結果,若是有一個偶數不能進行拆分,那麼這個偶數至少是一個上百位的數!!
因此在ACM的世界中(數據量每每只有2^63如下)哥德巴赫猜測是成立的!!因此拆分程序必定可以實現的
四、哥德巴赫猜測的推廣
任意一個>=8的整數必定可以拆分爲四個素數的和
證實:
先來講8=2+2+2+2,(四個最小素數的和)不能再找到比2小的素數了,因此當n小於8,就必定不可能拆分爲四個素數的和!
那麼當n大於等於8,能夠分狀況討論:
(1)n&1==0(n爲偶數),那麼n就必定能夠拆分爲兩個偶數的和
那麼根據哥德巴赫猜測,偶數能夠拆分爲兩個素數的和,因而,n必定能夠拆分爲四個素數的和
(2)n&1==1(n爲奇數),n必定能夠拆分爲兩個偶數+1
因爲有一個素數又是偶數,2,那麼奇數必定有以下拆分:2+3+素數+素數
得證。
五、歐拉函數(歐拉公式)
歐拉函數ph(n)的意思是全部小於n且與n互質的數的個數
好比說ph(12)=4,[1,5,7,11與12互質]
歐拉公式
a^ph(m)=1(mod m)
六、費馬小定理
費馬小定理是歐拉公式的一種特殊狀況
因爲當p爲質數的時候ph(p)=p-1這是顯然的
那麼帶入歐拉公式就獲得了費馬小定理
a^(p-1)=1(mod p)
p爲質數(prime)
七、抽屜原理
抽屜原理實際上是廢話,關鍵在於運用
這句廢話是說,若是如今有3個蘋果,放進2個抽屜,那麼至少有一個抽屜裏面會有兩個蘋果,這個很廢話。
八、抽屜原理的運用
抽屜原理自己只是一句廢話,不過他的運用卻很是強大
如今假設有一個正整數序列a1,a2,a3,a4.....an,試證實咱們必定可以找到一段連續的序列和,讓這個和是n的倍數,該命題的證實就用到了抽屜原理
咱們能夠先構造一個序列si=a1+a2+...ai
而後分別對於si取模,若是其中有一個sk%n==0,那麼a1+a2+...+ak就必定是n的倍數(該種狀況得證)
下面是上一種狀況的反面,即任何一個sk對於n的餘數都不爲0
對於這種狀況,咱們能夠以下考慮,由於si%n!=0
那麼si%n的範圍必然在1——(n-1),因此原序列si就產生了n個範圍在1——(n-1)的餘數,因而抽屜原理就來了,n個數放進n-1個盒子裏面,必然至少有兩個餘數會重複,那麼這兩個sk1,sk2之差必然是n的倍數,
而sk1-sk2是一段連續的序列,那麼原命題就獲得了證實了
九、判斷n!是否可以被m整除
計算方法是把m進行質因數分解,看下m的每個質因數是否可以在n!中找到;
n!中間包含了多少個x(x是任意的一個數,不過通常狀況下咱們都只討論x爲質數),這種問題的答案是: n/x+n/(x^2)+n/(x^3).....[一直加到x的乘方不超過n],這個定理的證實也很是的簡單,這裏就再也不贅述了
根據以上觀點,就能夠分別計算m的每個質因數是否被徹底包含,若是有一個沒有被包含,那麼就不能被整除!
十、因子和的計算方法
神馬叫因子和:一個數的因此因子的和就叫因子和。。。
好吧,舉個例子:12的因子和爲:1+2+3+4+6+12
計算方法是把12分解爲質因數的表達形式2^2*3
那麼他的因子和就是:(1+2+2^2)*(1+3)
證實寫起來比較麻煩,大致上思路就是牛頓二項式。。。
十一、判斷組合數C(n,m)的奇偶性
有一個我也不知道證實的方法
當n&m==m爲奇數,反之就是偶數