1、霍納法則 解決計算多項式復雜度的一個算法
procedure Horner
y = 0
for i = n to 0
y = ai + y*x
2、任意大于1的整數都可以唯一寫成兩個或多個素數的乘積。
3、如果n是一個合數,那么n必有小于或等于根號n的一個素因子。
4、下面的公式是求最大公約數,其原理可以參照2
5、最小公倍數 lcm 表示
其實 亦可 lcm(a,b)= a*b /lcd(a,b) ;
6、偽隨機數 ,結果生成了一個多G的文件,而且還沒完,
# include<stdio.h> # include<math.h> /* xn+1 = (a*xn + c) mod m */ int main() { freopen("myout.txt","w",stdout); long m = long(pow(2,31) -1 ); long a = long(pow(7,5)) ; long c = 0; long x = 1; long count = 0; while(++count < m) { x = (a*x + c) % m ; printf("%ld ",x); } return 0; }
7 、gcd(a,b)= sa + tb; 存在整數 s t 使這個等式成立。這個其實是由歐幾里得算法演變過來的
如 :gcd(252,198)= 18;
252 = 1 * 198 + 54 ---1
198 = 3 * 54 + 36 ----2
54 = 1 * 36 + 18 --------3
36 = 2 * 18 + 0 其中18 是第一個非0的余數 即 18 是他們的最大公約數
那么 現在要用 18 = s*252 + t *198 來表示,其實只需要上述等式的逆運算
由 3式 知 18 = 54 – 36 ;由2式 可以推出 36 的表達 36 = 198 – 3 * 54, 1 式 推出 54用 252 的表達 : 54 = 252 - 1*198,最后
18 = 4*252 - 1*198 。
http://www.fuxiang90.me/?p=188 我獨立博客的地址 歡迎訪問


