初等数论四大定理

1. 威尔逊定理

(1) 结论

当且仅当ppp为素数时,(p−1)!≡−1(modp)(p-1)!\equiv -1(\mod p)(p−1)!≡−1(modp)。

(2) 证明

充分性:若ppp不为素数,则(p−1)!≢−1(modp)(p-1)!\not\equiv -1(\mod p)(p−1)!​≡−1(modp)。

  • 当p=4p=4p=4时,显然(p−1)!≡6≡2(modp)(p-1)!\equiv 6\equiv 2(\mod p)(p−1)!≡6≡2(modp);

  • 当p>4p>4p>4时

    • ppp为完全平方数,则∃k\exist k∃k,使得p=k2p=k^2p=k2,由于p>4p>4p>4,故k>2,2k<pk>2,2k<pk>2,2k<p,(p−1)!≡n(k×2k)≡2n×k2≡0(modp)(p-1)!\equiv n(k\times2k)\equiv 2n\times k^2\equiv 0(\mod p)(p−1)!≡n(k×2k)≡2n×k2≡0(modp)。
    • ppp不是完全平方数,则∃a,b,a≠b\exist a,b,a\neq b∃a,b,a​=b,使得ab=pab=pab=p,则(p−1)!≡nab≡0(modp)(p-1)!\equiv nab\equiv 0(\mod p)(p−1)!≡nab≡0(modp)。

必要性:若ppp为素数,则一定有(p−1)!≡−1(modp)(p-1)!\equiv -1(\mod p)(p−1)!≡−1(modp)。

p=2p=2p=2时,结论显然成立。

若ppp为奇素数,取集合A={1,2,3,..,p−1}A=\{1,2,3,..,p-1\}A={1,2,3,..,p−1},AAA构成模ppp乘法的简化剩余系,即∀i∈A,∃j∈A\forall i\in A,\exist j\in A∀i∈A,∃j∈A,使得i×j≡1(modp)i\times j\equiv 1(\mod p)i×j≡1(modp)。

证明:因为AAA构成模ppp乘法的取值的集合了(除了0),所以这个结论肯定成立。

那么,这p−1p-1p−1个数是不是两两配对的呢?首先,由同余的运算法则,可以得到一定没有ij≡ik(modp),j≠kij\equiv ik(\mod p), j\neq kij≡ik(modp),j​=k的情况,那么它一定是两个一对,或者单独一个的情况。考虑x2≡1(modp)x^2\equiv 1(\mod p)x2≡1(modp),解得x≡1(modp)x\equiv 1(\mod p)x≡1(modp),或者x≡p−1(modp)x\equiv p-1(\mod p)x≡p−1(modp),那么其余则两两配对。因此(p−1)!≡1×(p−1)≡−1(modp)(p-1)!\equiv 1\times (p-1)\equiv -1(\mod p)(p−1)!≡1×(p−1)≡−1(modp),得证。

(5)例题

可以看下它的考察方式:UVA1434 YAPTCHA,主要就是欧拉筛+威尔逊定理+前缀和

#include <bits/stdc++.h>
using namespace std;
#define ll long longint n, cnt;
const int N = 3e6 + 20;
bool st[N];
int p[N], pre[N];void Euler(int n){for (int i=2;i<=n;++i){if (!st[i]) p[++cnt] = i;for (int j=1;p[j]<=n/i;++j){st[i * p[j]] = true;if (i % p[j] == 0) break;}}
}void init(){Euler(N - 1);for (int i=1;i<N;++i){int x = 0;if (i > 7 && (i - 7) % 3 == 0 && !st[i]){x = 1;}pre[i] = pre[i - 1] + x;}
}int main(void){init();int t;scanf("%d", &t);while (t--){scanf("%d", &n);printf("%d\n", pre[n * 3 + 7]);}return 0;
}

2. 欧拉定理

(1) 结论

若mmm是一个大于1的整数,且满足条件(a,m)=1(a,m)=1(a,m)=1,则我们有
aφ(m)≡1(modm)a^{\varphi(m)}\equiv 1(\mod m) aφ(m)≡1(modm)

(2) 证明

引理1: 设mmm是一个大于1的整数,aaa是一个整数且满足(a,m)=1(a,m)=1(a,m)=1,如果B={b1,b2,..,bφ(m)}B=\{b_1,b_2,..,b_{\varphi(m)}\}B={b1​,b2​,..,bφ(m)​}是模mmm的一个简化剩余系,则B′={ab1,ab2,..,abφ(m)}B'=\{ab_1,ab_2,..,ab_{\varphi(m)}\}B′={ab1​,ab2​,..,abφ(m)​}也是模mmm的一个简化剩余系。

证明:由于从BBB中取出任何一个正整数bib_ibi​,都有(bi,m)=1(b_i,m)=1(bi​,m)=1。又(a,m)=1(a,m)=1(a,m)=1,可以得到在B′B'B′中任意取出一个整数abiab_iabi​,都有(abi,m)=1(ab_i,m)=1(abi​,m)=1。那么,现在利用反证法,假设在B′B'B′中存在两个整数abk,abλab_k,ab_{\lambda}abk​,abλ​,1≤k<λ≤φ(m)1\leq k < \lambda \leq \varphi(m)1≤k<λ≤φ(m),使得:abk≡abλ(modm)ab_k\equiv ab_{\lambda}(\mod m)abk​≡abλ​(modm)成立。

又(a,m)=1(a,m)=1(a,m)=1,故bk≡bλ(modm)b_k\equiv b_{\lambda}(\mod m)bk​≡bλ​(modm),由于bk,bλb_k,b_{\lambda}bk​,bλ​是简化剩余系的元素,因此不可能模mmm同余,所以同余等式不可能成立,得证。

下面正式的证明欧拉定理。

考虑模mmm的最小正缩系AAA,即A={1,a2,...,aφ(m)}A=\{1,a_2,...,a_{\varphi(m)}\}A={1,a2​,...,aφ(m)​},是不大于mmm且和mmm互质的全体正整数,令r1r_1r1​是一个整数,满足条件:$ a \times 1\equiv r_1(\mod m), r_1\in[0,m-1]$

令rir_iri​(其中i=2,..,φ(m)i=2,..,\varphi(m)i=2,..,φ(m))是一个整数,满足条件:aai≡ri(modm),ri∈[0,m−1]aa_i\equiv r_i(\mod m),r_i\in[0,m-1]aai​≡ri​(modm),ri​∈[0,m−1]。

则我们有a≡r1(modm),aa2≡r2(modm),..,aaφ(m)≡rφ(m)(modm)a\equiv r_1(\mod m),aa_2\equiv r_2(\mod m),..,aa_{\varphi(m)}\equiv r_{\varphi(m)}(\mod m)a≡r1​(modm),aa2​≡r2​(modm),..,aaφ(m)​≡rφ(m)​(modm)

由于AAA是模mmm的一个简化剩余系,并且(a,m)=1(a,m)=1(a,m)=1,因此R={r1,r2,..,rφ(m)}R=\{r_1,r_2,..,r_{\varphi(m)}\}R={r1​,r2​,..,rφ(m)​}也是一个简化剩余系,并且和AAA至少在次序上可能有不同,故得到∏i=1φ(m)ri=∏i=1φ(m)ai\prod_{i=1}^{\varphi(m)}r_i=\prod_{i=1}^{\varphi(m)}a_i∏i=1φ(m)​ri​=∏i=1φ(m)​ai​

因此∏i=1φ(m)(a×ai)≡∏i=1φ(m)ai(modm)\prod_{i=1}^{\varphi(m)}(a\times a_i) \equiv \prod_{i=1}^{\varphi(m)}a_i (\mod m)∏i=1φ(m)​(a×ai​)≡∏i=1φ(m)​ai​(modm)

即aφ(m)≡1(modm)a^{\varphi(m)}\equiv 1(\mod m)aφ(m)≡1(modm)。

(3) 推论

欧拉降幂:
  • Ab≡Abmodφ(m)(modm)A^b\equiv A^{b\mod \varphi(m)} (\mod m)Ab≡Abmodφ(m)(modm)

证明:设b=k×φ(m)+rb=k\times \varphi(m)+rb=k×φ(m)+r,则r=bmodφ(m)r=b\mod \varphi(m)r=bmodφ(m)。

Ab≡Ar×(Aφ(m))k≡Ar(modm)A^b\equiv A^r\times (A^{\varphi(m)})^k\equiv A^r(\mod m)Ab≡Ar×(Aφ(m))k≡Ar(modm),得证。

3. 费马小定理

(1) 结论

事实上,费马小定理就是欧拉定理的一种特殊情况。

如果ppp为质数,p∤ap\nmid ap∤a,则我们有ap−1≡1(modp)a^{p-1} \equiv 1 (\mod p)ap−1≡1(modp)

(1) 证明

由于ppp为质数,因此φ(p)=p−1\varphi(p)=p-1φ(p)=p−1,取欧拉定理中m=pm=pm=p,即得到费马小定理。

需要注意的是,∃m∈N+,a∈Z\exist m\in \N^+,a\in \Z∃m∈N+,a∈Z,使得m∤am \nmid am∤a,这里mmm不是素数,使得am−1≡1(modm)a^{m-1}\equiv 1(\mod m)am−1≡1(modm),即费马小定理的逆定理不成立。比如,1024≡1(mod341)1024\equiv 1(\mod 341)1024≡1(mod341),2340≡(210)34≡(1024)34≡1(mod341)2^{340}\equiv (2^{10})^{34}\equiv (1024)^{34}\equiv 1(\mod 341)2340≡(210)34≡(1024)34≡1(mod341),而341=11×31341=11\times 31341=11×31,不是素数。

(2) 推论

明显的,当ppp为质数,且p∤ap \nmid ap∤a时,ap−2≡a−1(modp)a^{p-2}\equiv a^{-1} (\mod p)ap−2≡a−1(modp),由此就可以求得在模ppp意义下的乘法逆元。

欧拉定理和费马定理很难单独考察,大部分都是作为解题的一个步骤出现。

4. 中国剩余定理

1) 中国剩余定理(crt)

定理

有一元线性同余方程组(S)(S)(S)如下。

(S):{x≡a1(modm1)x≡a2(modm2)...x≡an(modmn)(S):\begin{cases} & x\equiv a_1~(\mod m_1) \\ & x\equiv a_2~(\mod m_2) \\ &... \\ & x\equiv a_n~(\mod m_n) \end{cases}(S):⎩⎪⎪⎪⎨⎪⎪⎪⎧​​x≡a1​ (modm1​)x≡a2​ (modm2​)...x≡an​ (modmn​)​

假设整数m1,m2,...,mnm_1,m_2,...,m_nm1​,m2​,...,mn​两两互质,则对任意的整数a1,a2,...,ana_1,a_2,...,a_na1​,a2​,...,an​,方程组(S)(S)(S)有解,并且通解可以用如下方式构造得到:

设M=∏i=1nmiM=\prod \limits _{i=1} ^{n} m_iM=i=1∏n​mi​,Mi=MmiM_i=\frac{M}{m_i}Mi​=mi​M​,设ti=Mi−1t_i=M_i^{-1}ti​=Mi−1​,为MiM_iMi​在模mim_imi​意义下的MiM_iMi​的模mim_imi​乘法逆元。

方程组(S)(S)(S)的通解形式为x=a1t1M1+a2t2M2+...+antnMn+kM=kM+∑i=1naitiMi,k∈Zx=a_1t_1M_1+a_2t_2M_2+...+a_nt_nM_n+kM=kM+\sum\limits_{i=1}^na_it_iM_i, k\in \Zx=a1​t1​M1​+a2​t2​M2​+...+an​tn​Mn​+kM=kM+i=1∑n​ai​ti​Mi​,k∈Z。

在模MMM的意义下,方程组(S)(S)(S)只有一个解:x=(∑i=1naitiMi)modMx=(\sum\limits_{i=1}^na_it_iM_i)\mod Mx=(i=1∑n​ai​ti​Mi​)modM

namo 首先解的每一项,都是可以求出来的,tit_iti​也可以通过扩展欧几里得算法求出。然后再来小小的证明下!

证明

  1. 首先证明xxx是方程组(S)(S)(S)的一个解。

对于解的每一项,可以看出aitiMi≡ai×1≡ai(modmi)a_it_iM_i\equiv a_i\times 1 \equiv a_i(\mod m_i~)ai​ti​Mi​≡ai​×1≡ai​(modmi​ ),

aitiMi≡0(modmj)a_it_iM_i\equiv 0~(\mod m_j~)ai​ti​Mi​≡0 (modmj​ ),∀j∈[1,n],j≠i\forall j\in[1,n], j\neq i∀j∈[1,n],j​=i

因此,xxx满足x=aitiMi+∑j≠iajtjMj≡ai+∑j≠i0≡ai(modmi),∀i∈[1,n]x=a_it_iM_i+\sum\limits _{j\neq i}a_jt_jM_j \equiv a_i+\sum\limits _{j\neq i}0 \equiv a_i~(\mod m_i), ~~\forall i\in[1,n]x=ai​ti​Mi​+j​=i∑​aj​tj​Mj​≡ai​+j​=i∑​0≡ai​ (modmi​),  ∀i∈[1,n]

故xxx是方程组的一个解。

  1. 然后证明在模MMM的意义下,方程组(S)(S)(S)只有一个解。

假设x1,x2x_1,x_2x1​,x2​都是方程组(S)(S)(S)的解,那么x1−x2≡0(modmi),∀i∈[1,n]x_1-x_2\equiv 0~(\mod m_i), \forall i\in [1,n]x1​−x2​≡0 (modmi​),∀i∈[1,n]

而m1,m2,...,mnm_1,m_2,...,m_nm1​,m2​,...,mn​两两互质,这说明M∣(x1−x2)M|(x_1-x_2)M∣(x1​−x2​),所以方程组(S)(S)(S)的任何两个解之间必然相差MMM的整数倍,所以方程组所有的解的集合就是{kM+∑i=1naitiMi;k∈Z}\{kM+\sum \limits _{i=1} ^n a_it_iM_i;k\in \Z\}{kM+i=1∑n​ai​ti​Mi​;k∈Z}

所以在模MMM的意义下,方程组(S)(S)(S)只有一个解。

  • 代码:
int n;
const int N = 10 + 5;
int A[N], B[N];ll mod(ll a, ll b){return (a % b + b) % b;
}ll exgcd(ll a, ll b, ll &x, ll &y){if (!b){x = 1, y = 0; return a;}ll d = exgcd(b, a % b, y, x);y -= a / b * x;return d;
}int main(void){scanf("%d", &n);ll M = 1, res = 0, ti, y;for (int i=1;i<=n;++i){scanf("%d%d", &A[i], &B[i]);M = M * A[i];}for (int i=1;i<=n;++i){ll Mi = M / A[i];exgcd(Mi, A[i], ti, y);res = mod(res + Mi * ti * B[i], M);}printf("%lld\n", res);return 0;
}

2) 扩展中国剩余定理(excrt)

(rxz的题解写的太好了,受益良多QAQ,他讲的东西真的都是清晰细致又简单 但是因为他用python所以不推mod 岂可修)

https://www.luogu.com.cn/blog/blue/kuo-zhan-zhong-guo-sheng-yu-ding-li

这里自己再重新推导一遍。

修改条件,使得m1,m2,...,mnm_1,m_2,...,m_nm1​,m2​,...,mn​不再两两互质,此时应该如何求方程组的解?

(S):{x≡a1(modm1)x≡a2(modm2)...x≡an(modmn)(S):\begin{cases} & x\equiv a_1~(\mod m_1) \\ & x\equiv a_2~(\mod m_2) \\ &... \\ & x\equiv a_n~(\mod m_n) \end{cases}(S):⎩⎪⎪⎪⎨⎪⎪⎪⎧​​x≡a1​ (modm1​)x≡a2​ (modm2​)...x≡an​ (modmn​)​ x={kM+∑i=1naitiMi;k∈Z}x=\{kM+\sum \limits _{i=1} ^n a_it_iM_i;k\in \Z\}x={kM+i=1∑n​ai​ti​Mi​;k∈Z}

互质条件不满足时,tit_iti​不存在。(回忆逆元的定义,只有当(b,m)=1(b,m)=1(b,m)=1时才存在b−1(modm)b^{-1}(\mod m)b−1(modm)),那么不能利用公式时,只能尝试去不断的合并方程,直到nnn个方程仅剩下一个,再使用扩展欧几里得算法求解唯一的同余方程。那么,如何将两个方程等价的变换为一个方程呢?考虑如下情况:

{x≡a1(modm1)x≡a2(modm2)\begin{cases} & x\equiv a_1(\mod m_1) \\ & x\equiv a_2(\mod m_2)\end{cases}{​x≡a1​(modm1​)x≡a2​(modm2​)​

此方程组等价于x=k1m1+a1=k2m2+a2x = k_1m_1+a_1=k_2m_2+a_2x=k1​m1​+a1​=k2​m2​+a2​

移项后,得k1m1−k2m2=a2−a1k_1m_1-k_2m_2=a_2-a_1k1​m1​−k2​m2​=a2​−a1​。

令a=m1,b=m2,m=a2−a1a=m_1,b=m_2,m=a_2-a_1a=m1​,b=m2​,m=a2​−a1​,方程就变成了我们最熟悉的不定方程。那么,记d=(m1,m2)d=(m_1,m_2)d=(m1​,m2​),求是否有x,yx,yx,y,满足ax+by=dax+by=dax+by=d。求解的步骤即是:先用裴蜀定理判断是否有解,再用扩展欧几里得算法求解(系)。则k1=x×a2−a1d,k2=−y×a2−a1dk_1=x\times \frac{a_2-a_1}{d},k_2=-y\times \frac{a_2-a_1}{d}k1​=x×da2​−a1​​,k2​=−y×da2​−a1​​,这就是方程的一组特解。为了避免数据溢出,可以让k1:=k1modm2dk_1:=k_1 \mod \frac{m_2}{d}k1​:=k1​moddm2​​(具体证明见裴蜀定理),那么,x=a1+k1m1x=a_1+k_1m_1x=a1​+k1​m1​,就求出来了两个方程的特解。设这个特解为rrr,那么它的通解就是{r+k×LCM,k∈Z}\{r+k\times LCM, k\in \Z\}{r+k×LCM,k∈Z},那么,就可以合并两个同余方程啦!

x≡r(modLCM)x\equiv r~(\mod LCM)x≡r (modLCM)

这样不断合并,直到只剩下一个方程,解出答案即可。注意,中间非常容易数据溢出!即使是long long!所以最好直接用一个mul函数,一边做乘法一边做模运算。


横线中的这段是rxz的证明,嘛嘛,就相当于方程ax+by=dax+by=dax+by=d两边÷d\div d÷d,结果是一样的。

那么,记d=(m1,m2)d=(m_1,m_2)d=(m1​,m2​),p1=m1d,p2=m2dp_1=\frac{m_1}{d}, p_2=\frac{m_2}{d}p1​=dm1​​,p2​=dm2​​,易得(p1,p2)=1(p_1,p_2)=1(p1​,p2​)=1。

方程可被写为这样的形式:k1p1−k2p2=a2−a1dk_1p_1-k_2p_2=\frac{a_2-a_1}{d}k1​p1​−k2​p2​=da2​−a1​​

由于当d∣(a2−a1)d|(a_2-a_1)d∣(a2​−a1​)时,方程才有解,因此右边的式子为整数。接着按照exgcd的流程走,我们求这个方程的解

λ1p1+λ2p2=1\lambda_1p_1+\lambda_2p_2=1λ1​p1​+λ2​p2​=1,则{k1=a2−a1d×λ1k2=a2−a1d×λ2\begin{cases} & k_1=\frac{a_2-a_1}{d} \times \lambda_1\\ & k_2=\frac{a_2-a_1}{d} \times \lambda_2\end{cases}{​k1​=da2​−a1​​×λ1​k2​=da2​−a1​​×λ2​​

将结果代入方程,得x=a1+k1m1=a1+a2−a1dλ1m1x=a_1+k_1m_1=a_1+\frac{a_2-a_1}{d}\lambda_1m_1x=a1​+k1​m1​=a1​+da2​−a1​​λ1​m1​。

这个xxx就是方程的一个特解。

那么,进一步的,如何求出整个解系呢?

**定理:**若有特解x′x'x′,令LCM=lcm(m1,m2)LCM=lcm(m_1,m_2)LCM=lcm(m1​,m2​),则{x≡a1(modm1)x≡a2(modm2)\begin{cases} & x\equiv a_1(\mod m_1) \\ & x\equiv a_2(\mod m_2)\end{cases}{​x≡a1​(modm1​)x≡a2​(modm2​)​ 的通解为x={k×LCM+x′;k∈Z}x=\{k\times LCM+x';k\in \Z\}x={k×LCM+x′;k∈Z}。

该定理的证明和CRT的证明完全相同。好累,我不想重抄一遍所以就这样吧


  • 代码:
int n;
const int N = 1e5 + 10;
ll a1, m1, a[N], m[N], res;ll mul(ll a, ll b, ll M){ll res = 0;while (b > 0){if (b & 1) res = (res + a) % M;a = (a + a) % M;b >>= 1;}return res;
}ll merge(ll a2, ll m2){ll x, y, M, c = mod(a2 - a1, m2);ll d = exgcd(m1, m2, x, y);if (c % d){return -1;}M = (m1 / d * m2);ll k1 = mod(mul(x, c / d, m2 / d), m2 / d);ll r = mod(k1 * m1 + a1, M);a1 = r, m1 = M;return r;
}int main(void){scanf("%d", &n);scanf("%lld%lld", &m1, &a1);if (n == 1){printf("%lld\n", mod(a1, m1));return 0;}for (int i=1;i<n;++i){scanf("%lld%lld", &m[i], &a[i]);}for (int i=1;i<n;++i){res = merge(a[i], m[i]);if (res < 0) break;}printf("%lld\n", res);return 0;
}

初等数论四大定理(威尔逊定理,欧拉定理,费马小定理,中国剩余定理)相关推荐

  1. 算法 {欧拉函数,欧拉定理,费马小定理}

    欧拉函数 定义 ϕ ( x ) , x ∈ N + \phi(x), \ \ x \in N^+ ϕ(x),  x∈N+ means the number of y ∈ N + y \in N^+ y ...

  2. 欧拉定理 费马小定理

    前言 学基础数论的时候看过证明,然而很快就忘了,最近在学习高深一点的数论,于是再复习一下欧拉定理和费马小定理. 欧拉定理 内容 若正整数 \(a,n\) 互质,则 \(a^{\varphi(n)}\e ...

  3. 【BZOJ】3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛(排列组合+乘法逆元+欧拉定理/费马小定理)...

    http://www.lydsy.com/JudgeOnline/problem.php?id=3398 以下牡牛为a,牝牛为b. 学完排列计数后试着来写这题,"至少"一词可以给我 ...

  4. 数论四大定理(欧拉定理、费马小定理、中国剩余定理、威尔逊定理)

    前置知识 同余 假设 a,ba,ba,b 都是整数,如果 nnn 是一个正整数,且存在整数 kkk 使得 a−b=k×na−b=k \times na−b=k×n,则称 a,ba,ba,b 模 nnn ...

  5. 密码学基础——辗转相除法,费马小定理,欧拉定理,裴蜀定理,中国剩余定理

    文章主要根据百度百科和维基百科相关相关知识点整理而成! 辗转相除法 辗转相除法, 又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法.它的具体做法是:用较小数除较大数 ...

  6. 同余定理 逆元 中国剩余定理 费马小定理

    同余定理 同余定理是数论中的重要概念.给定一个正整数m,如果两个整数a和b满足(a-b)能够被m整除,即(a-b)/m得到一个整数,那么就称整数a与b对模m同余,记作a≡b(mod m). 两个整数a ...

  7. 夜深人静写算法(三十二)- 费马小定理

    文章目录 一.前言 二.费马小定理 1.费马小定理定义 2.费马小定理证明 三.素数判定和伪素数 1.素数判定 2.伪素数 四.费马小定理的应用 1.二分快速幂降幂 2.模 p 逆元 3.Rabin- ...

  8. 判断素数(费马小定理)

    1)Sieve of Eratosthenes筛法 由于一个合数总是可以分解成若干个质数的乘积,那么如果把质数(最初只知道2是质数)的倍数都去掉,那么剩下的就是质数了.例如要查找100以内的质数,首先 ...

  9. 初等数论四大定理(威尔逊定理,欧拉定理,中国剩余定理,费马小定理)

    1.威尔逊定理:在初等数论中,威尔逊定理给出了判定一个自然数是否为素数的充分必要条件.即:当且仅当p为素数时:( p -1 )! ≡ p-1 ( mod p ),但是由于阶乘是呈爆炸增长的,其结论对于 ...

最新文章

  1. python 文件操作 open()与with open() as的区别(打开文件)
  2. 无法打开此修补程序包”或“这个产品的安装来源无法使用”解决(转)
  3. hihoCoder1678 版本号排序
  4. python3爬虫初探(二)之requests
  5. 如何停止Internet Explorer 11的建议站点?
  6. 证明AVL树的上界和下界
  7. FreeBSD学习笔记15-FreeBSD下安装Apache
  8. python图纸教程_python入门教程 python入门神图一张
  9. LeetCode979. 在二叉树中分配硬币
  10. postman支持socket吗_你必须知道postman和Jmeter做接口测试区别
  11. 使用parseInt转换规范非法输入
  12. 地铁译:Spark for python developers --- 搭建Spark虚拟环境 4...
  13. Setup Factory 卸载 Invalid Start mode :archive filename
  14. 小米路由php,小米路由器Pro 刷机 OpenWrt
  15. 山东大学计算机转专业2021,2021年山东大学大一新生转专业及入学考试相关规定...
  16. 关于MAC地址修改和扩展以太网
  17. Python爬虫 | Python爬虫获取女友图片
  18. Creo 4.0 软件安装教程
  19. 仿制网站被抄袭的几个有效解决的方法
  20. ::before和::after是什么?

热门文章

  1. 教你轻松一键安装win10系统
  2. java——Scanner中nextLine()方法和next()方法的区别
  3. ps -ef | grep 命令解读
  4. 架构师成长记_第八周_04_ES-head 与 postman基于索引的基本操作
  5. selenium 爬虫项目实例 爬取社保五险
  6. 基于短周期价量特征的多因子选股体系的实现(三)----因子计算
  7. 七大Linux桌面介绍:Unity、KDE、GNOME等等
  8. 0x800703e3复制文件错误
  9. PyCharm2016.2专业版注册码
  10. 流感传染(C程序设计进阶第2周)