日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数论入门整理(updating)

發布時間:2023/12/31 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数论入门整理(updating) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、gcd lcm

基礎中的基礎,一般用來處理計算第一步什么的,分數化簡之類。

LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b) {LL c = gcd(a, b);return a / c * b; }

例題:

hrbust 1178

hdu 2028 Lowest Common Multiple Plus

二、exgcd

通常用于解二元一次方程,線性同余方程組,高次同余方程組(babystep_giantstep)。

中國剩余定理。

void exgcd(LL a, LL b, LL& d, LL& x, LL& y)//ax + by = d, d = gcd(a, b) { if (b == 0) { d = a; x = 1; y = 0; } else { exgcd(b, a % b, d, y, x); y -= x * (a / b); } }

例題:

二元一次方程:

poj 1061 + poj 2115 + poj 2142

uva 10673 Play with Floor and Ceil

線性同余方程組:

poj 2891 Strange Way to Express Integers

hdu 1573

高次同余方程組:

poj 3243 poj 2417 hdu 2815

中國剩余定理:

poj 1006 Biorhythms



三、素數

也是第一步的處理。


例題:

hdu 2098 分拆素數和

poj 2689 Prime Distance? 大素數

poj 1811 + poj 2429 (Miller_Rabin大素數測試 + Pollard_Rho大合數分解)


四、快速冪

普通快速冪和矩陣快速冪。

用于求比較大的數的冪次取模。

比較大小可以取對數。

例題:

快速冪:

uva 10006 Carmichael Numbers?

poj 1995?


矩陣快速冪:

poj 3233(矩陣快速冪)

hdu 3292 No more tricks, Mr Nanguo(矩陣快速冪解佩爾方程)


五、歐拉函數

小于一個數x且與x互素的數的個數,就是歐拉函數,保存在phi[x]中。

1.打表:

void phi_table() { for (int i = 2; i <= maxn; i++) phi[i] = 0; phi[1] = 1; for (int i = 2; i <= maxn; i++) { if (!phi[i]) { for (int j = i; j <= maxn; j += i) { if (!phi[j]) { phi[j] = j; } phi[j] = phi[j] / i * (i - 1); } } } } 2.O(n)解法:

int euler_phi(int n) { int m = sqrt(n + 0.5); int res = n; for (int i = 2; i <= m; i++) { if (n % i == 0) { res = res / i * (i - 1); while (n % i == 0) n /= i; } } if (1 < n) res = res / n * (n - 1); return res; }

例題:

基礎:

uva 10820 poj 2407 poj 1284 poj 2478 poj 3090

進階:

poj 3696 + poj 3358


六、因子相關

因子和,因子個數和,積性函數。


例題:

uva 10791 Minimum Sum LCM(拆分素因子)

poj 1845 (因子和)

poj 2992 (因子個數和)

hdu 1452 (積性函數+因子和+乘法逆元)

poj 2480 (積性函數+素因子和)


七、fib與catalan

catalan:

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

經典的總結:http://www.cnblogs.com/wuyuegb2312/p/3016878.html


例題:

hdu 1023 Train Problem II

uva 10303 uva 991


fib:

通常的fib直接打個表或者亂搞一下。

但是fib有個擴展就是fib的矩陣形式,在要求fib比較大的情況下,直接用矩陣快速冪搞定。

???????????100111110??????Sn?1Fn?1Fn?2???=???SnFnFn?1???


例題:

uva 10229 (fib矩陣形式+矩陣快速冪)uva 10518 (fib(n)調用多少次)


八、概率論、組合數學

排列組合,貝葉斯公式、全概率公式。


例題:

uva 10105 uva 10910 uva 10943(排列組合C)

hdu 2048 and 2049(錯排問題)

uva 19759 (Dp+概率)

uva 10900 (期望)

uva 10056(等比數列求和)

uva 11181(貝葉斯公式)

uva 10277 (概率論 + 暴力)

uva 10169 (概率+取小數點后0的位數)


九、java大數使用

uva 10183 uva 10519 uva 10516


十、數學問題+技巧

uva 10061 How many zero's and how many digits ?(不同進制階乘末尾幾個0)+poj 1401

uva 11121 Base -2 (負進制計算)

uva 128 Software CRC(進制轉換)

uva 106 Fermat vs. Pythagoras(勾股數求法)

uva 11029 Leading and Trailing(求n^k的前幾位和后幾位 證明)

poj 1091 跳蚤(n元一次不定方程+斥容原理)

uva 11027(康拓展開求序列|編碼解碼)

uva 10491 (廣義三門問題)

poj 1695 (莫比烏斯反演)


十一、組合數學學習

1.排列組合:

TypeSampleOrder Counts?Rep?Numbers of ways
無重組合從n個球中取r個NoNoC(n,r)
無重排列從n個人中找r個排隊YesNoP(n,r)
可重組合從n種水果中選r個拼果籃NoYesC(n + r - 1, r)
可重排列n個字母組成的r位串YesYesn ^ r
多重全排列r1個a,r2個b組成的n位串YesYesn! / (r1! r2!)



總結

以上是生活随笔為你收集整理的数论入门整理(updating)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。