模板 數學2

2021-08-09 15:31:28 字數 1213 閱讀 3551

一元線性同餘方程組:

x=r[ i ](mod a[ i ])

將兩個方程整合成乙個,不斷整

比如x%8=7,x%11=9  整合成x%88= -57(31)

ll solve()

return (r%m+m)%m; //這句能保證回到正整數

}

中國剩餘定理:

與上面條件不同,需要除數陣列m[i]兩兩互質。

ll a[maxn],m[maxn];

ll china(int n, ll* a, ll* m)

}

if(n>1)

ans=ans/n*(n-1);

return ans;

}

//線性篩:同時求尤拉函式和質數表

const int maxn = 10000000;

bool check[maxn + 10];

ll phi[maxn + 10], prime[maxn + 10]; //int陣列容易wa

int tot; // 素數個數

void phi_and_prime_table(int n)

for (int j = 0; j < tot; j++)

check[i * prime[j]] = true;

if (i % prime[j] == 0)

else

phi[i * prime[j]] = phi[i] * (prime[j] - 1);

} }

return ;

}

//普通篩,有時甚至比線性篩快

int n,p,tot;

int phi[n],pri[1000005];

bool mark[n];

void getphi()

for(int j=1;j<=tot;j++)

else phi[i*x]=phi[i]*phi[x];

} }

}//單獨求尤拉函式,較靈活

int p,pr[n];

bool prime[n];

int k=0;

void isprime()

數學模板 逆元

逆元 因為mod不滿足除法,所以我們需要用到逆元來求a b的模數。逆元就相當與 1 b mod p 逆元有兩種求法。第一種就是用擴充套件歐幾里德來求解。我們有同餘方程 ax 1 modp 如果有解,x就算a模p意義下的逆元。可以變成 ax yp 1 用擴充套件歐幾里德來求解。線性篩逆元 其實還有線性...

模板 數學 線性基

includeusing namespace std define ll long long const int mn 60 ll a mn tmp mn bool flag 該線性基能否表示0 嘗試向線性基中插入乙個值 void ins ll x else x a i flag true 判斷該線...

數學筆記2

設u u x v v x 都可導,則 cu cu c是常數 u v u v uv u v u v u v uv v2 1 2不解釋,下面給出3 4的推導過程 乘法法則可擴充套件 根據除法法則 示例2 f x n 根據除法法則 上式結果也可直接根據冪函式求導法則得出,冪函式f x xn的導數 f x ...