演算法總結之尤拉函式 中國剩餘定理

2022-06-02 17:09:13 字數 1709 閱讀 7763

演算法總結之尤拉函式&中國剩餘定理

1.尤拉函式

概念:在數論,對正整數n,尤拉函式是少於或等於n的數中與n互質的數的數目。

通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)

其中p1, p2……pn為x的所有質因數,x是不為0的整數 

注意:

1) φ(1)=1.

2)每種質因數只乙個。比如12=2*2*3那麼φ(12)=12*(1-1/2)*(1-1/3)=4

3)若n是質數p的k次冪,φ(n)=p^k-p^(k-1)=(p-1)p^(k-1),因為除了p的倍數外,其他數都跟n互質。

4)φ(mn)=φ(m)φ(n)

5)當n為奇數時,φ(2n)=φ(n)

**實現:

1)直接求尤拉數:

1

/*函式返回值為n的尤拉函式值*/2

int euler(intn)3

12if(n>1

)13 s=s/n*(n-1

);14

return

s;15 }

2)打表

1

/*列印1-maxn的尤拉函式表*/2

int a[maxn]= ;

3void

euler()

413 }

2.中國剩餘定理

原文:

《孫子算經》中的題目:有物不知其數,三個一數餘二,五個一數餘三,七個一數又餘二,問該物總數幾何?

《孫子算經》中的解法:三三數之,取數七十,與餘數二相乘;五五數之,取數二十一,與餘數三相乘;七七數之,取數十五,與餘數二相乘。將諸乘積相加,然後減去一百零五的倍數。

結論:

令任意固定整數為m,當m/a餘a,m/b餘b,m/c餘c,m/d餘d,…,m/z餘z時,這裡的a,b,c,d,…,z為除數,除數為任意自然數時;餘數a,b,c,d,……,z為自然整數時。

1)當命題正確時,在這些除數的最小公倍數內有解,有唯一的解,每乙個最小公倍數內都有唯一的解。

2)當m在兩個或兩個以上的除數的最小公倍數內時,這兩個或兩個以上的除數和餘數可以定位m在最小公倍數內的具體位置,也就是m的大小。

3)正確的命題:分別除以a,b,c,d,…,z不同的餘數組合個數=a,b,c,d,…,z的最小公倍數=不同的餘數組合的迴圈週期。

具體步驟(以《孫子算經》中的題目為例):

1)找出三個數:從3和5的公倍數中找出被7除餘1的最小數15,從3和7的公倍數中找出被5除餘1 的最小數21,最後從5和7的公倍數中找出除3餘1的最小數70。

2)用15乘以2(2為最終結果除以7的餘數),用21乘以3(3為最終結果除以5的餘數),同理,用70乘以2(2為最終結果除以3的餘數),然後把三個乘積相加(15*2+21*3+70*2)得到和233。

3)用233除以3,5,7三個數的最小公倍數105,得到餘數23,即233%105=23。這個餘數23就是符合條件的最小數。

中國剩餘定理,尤拉函式

中國剩餘定理 x 3 2,x 5 3,x 7 2 問x最小是多少?解法 1.首先找到3,5,7,的三個 關鍵數字 即 5,7 35 3,7 21 3,5 15 2.讓35a 3 1,a 2 讓21b 5 1,b 1 讓15c 7 1,c 1 我們這裡要讓餘數為1,是為了要求餘數2的話,只要乘以2就可...

中國剩餘定理(CRT)與尤拉函式 數論

中國剩餘定理 x n y n z n 想必大家都聽過同餘方程這種玩意,但是可能對於中國剩餘定理有諸多不解,作為乙個moer oier,在此具體說明。對於同餘方程 x c1 mod m1 x c2 mod m2 x cn mod mn 其中任意的兩個mi,mj互質 我們可以構造出乙個解 令m mi 0...

尤拉函式 尤拉定理

尤拉函式 對正整數 n,尤拉函式 是小於等於 n的數中與 n互質的數的數目 此函式以其首名研究者尤拉命名 euler so totientfunction 它又稱為 euler stotient function 函式 尤拉商數等。例如 8 4,因為 1,3,5,7均和8 互質。注 n為1時尤拉函式...