一中集训整合贴

1.整除,最大公因数和最小公倍数

1.1 整除

若整数 b 除以非零整数 a ,商为整数,且余数为零,b 为被除数,a 为除数,即a|b,读作“ a整除 b ”或“ b能被 a 整除”。

其中,整除具有如下三条性质:

  • 整除的传递性,证明如下:
如果 a|b,b|c ,那么有 a|c

a=k1b, c=k2b ,可得 c=k1k2a ,是 a 的倍数。所以有 a|c

  • 整除的可加减性,证明如下:
如果 a|b,a|c ,那么有 a|(b+c),a|(bc)

对于满足题意的 a,b,c , k1,k2Z 使得 b=k1a,c=k2a

所以 a|(b+c) 等价于 a|(k1+k2)a 。因为 k1+k2,k1k2Z ,所以 b+c=(k1+k2)aa 的倍数,有 a|(b+c) 。可减性同理。

  • 整除的可乘性,证明如下:
如果 a|b,a|c ,那么对于 x,yZa|(bx+cy)

b=k1a,c=k2a , 因为 x,yZ ,所以有 a|k1xa,a|k2ya ,即 a|bx,a|cy 。由于整除具有可加减性,那么 a|(bx+cy)

例题

1.1.1 如果 x+6y7 的倍数,那么 5x+2y 也是 7 的倍数。

因为整除的可加减性,由于 7|(x+6y) ,所以 7|(5x+30y)

又因为 7|28y ,所以由于整除的可加减性, 7|(5x+30y28y) ,即 7|(5x+2y)

1.1.2 如果 3|x,7|x , 则 21|x

x=3×7×k ,并且 kZ 。由于 7kZ ,所以一定 3|x ;由于 3kZ ,所以一定 7|x

1.1.3 求证:8|32n+1+5

原命题等价于 8|3×9n+5

n=1 是,3×9n3(mod8)

n>1 时,若 3×9n13(mod8) ,那么有 3×9n3×9(mod8) 。整理得到 3×9n3(mod8)

那么 3×9n+53+5(mod8) ,即 3×9n+50(mod8) 。所以 8|32n+1+5

1.2 最大公约数和最小公倍数

最大公约数:对于 a,b ,最大的 c 满足 c|a,c|b

最小公倍数:对于 a,b ,最小的 c 满足 a|c,b|c

定理:公倍数整除最大公倍数

等价于:存在 a,b ,则对于任意 c 满足 a|c,b|c ,都有 lcm(a,b)|c

我们设一个元素 x 的全部因子构成的可重集合为 Sx ,则 SaSb=Slcm(a,b) 。而对于 d 满足 a|d,b|d ,都有 SaSd,sbSd

如果存在 d 不满足 lcm(a,b)|d ,也就是说 SaSbSd ,但是 SaSd,Sbsd 。与我们的假设相互矛盾。所以一定有 lcm(a,b)|d

定理:(a,b)=(ab,b)

a,b 都是质数的时候, 一定有 (a,b)=1 ,若此时 (ab,b)>1 ,则设 c=(ab,b) 。那么 (ab)=k1c,b=k2c 。因为 b 是质数,所以 c{1,b} 。而 c>1 ,所以 c=b 。那么 (ab)=k1c 等价于 (ab)=k1b 等价于 b|(ab) 。因为 b|b, 所以命题进一步等价于 b|a 。因为 (a,b)=1 ,所以于原命题相违背。得证。

a,b 不一定是质数的时候,设 c=(a,b)a=k1c,b=k2c 。由于整除的可加减性,一定有 c|(ab),c|b ,也就是说 c(ab,b) 。若 (ab,b) 不等于 c ,那么存在 d(k1k2)c|d,k2c|d ,也就是 (k1k2,k2)>1 。因为 c=(a,b),所以 k1,k2 互素。由上述的证明,当 k1,k2 互素时, (k1,k2)=(k1k2,k2)=1 。与我们对于 d 的假设相违背,也就是说不存在 d(d>c) 满足 (k1k2)c|d,k2c|d 。可以观察到 c 一定满足条件, (ab,b)=c 。得证。

这个命题就是大名鼎鼎的更相减损术,可以进一步推出辗转相除法。这里略。

裴蜀定理

定义:设 a,b 是不为 0 的整数,那么一定存在整数 x,y ,满足 ax+by=gcd(a,b)

证明:

1.若任何一个等于 0 ,则 (a,b)=a ,这是定理显然成立。

  1. a,b 不等于 0 ,设 a,b>0,ba,(a,b)=d

对于 ax+by=d ,两端同除以 d ,可得 a1x+b1y=d 。并且 (a1,b1)=1 。我们只考虑对于 (a,b)=1 的二元组 (a,b) ,满足裴蜀定理。

我们考虑辗转相除法(本质上是优化的更相减损术的优化,上已证明),就是 (a,b)=(b,amodb) 一直不断推出来的。我们设余数为 r ,有

(a,b)=(b,r1)=(r1,r2)=...=(rn1,rn)

我们算法展开成带余数除法的形式:

a=q1b+r1

b=q2r1+r2

r1=q3r2+r3

...

rn3=qn1rm2+rn1

rn2=qnrn1+rn

rn1=qn+1rn

我们令辗转相除法运行知道互质的时候推出 rn=1 ,所以有:

rn2=qnrn1+1

移项,得:

1=rn2qnrn1

那么我们将 rn1=rn3qn1rn2 带入上式,得:

1=(1+qnqm1)rn2xnrn3

我们可以不断消除 rn2r1 。最终得出 1=ax+by 。得证。

推论两则:

  • 公因数整数最大公约数
如果 c=(a,b) ,那么对于任意 d 满足 d|a,d|b 都有 d|c

我们定义元素 x 的因子构成的可重集合为 Sx 。那么 Sc=SaSb 。对于每一个 d 都有 SdSaSb ,所以 S_d Sc 。也就是 d|c

  • 整除的互质可消性
如果 a|c,b|c,(a,b)=1 ,那么 ab|c

如果原命题的逆命题不成立,及 ab|c 可能不满足 a|c,b|c ,前提是 (a,b)=1 。设 c=abk , 其中 kZ 。因为 bkZ ,所以 a|c ;因为 akZ ,所以 b|c 。与假设不符。

对于原命题而言, (a,b)=1 ,可以推出 [a,b]=ab 。若 [a,b] 不整除 c ,就代表着 SaSc,SbSc 至少有一个不成立,与题目条件相违背。所以 [a,b]|c ,就是 ab|c

我们进而有 3 条推论:

  • (a,(b,c))=(a,b,c)

  • (a,b)=(a,b,ax)

  • (a,b)=((a,b),(a.c))

2.算数基本定理

2.1 质数

质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数

质数有无穷个

考虑反证,如果质数有限,我们设这个集合为 S 。我们求出 (pSp)+1 ,那么对于任何一个 pS ,都不满足 b|(pSp)+1 。那么 (pSp)+1 就是我们构造出的全新质数。但是 (pSp)+1S ,与我们的假设违背。所以质数有无穷个。

2n1 为质数,则 n 为质数

我们考虑一个前置命题:对于 a,b>12a1|2ab1

这个命题等价于 2ab1(mod2a1) 。因为 2a1(mod2a1) , 那么 i=1b2ai=1b1(mod2a1) 。这整理可得 2ab1(mod2a1)2ab10(mod2a1)

n 不是质数,那么 a,b>1 满足 ab=n 。由于 2a1|2ab1,2b1|2ab1 ,所以 2n1 是合数与命题违背,所以 n 是质数。

m|(m1)!1 ,则 m 是质数。

m 是质数,则当 m=2 时,命题成立。对于其余质数,1m1 中的全部数的逆元都存在且唯一,也就是说 (m1)!1(modm) ,与原命题给出的条件等价。

m 不是质数,那么 1m1 的数可能出现不存在逆元或者一个数作为多个数的逆元的情况,所以 (m1)!1(modm) 一定不成立。综上,如果 m|(m1)!1 ,那么 m 只能是质数。

对于 pprime ,如果 p 不整除 a ,则 (p,a)=1

首先 , (p,a){1,p} 。若 (p,a)=a ,则 p 就整除 a ,与命题相违背,所以 (p,a)=1

对于 pprime ,则若 p|ab 可以推出 p|a 或者 p|b

Sa 表示 a 的因子组成的可重集,那么 Sp={1,p}

因为 p|ab ,所以 SpSaSb 。因为 1Sa,1Sb 。所以 pSapSb 至少满足一个,也就是说 SpSaSpSb 至少满足一个。进一步得出 p|a,p|b 至少满足一个。

2.2 算数基本定理

一个大于 1 的正整数 n 可以分解成若干质数的乘积。若不考虑质因子之间的顺序,这种分解方式都是唯一的。

讲相同的质因子合并成乘方的形式得到:n=p1e1p2e2...pkek

证明:

先证明存在性:

  • nprime ,显然成立。

  • n 是个合数。根据合数的定义,n 可以划分成 a,b>1 ,满足 ab=n 。若 a,b 中存在合数,可以继续归纳的分解。

所以质因子分解的存在性得证。

后证明唯一性:

欧几里得引理:如果 p 是素数且 p|bc ,那么 p|b 或者 p|c

假设存在某些数,它们有能分解为两种不同的质数乘积,将其中最小的数设为 n

n=p1p2p3...ps=q1q2q3...qr(p,qprime)

因为 p1 可以除以 (q1)(q2q3...qr) ,由欧几里得引理得:p1|q1 或者 p1|q2q3...qr

所以可以得到 p1=q1 或者 p1=qi(2ir)

上面任意一种情况,等可以将原式子左右两边同时消掉一个数,这样就得到了一个更小的数能表示两种质数乘积,与 n 是最小数的假设矛盾,唯一性得证.

推论

设正整数 n 的标准分解式为 n=p1e1p2e2...pkek

(1) 设 m=p1f1p2f2...pkfk ,则 m|nfiei 可以互相推导。

证明:

  • m|n 推出 fiei

由于整除的互质可消性,如果可以证明对于每一个素数 pi ,若 pifi|n ,则命题得证。

考虑反证,如果存在 fi>ei ,那么 pifi 就不会整除 n 。所以是不可能的。

  • fiei 推出 m|n

由于整除的互质可消性,如果可以证明对于每一个素数 pi ,若 pifi|n ,则命题得证。

因为 fiei ,所以一直有 pifi|piei ,证毕。

(2) 设 d(n) 表示 n 的因数个数,那么 d(n)=(e1+1)(e2+1)...(ek+1)

证明:

由于 (1) 可得,若存在 m=p1f1p2f2...pkfk , fiei 可推出 m|n 。由乘法原理,对于 pi 的幂次 fi ,可以在 oei 之间任选,所以答案可以乘法原理:

i=1k(ei+1)

得证。

(3) 设 d(n) 表示 n 的因数和,则 d(n)=i=1kpiei+11pi1

群论

群的定义

定义群 (G,)

  • 群是封闭的,对于 f,gG 满足 fgG

  • 存在单位元 e 满足 cgGge=eg

  • gG 满足 g1g=e

  • 群的运算具有结合律。

  • 单位元 e 有唯一性,Proof:假若存在两个单元元 e1,e2e1e2=e1=e2e1e2 矛盾,故单位元具有唯一性。

  • 同理逆元同样具有唯一性。

  • 群内的运算不一定满足结合律。

  • 若群内的元素有限则为有限群,否则为无限群。

  • 若群的运算不具有交换律则成为非交换群,否则为交换群。

举几个例子:

(Z,+) 是一个无限群

(Zn×,+) 是一个有限群

Mn(R)Sn{(1,2...n)(a1,a2...an)} 是非交换群

  • 置换群

fg=f(g(1,2...n))

子群

  • 只包含单位元的子群被称为平凡子群。

  • 如何找非平凡子群:取 fGef 不断做二元运算和逆元运算,得到的结果和它本身加入群 GG 构成 G 的一个非平凡子群。

  • (nZ,+)(Z,+) 的一个子群。

循环群

  • G={am|mZn} 我们称群 Ga 生成,也认为 a 是群 G 的生成元,o(G)=o(a),记作 G=a

群同构

定义群 (G1,1)(G2,2) 若存在映射 f(xG1)=yG2 对于 g1,g2G2 满足 f(g1g2)=f(g1)2f(g2) 则称 G1G2 同构。

对于任意 a,n 满足 gcd(a,n)=1{Zn,×}=a

满足 gk=e 的最小 k 称为 g 在群 G 中的阶。记作 o(k)

对于有限群 Go(ax)=o(a)gcd(o(a),x)

拉格朗日定理

  • HG 的一个子群,则 |H|||G|

Proof:

定义群 {G,} 与它的一个子群 H
下面证明对于 gi,gjG 要么 giH=gjH 要么 giHgjH=

假若 giHgjH 那么 hk,hw 使得 gihk=gjhw,也就是说 gihkhw1=gj 又因为 hkhw1H 所以 gjgiH 所以 gjHgiH 同理可得 giHgjH 所以 giH=gjH

阶的性质

  • 在有限交换群 G 中若 gcd(o(a),o(b))=1 则有 o(ab)=o(a)×o(b)

  • 在一个有限交换群中 G 中,max(o(g))=lcm(o(g))

Proof:

o(g1)=max(o(g))g2o(g1)

p 满足 Vp(g2)>Vp(g1)

o(g2g2Vp(g2))=Vp(g2)

o(g1Vp(g1))=o(g1)Vp(g1)

因为 gcd(o(g1)Vp(g1),Vp(g2))=1 所以 o(g1Vp(g1)g2g2Vp(g2))=o(g1)Vp(g1)×Vp(g2)>o(g1)

o(g1)=max(o(g)) 矛盾,故 g2o(g1)

原根

  • g 是群 (Z,×) 的原根,有 (gk)1=gn1k 以及 gmgn=gm+n

  • (Zn,×) 的原根个数是 φ(n)1,可以通过构造同构的加法群得到此结论。

置换群

  • Burnside 引理:A,B 为有限集合,XAB 的映射组成的集合,GA 上的置换群,X 中映射在 G 的置换下封闭,|XG|X 中映射的等价类数量,Xg={x|xX,g(x)=x},有:

|XG|=gG|Xg||G|

前言

一些对数学知识的整理。

逻辑

基本的就不说了,放在下面一起看:

  1. 基本符号的认识: 表示或者, 表示并且。
  2. 充分不必要:pqqp
  3. 必要不充分:pqpq
  4. 充分且必要(充要):pq
  5. 不充分且不必要:pq
  6. 全称量词,意表任意,一切:
  7. 存在量词,意表存在一个,至少一个:

然后就是命题的分类:

  1. 我们把复合命题简化成:若 pq 型。
  2. 逆命题:若 q,则 p
  3. 否命题:若 ¬p,则 ¬q
  4. 逆否命题:若 ¬q,则 ¬p

集合

集合的定义与符号:

  1. 集合元素有三个特征:确定性,互异性,无序性。
  2. 元素与集合的属于关系用
  3. 常见表示方法:列举法,描述法,图示法。
  4. 常见数集:N 表示自然数集,N 表示正整数集,Z 表示整数集,Q 表示有理数集,R 表示实数集。

然后集合与集合之间也有一些关系:

  1. xA,xB,则称 ABBAAB 的子集。
  2. ABBA,则称 A=B
  3. ABAB,则称 AB 的真子集。

集合的一些运算符号:

  1. 交集:若 xCxAxB,则 AB=C
  2. 并集:若 xCxAxB,则 AB=C
  3. 补集:若我们定义一个全集 U,则称 A 关于 U 的补集为:UA
  4. 我们常把 |A| 当作集合 A 的大小。

一些运算的性质:

一般来说,我们通常这么记忆:

  1. 交集和并集拥有交换律,分配律,集合律。
  2. 我们定义空集 为不包含任何元素的集合。

一些简单且基本的问题:

eg1. 如果有一个 |A|=x 的集合 A,那么它的子集数量是多少?

明显根据组合意义,每个数可以选或者不选,所以如果算上空集就是 2x 个。

映射

容斥原理:

|i=1nAi|=i=1n(1)i10j1<j2<...<jnn|Aj1Aj2...Ajn|

关键要看每个数字被计算了多少次,根据题目不同而不同。

然后讲一下映射:

对于两个非空的 A,B 集合,按照某种对应的关系,使得每个 xA 恰好对应上 yB,我们就称映射 f:AB

对于单射:如果是一一对应且没有多对一,那么称映射 f 为单射。

对于满射:如果对所有 B 中元素,都有一个或多个与之对应的 A 中元素,那么称 f:AB 为满射。

eg1. 构造一个映射,使 f:NZ,该怎么构造?

非常简单:f(1)=0,f(2)=1,f(3)=1,f(4)=2...,不难发现是正确的。

eg2. 构造一个映射,使 f:NQ,该怎么构造?

由于 xQ,(p,q),使的 gcd(p,q)=1,pq=x。令 00=0

eg3. 构造一个映射,使 f:NR,该怎么构造?

发现根本不可以,因为一个小数的位数是无限的。

证明:假定我们已经存在了这样一个 f。我们构造一个数列 {f(x)},然后构造 a=0.b1b2b3,其中 bkf(k)k 位不同。则不存在 xZ+,f(x)=a。不满足满射性质。

eg4. 现在你有 1000 瓶药水,请问至少多少次能试到有毒的?

答案是 10 次,我们把药水按照二进制分解,把每位为 1 的拿出来测,只需 10 次就可以测出全部。

eg5. 错排问题,每个人分到和子集不同的位置上,请问有多少种方案?

显然就是全排列减去一个位置对的加上两个位置对的...

根据容斥原理我们得到:

i=0n(1)!×Cni×(ni)!

答案为 1x2!+x23!+...+/xn1n!,然后发现和 e1 的计算公式很像,所以得出公式 Dnn!e,误差为 1n+1

计数问题

接下来讲一下简单计数:

  1. Anm 表示从 n 个不同元素里选出 m 个元素,记顺序。
  2. Cnm 表示从 m 个不同元素里选出 m 的元素,不记顺序。

根据组合数的基本理解得出递推公式:

  1. Anm=m!(nm)!
  2. Cnm=Anmn!

然后关于组合数还有五个很重要的性质需要记住,可以不证明,但是一定要记住,最好是理解的记忆:

  1. Cnk=Cnnk,组合数的对称性。
  2. i=0nCni=2n,这个是集合的子集数量。
  3. Cn0+Cn2+Cn4+...=Cn1+Cn3+Cn4+...,偶数项等于奇数项。
  4. Cnk=Cn1k+Cn1k1,经典组合意义证明组合数递推式。
  5. Cnk=nkCn1k1,Cnk=nk+1kCnk1,拆式子。

有个很经典的方法叫做插板法:

对于要计算数,往往直接计算不好搞,所以我们采用插板法,往每个空插个板,依具体情况做变化,比如两个板能否插在同一个空里,要如何计算之类的,有的时候需要把问题进行转换,这样能用插板法解决问题,而如果有 n 个元素 m 个板子,那么方案数就是 Cnm

如果要看详解建议移步:Link

然后介绍一下几种特殊的数:卡特兰数,第一类斯特林数,第二类斯特林数,Bell 数。

首先我们介绍斯特林数,往往有如下问题:

  1. 在一个圆圈上有 2n 个点,你要把 n 个点两两连接且线不相交的方案数。
  2. 需要构造序列 a,使得 ai(1in),ai{1,1}i(1in),j=1iaj0
  3. 给你一个 n×n 的矩阵,要求不跨过对角线的情况下走到终点有多少种方案数。

这里先不说推导过程,直接说结论。

以上三种问题的答案都是卡特兰数,卡特兰数地推公式如下:

Hn=i=0n1HiHni1

其通项公式为:

Hn=C2nnC2nn1

如果需要求证移步 OI-Wiki。

然后介绍第一类斯特林数,其定义如下:

第一类斯特林数,记为 s(n,k),表示将两两不同元素,划分为 k 个互不区分的圆排列,其递推公式如下:

s(n,k)=s(n1,k1)+(n1)s(n1,k)

边界是 s(n,0)=[n=0]

如果想要证明这个公式我们需要用到组合意义:

  1. 新的一个元素放在一个新的圆排列中,方案数为 s(n1,k1)
  2. 将该元素插入到当前任意一个轮换中,方案数为 (n1)s(n1,k)

但可惜的是,第一类斯特林数并没有特别好用的通项公式。

接下来讲解第二类斯特林数,定义为:

第二类斯特林数,记作 S(n,k),表示将 n 个两两不同的元素,划分为 k 个互不区分的子集,其递推公式如下:

S(n,k)=S(n1,k1)+kS(n1,k)

我们仍然可以用上述的组合意义来理解这种递推,庆幸的是,第二类斯特林数有通项公式,如下:

S(n,k)=i=0k(1)kiini!(ki)!

具体证明参考 OI-Wiki 上的二项式反演。

接下来是 Bell 数,定义为:

Bell 数表示为 Bn,表示的是一个 n 个元素的集合不同的划分方式。

Bell 数具体递推公式:

Bn+1=k=0nCnkBk

具体参考 OI-Wiki 上的组合意义理解与感性证明。

根据 Bell 数的定义不难发现其还有一个关于第二类斯特林数的递推,为:

Bn=k=0nS(n,k)

在 OI-Wiki 上可以通过 O(n2) 的 Bell 三角形或者多项式 exp 解决。

以上内容部分参考 OI-Wiki,如有侵权,请通知作者。

基本数列问题

  • 等差数列:形如

an+1=an+C

的序列称为等差数列。

  • 等比数列:形如

an+1=Can

的数列称为等比数列。

  • 等差数列求和公式:Sn=12n(a0+an)
  • 等比数列求和公式:Sn=a1(1Cn1C(C1)
  • 求和符号:

i=1nai=a1+a2++an

  • 重命名性质:

i=1nai=j=1naj

  • 累加性质:

i=1nai=i=1mai+i=m+1nai(m<n)

  • 线性性质:

i=1nkai=ki=1nai

  • 交换顺序性质:

i=1nj=1mai,j=i=1mj=1naj,i

  • 平方和公式:

i=1ni2=16n(n+1)(2n+1)

  • 立方和公式:

i=1ni3=(i=1ni)2

Abel 恒等式

i=1naibi=Snbni=1n1SiΔbi

其中 Si=k=1iak

Proof:你考虑一个性质:ΔS=a。根据这个性质,我们可以:

=i=1naibi=i=1nΔSi1bi=i=1nSibiSi1bi=Snbn+i=1n1SiΔbi

数学归纳法

  • 数学归纳法:已知 f(a0)=1。已知 f(an1)=1,证明出 f(an)=1,即可证明 i,f(ai)=1
  • 第二归纳法:已知 f(a0)=1。已知 f(a0),f(a1),,f(an1)=1。证出 f(an)=1。即可证明 i,f(ai)=1
  • 还有一种向前向后的归纳方法,通常用于证明均值不等式成立。

证明平方和公式:

i=1ni2=16n(n+1)(2n+1)

  • 首先显然当 n=1 时上式成立。
  • 然后已知 n=k 时上式成立,则需要证 n=k+1 时上式成立。

i=1k+1i2=i=1ki2+(k+1)2=16k(k+1)(2k+1)+(k+1)2=(k+1)(k+1+16k(2k+1))=(k+1)(k+1+13k2+16k)=16(k+1)(2k2+7k+6)=16(k+1)(k+2)(2k+3)

  • n=k+1 上式成立。证毕。

证明立方和公式:

i=1ni3=(i=1ni)2

  • 等价于证明:

i=1ni3=14(n+1)2n2

  • n=1 时上式显然成立。
  • n=k 时成立,则需证明 n=k+1 时亦成立。证明如下:

i=1k+1i3=i=1ki3+(k+1)3=14(k+1)2k2+(k+1)3=14((k+1)2k2+4(k+1)3)=14(k+1)2(k2+4k+4)=14(k+1)2(k+2)2

  • 所以 n=k+1 成立。证毕。

证明均值不等式:

1ni=1nxii=1nxin

  • 先证明 n=2 时成立。
  • 然后需要先证明已知对于 n=2k,kZ+ 成立,n=2k+1 成立:

12k+1i=12k+1xi(2k)2i=12kxi2k(2k)2i=2k+12k+1xi2k2k+1i=12kxi2ki=2k+12k+1xi2ki=12k+1xi2k+1

  • 再证明对于 n=m 时成立,则 n=m1 时成立:

1m1i=1m1xi=1m(i=1m1xi+1m1i=1m1xi)i=1m1xi(1m1i=1m1xi)m(1m1i=1m1xi)m1m(i=1m1xi)m1m1i=1m1xii=1m1xim1

博弈论基础

  • 本章内容仅涉及 公平组合游戏
  • 定义一名玩家执行操作后,状态为 x。第二名玩家执行操作后,状态为 y。则称 yx 的后继状态。
  • 达成胜利的状态称为第一制胜点。
  • 存在后继状态为制胜点的状态称为必败点。所有后继状态均为必败点的状态称为制胜点。
  • 可以通过数学归纳法尝试证明所有制胜点 / 必败点的状态规律。来归纳出必胜策略。

递推计数

  • zyb 是一个巨佬。zyb 一天要么切一道 Ynoi,要么切两道 Ynoi。问 zyb 恰好切完 n 道 Ynoi 的安排方案数 fn

fn=fn1+fn2

  • zyb 一天可以切任意正整数到 Ynoi,但不能剩下质数道 Ynoi 没切。问 zyb 恰好切完 n 道 Ynoi 的安排方案数 fn

fn={0nPi=0n1fiotherwise

  • Hanoi 塔问题。an=2an1+1
  • 递推转通项问题,往往问题如果是关于 nn1 可以通过待定系数法平移或者使用除法变成等差数列或者通过倒数变成等比数列,如果形如 pan+qan1+wan2=0,那么设 x1,x2px2+qx+w=0 的两个根,则通项公式为 an=x12+x22x1+x2

错位排列

这个问题在上面仍然讲过,下面是详细证明。

  • Dn 表示随机生成一个长度为 n 排列 A,满足 1in,AiBi 的长度为 n 的排列 B 的数量。
  • Dn 的通项公式:

Dn=i=0n(ni)(1)i(ni)!=i=0n(1)in!i!(ni)!(ni)!=n!i=0n(1)i1i!

对于第一步,由于 n!=i=0n(ni)Dni=i=0n(ni)Di,所以可以用二项式反演得到。什么容斥不存在的。

  • Dn=round(n!e)。其中 round(x) 表示 x 四舍五入到个位后的值。

f(x)=ex Maclaurin 展开(其实说 Taylor 展开不是很严谨),得:

f(x)=i=0xii!

x=1,得 e1 的级数形式:

i=0(1)i1i!

下面证明误差 0.5

(n!)e1Dn=n!(i=0(1)i!1ii=0n(1)i1i!)=n!i=n+1(1)i1i!=i=n+1(1)in!i!

通过 Wolfram Alpha 可得上式绝对值 0.5n>2。满足 nN 成立。

  • Dn 的递推公式:Dn=(n1)(Dn1+Dn2)

递推与归纳一节参考(copy)xiezheyuan 巨佬的笔记,侵权紫衫。

posted @   Diavolo-Kuang  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示