數論隨筆(待補充)

2022-08-01 08:09:08 字數 1189 閱讀 3746

只列舉了做題中用到過的一些數學定理,先暫時整理一部分。

1、求n的位數:

log10(n)

2、n為質數:

a^m = a^(m % (n-1))  (mod n)

3、尤拉函式:

小於等於n的數中,與n互質的數的數目。

euler函式表達通式:euler(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…(1-1/pn),

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

euler(1)=1(唯一和1互質的數就是1本身)。 

補充性質:

(1)對於質數p,φ(p) = p - 1。注意φ(1)=1。

(2)對於互質的正整數a和n,有aφ(n) ≡ 1 mod n。(尤拉定理)

(3)若m,n互質,φ(mn)=φ(m)φ(n)。

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

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

(6)設a為n的質因數,

若( a | (n/a) ) 則有φ(n) = φ(n / a) * a;

否則:φ(n) = φ

(n / a) * (a - 1)。

(7)乙個數的所有質因子之和是euler(n)*n/2。

4、卡特蘭數

令h(0)=1,h(1)=1,catalan數滿足:

h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0)  (n>=2)

h(n)=h(n-1)*(4*n-2)/(n+1);

h(n)=c(2n,n)/(n+1) (n=0,1,2,...)

h(n)=c(2n,n)-c(2n,n-1)(n=0,1,2,...)

應用:括號化、

出棧次序、

凸多邊形三角劃分、

給定節點組成二叉樹

擴充套件:對於在n位的2進製中,有m個0,其餘為1的catalan數為:c(n,m)-c(n,m-1)。

指標 待補充

將位址視為指定的量,將值視為派生量。指標 一種特殊型別的變數 用於儲存值的位址。指標名表示的是位址,運算子被稱為間接值或解除引用運算子,將其應用於指標,可以得到該位址處儲存的值。例,假設manly是乙個指標,manly表示的是乙個位址,manly表示儲存在該位址處的值。宣告和初始化 運算子兩遍的空格...

dinic 模板 待補充

include using namespace std define mk make pair define pus push back define mo 1005 vector d mo vector de mo int tag mo int dfs int node,int low,int n...

常用其他(待補充)

echo 輸出乙個或者多個字串 var dump 列印變數的詳細資訊,可以一次列印乙個或多個變數的資訊 print r 列印陣列的資訊 unset 銷毀變數,可以一次銷毀乙個或多個變數,銷毀之後變數的值為null header語句的作用 header content type text html c...