pdf 版本的题目表

记号和声明.

问题难度解释.

基础部分

主要关于组合数。

5.[2]

问题.

分别求满足如下条件的有序列表 (S1,...,Sk) 的数量,其中 Si 皆为 [n] 的子集。

  • S1...Sk
  • Si 两两不交。
  • S=

解答.

第一问:容易建立从 {1k+1}[n] 到指定集合的双射:f(i) 表示第 i 个元素首次出现是在 Sf(i)f(i)=k+1 表示从未出现。

第二问:显然可以建立到第一问的双射:SiSi/Si1

第三问:显然可以建立到一组 S=[n] 的集合的双射:Si[n]/Si。而后者可以按和之前类似的方法建立到 ([k])[n] 的双射。

开胃小菜,没啥好说的。

话说这不应该是 [1]?

12.[2-]

问题.

证明

k=0n(x+kk)=(x+n+1n)

不妨假定 x 为正整数。(因为等式两边都是关于 x 的有限次多项式,证明了正整数的情况也就证明了一般情况)

解答.

考虑集合 C([x+n+1],n),我们的目的是将其元素 S 用如下二元组描述:(k,S),其中 SC(x+k,k)

这一双射是显然的,我们只需要令 nk 等于 S 中末尾那一长串 1 的长度,S 为剩下的 [x+k] 的情况。注意 S(x+k+1) 必定为 0,不需要也不能用 S 描述。

13.[3]

问题.

证明

k=0n(2kk)(2(nk)nk)=4n

解答.

注意到 (2nn) 是从 (0,0) 走到 (n,n),每一步只能向上一步或是向右一步的方案数(该双射是显然的)。

于是等式右边可解释为:从 (0,0) 开始走 2n 步,不限目的地的方案数。一个方案可以双射到三元组:(k,S,T),其中 S 是一条从 (0,0)(k,k) 的路径,T 是一条从 (0,0) 开始走 2n2k 步且除了 (0,0)从未触碰 y=x 的路径。换句话说,k 标记出了它最后一次触碰 y=x 的位置。

我们只需要说明,T 的数量为 (2(nk)nk)。这一部分的说明不是我的解法而是来自于这里

长度为 2n 的所有路径可被分为 4 类:

  • T 的一员
  • S 的一员
  • 触碰过 y=x 并在最后处在 y=x 右方
  • 触碰过 y=x 并在最后处在 y=x 上方

显然,第一步往右走的第三类和第一步往右走的第四类数量相等,往上走亦然。关键之处在于,第一步往右走的第四类和第一步往上走的第三类是极易考虑的:它们的定义保证了它们必然触碰过 y=x,不需要再做考虑。

剩下只是一些处理组合数的工作,略去不谈。

有趣的是一位老哥头铁地直接构造了一个从 ST双射

14.[3-]

问题.

证明

i=0min(a,b)(x+y+ii)(yai)(xbi)=(x+ab)(y+ba)

解答.

不妨改为证明

i=0min(a,b)(x+y+ix,y,i)(yai)(xbi)=(x+yx)(x+ab)(y+ba)

左式可以化为这样一个模型,你在一个 4 维网格上走动,每次可以选择

  • (0,1,0,1)
  • (1,0,0,0)
  • (1,1,0,0)
  • (0,0,1,0)
  • (0,0,1,1)

之一,最后走到 (x,a,y,b)。求总方案数。

当然也可以看成,往四个可区分的盒子里放任意多个有标号的球,要求第二个盒子和第三个球数之和为 x,第一个和第三个为 a,第一个和第五个为 b,第四个和第五个为 y

然后到这里我就做不下去了……还是 EIls 靠谱。

其实和上面的思路是一样的,但是 EIls 的解释确实更容易联系到右式。剩下的工作已经很显然了。

15.[3-]

问题.

证明

k=0n(nk)2xk=k=0n(2nknk,nk,k)(x1)k

解答.

等式左边可理解为三元组 (S,T,f),其中 S,T[n] 且大小相等,f 是从 S[x] 的映射。

右边则可理解为三元组 (S,T,f),其中 S[n]TC([2n]/S,n)f 是从 S[x1] 的映射。

如此构造映射 (S,T,f)(S,T,f)

S=f1([x1])

f 自然是 fS 上的限制;

T[n] 的部分为 [n]/S,在 [n+1....2n] 的部分为 T 平移到此处。

16.[3-]

问题.

证明

i+j+k=n(i+ji)(j+kj)(k+ik)=r=0n(2rr)

解答.

不会,贺了题解。

左式可理解为如下三元组 (α,β,γ) 的数量:

  • α 是一个以 a 开头以 b 结尾的字符串,恰有 i+1aj+1b
  • β 是一个长度为 j+1 的正整数序列且和恰为 j+k+1
  • γ 是一个长度为 i+1 的正整数序列且和恰为 i+k+1

做如下映射:

  • α 的第 ia 替换为 cγid,第 ib 替换为 dβic。其中 cr 表示 rc
  • 此时 α 必以 c 开头,以 d(dc)r(满足该形式的后缀显然是唯一的)的形式结尾。删掉它们。

这构建了一个从左到右的双射。(其逆并不非常复杂,留给读者)

就离谱,这双射是人能想出来的?建议评分 [3+]

66.[*]

问题.

证明,

(2m)!(2n)!m!n!(m+n)!

总是整数。

解答.

这个问题在 2014 年得到了解决

置换和循环

排列 / 置换显然是一个重要的话题:没有排列 / 置换我们就无从描述一大类等价。

教程关:置换和循环.

问题.

给出序列 (c1,c2,...,cn)。证明,有 c1 个长度为 1 的循环,有 c2 个长度为 2 的循环,……,的 [n][n] 的置换的数量为

(nc1,c2,...,cn)i1ici

解答.

记问题描述中的所有置换构成集合 S[n]c,这种置换称为类型为 c 的置换。

故而只需要证明

n!=#S[n]ciicici!

首先我们先展示一个从 S[n] 到自身的双射,被称为基本双射。ctrl+F 搜索本网页的“基本双射”,你就会知道为何它配得上如此称号。

w 的所有循环写为以其最大元素开头,称为代表元素,然后以代表元素的大小排列各循环。最后删掉括号。

例:w=4271367=(14)(2)(375)(6) 会被映射到 2416753

我们有一个显然的 S[n]S[n]c 的映射:把它开头的 c1 个元素每个套上一个括号,剩下部分开头的 2c2 个元素每 2 个套一个括号……。我们只需要说明一个类型为 c 的置换的原像大小总是 iicici!

先从任意一个原像出发。首先我们可以任意排列长度相等的循环,然后每个循环还可以旋转,显然这样生成的所有排列两两不同,于是便得证了。

51.[3]

问题.

D(n)n 的错排数,证明:

D(n)=nD(n1)+(1)n

解答.

比较复杂,参见:A bijective proof of a derangement recurrence

57 && EC 117.[2+]

问题.

[n] 的所有排列中等概率随机一个排列 w,求 1 所在循环大小为 k 的概率。

解答.

答案为:与 k 无关,皆为 1n

我们考虑把一个循环转变为,把 1 所在循环固定在其首位且以 1 为代表,剩下的部分遵从基本双射接在其后。容易发现对于任意确定的 k,上述映射构成了从 1 所在循环大小为 k 的排列到 [n1] 的排列的双射。

EC 120.[2+]

问题.

Ek(n)[n] 的排列中长度为 k 的循环数量的期望。证明,Ek(n)=1k

解答.

由 117 直接得 Ek(n)=1ki=1P(ik)=1k

58 && EC118.

问题.

  • (a)[2] 令 w[n] 的随机排列,证明,1,2 在同一个循环的概率为 12
  • (b)[2+] 推广 (a) 至下面的结论:1,...,λ1 在同一个循环,λ1+1,...,λ1+λ2 在和 1,...,λ1 不同的另一个循环,……,一直到 λ,其出现概率为
Pλ=(λ1)!(λ)!
  • (c)[3-] 描述同 (b),但是 w[n]偶置换中选取。证明概率为
Qλ=(λ1)!(2+λ)!(1(λ1)λ+(1)nl(n1)n)

解答.

对于 (a),解法是显然的。

  • 构造双射为交换 w1w2。它把 1,2 在同一个循环的排列双射至 1,2 不在同一个循环的排列。

对于 (b),我们还是考虑基本双射。为了方便稍稍修改其为:把最小的元素固定为循环开头,把循环按最小元素降序排列。

  • 回忆 (a)。满足 (b) 的条件等价于 12 之前出现。

  • 思考如何扩展到此处:只需要:

    • 2,...,λ 皆在 1 之后出现;
    • λ1+2,...,λ1+λ2 皆在 λ1+1 之后出现;且 λ1+1,...,λ1+λ2 皆在 1 之前出现;
    • ……
  • 剩下的工作已经显然了。

对于 (c),我们做如下考虑。

  • w 在基本双射下的像为 v,我们来证明,vv=(v2,v1,v3,v4,....,vn) 恰有一个奇置换和一个偶置换。

    • v,v 中必然有一个满足 v1,v2 在同一个循环,另一个满足:v1,v2 之一自成循环,另一个还在原来的循环里。于是交换 v1,v2 反转了后者所在循环的长度奇偶性,也就反转了整个置换的奇偶性。
  • 除此之外,若 v 满足条件,则

    • 要么 v 也满足条件;
    • 要么 v2=λ1+...+λ1+1v2<v1λ
  • 剩下的部分已经显然了。

76[2] && 77[3].

问题.

证明:

  1. [2] 环长皆能被 k2 整除的 [n] 的排列的数量为
i=1n(ni+[k | i])
  1. [3] 环长皆能被 k2 整除的 [n] 的排列的数量为
i=1n(i[k | i])

解答.

对于 76 只需要做如下考虑:

  • 首先决定 w(1),这有 n1 种选择(不能连回 1)。
  • 然后决定 w(w(1)),w(w(w(1)))……,分别有 n2,n3……种选择。
  • 直到我们试图决定 wk(1),这时我们除了 nk 种选择之外还有一种可能:连回 1。如果选择连会 1,这之后我们从第一个尚未决定的 w(i) 开始继续流程。

显然每一步的选择数量和之前的选择完全无关,而上述流程显然是可逆的,从而它是一个从所有描述的排列到 i=1n(ni+[k | i]) 的直接双射。

对于 77……我所能找到的唯一一份文献复杂得离谱,而我根本找不到别的做法。实在是没办法了。

置换和等价类

等价类的研究和应用。

18.[3]

问题.

证明,当 n 为质数时,下面两个集合的元素个数相等。

  • 所有满足其和在模 n 意义下为 0[0...n1] 的子集
  • 所有有 n 个珠子的黑白项链在旋转变换下的等价类

解答.

我们来证明两者皆是 2(n1)+2nn

后者比较显然。

取所有等价类,考虑其在所有旋转下的像(×n),这个集合“几乎”是 [2][n]

  • 显然两个不同等价类形成的像不会相同
  • 但是一个等价类的像可能和同一个等价类的另一个像相同,由于 n 是质数,这种情况只在该项链全黑或全白时出现,减掉即可

稍微扩展一下便是 Burnside 引理的一个组合证明。

再来考虑前者。

考虑所有大小为 i 的集合。考虑这样一个映射:把集合中所有元素加上 1 再取模。

i0in 的普通情形下这是一个从所有大小为 i[0...n1] 的子集回到自身的双射。且和为 d 的集合总会被映射到和为 d+imodn 的集合,从而它们的元素个数相等。即两两

只是在 i=0i=n 时不成立,特判即可。

原题要求证明任意奇数的情况,所以评到了 [3]。原话:This is easy if n is prime.

被 D 傻了(悲)

UPD 2020/12/17:找到了一份对珠子颜色数为 qn,q 互质的一般情况的双射为什么近年来发数数论文的看名字全是中国人或华裔,难道这是血统加成?

21[2].

问题.

证明如果 p 是质数,apa 在模 p 意义下为 0

解答.

大体思路是,选取一个大小为 apa 的集合,然后将其分为数份,每份大小均为 p

一个显然的想法是令 S 为所有 [a][p] 中值不全相同的映射。

相信读者对 18 一定还有印象,于是一个显然的分组是把所有循环同构的映射分为一类。

22.a.[2]

问题.

证明,如果 p 是质数,那么 (2pp)2p2 整除。

解答.

构造集合 S 为所有从 (0,0) 开始,每次可往右或往上走一步,走到 (p,p),且不完全贴着边框走的方案数。

于是只需要把对前 p 步的右-上序列施以循环变换,后 p 步施以一个独立的循环变换:在这种意义下同构的序列被分为一组。每组大小皆为 p2,得证。

下面是一道我自己加的题目。

EXTRA-1.[2]

问题.

建议阅读这个课件或对生成函数有一定了解后再来尝试此题。

记组合类 G 由所有无序列表 g=(f1,f2,...) 构成,记其长度为 (g)。其中 f 皆是组合类 F 中的元素。

证明

gGixtfi=exp(i=1xiifFtfi)

其中 tf,x 皆是形式幂级数变元。

这个定理是欧拉变换的加强版:普通的欧拉变换就是它取 tf=y|f|,x=1 的特殊情况。

解答.

首先,由于 exp 在有标号计数中体现出的组合意义(如果要精确描述势必会极占篇幅,所以干脆不描述了,想必读者在阅读完课件之后肯定能独立研究出),我们希望两边都可以写成指数生成函数的形式。

具体来说,把左式强行写成:

n1n!Gnxnn!

其中 Gn=(g)=nitfi。于是左式可解释为:枚举了所有无序颜色列表 g 和一个排列 w 组成的有序对。

右边则可这样考虑:

  • i=1(i1)!xii! 可解释为所有循环。
  • 考虑 exp 的组合意义,循环的 exp 自然就是排列。
  • 那么右边可以解释为有序颜色列表 h 和一个排列 v 组成的有序对,且 v 中每一个循环中的所有位置必须是同样的颜色,且每有一个位置的颜色为 f 就附带 tf 的权值。

最后,我们考虑基本双射就可得到左右式之间的双射。具体对本题来说:考虑排列 w,将其按 g 染色,然后逆向使用基本双射。显然这个变换是保权值的,于是我们便证明了原定理。

排列上的统计(statistics)

一个排列可能有极多的特征,其中一些特征神奇地有着极其紧密的联系。

教程关:逆序对,Descents,和 Major index(上)&& 70.

定义.

  • 逆序对对我们而言是很熟悉的。一个排列的逆序对数记为 inv(w)
  • 一个排列(准确来说可直接推广至元素不重复的序列)的 Descents(可译为“下降”)Set 是集合 D(w)={wi>wi+1,i[n1]}
  • maj(w)=iD(w)i

问题.

证明,inv maj 是等分布(equidistribution)的。换句话说

#{wSn,inv(w)=k}=#{wSn,maj(w)=k}

此处的证明并不是完全双射的,A direct bijective proof would be of great interest.jpg,这种类型的双射被称为 recursive bijection,即构造长度为 n 时的映射需要使用长度为 n1 时的映射。

解答.

下面构造双射 ϕ:{wSn,maj(w)=k}{wSn,inv(w)=k}

v=ϕ((w1,w2,...,wn1))

v 的基础上如此构造 ϕ(w)

  • 如果 wn1<wn

    • ϕ(w) 中所有小于 wn 的位置后面切一刀。
    • 把所有部分向右循环移一位。
  • 否则,

    • ϕ(w) 中所有大于 wn 的位置后面切一刀。
    • 把所有部分向右循环移一位。
  • 最后令 ϕn(w)=wn

ϕ 显然是可逆的。

接下来我们来展示,maj(w)=inv(ϕ(w))

n=1 显然成立。

归纳假设:maj((w1,w2,...,wn1)=inv(v)

wn1<wn,我们来证明上面描述的操作恰会使 v 的逆序对数不变。

  • 首先我们不必考虑不同部分之间的影响,因为它们之间根本没有相对位置改变。
  • 旋转前的某个长为 l 的部分一定是由 l1>wn 的元素和一个 <wn 的元素构成的。循环移位会使之失去末尾元素与其他所有元素的逆序对,即 l1
  • 对所有部分求和即 n1#{i:wi<wn}=#{i:wi>wn}。恰和插入 wn 代来的影响抵消。

不再赘述 wn1>wn 的部分,这和上面的证明完全一样。

教程关:逆序对,Descents,和 Major index(中).

定义.

ID(w)=D(w1)。对于 w 并非排列的情况必须稍稍声明一下:只需要认为序列 (w1,w2,...,wn) 描述了函数 f(minw)=w1,...,f(maxw)=wn 即可。

问题.

证明,上文的 ϕ 是保 ID 的。也即 ID(w)=ID(ϕ(w))

解答.

事实上,ID 还可如此解释:

  • 找到 w 中的 1,然后往后查找找 2,之后找 3……如果根本不存在就跳过。
  • 如果找到了 n 便立即结束。
  • 每当没找到(即下一个元素的位置小于刚读的元素的位置)便把当前已经找到的元素个数写下并回到 w 的开头。写下的集合便是 ID(w)

该解释(下称为阅读过程)和 ID 的基础定义显然是直接一致的。不过它的确更直观。

下面我们开始证明原命题。

n=1 显然成立。

归纳假设:ID((w1,w2,...,wn1))=ID(v)

当然我们还是要分 wn1 是否小于 wn 来讨论。

wn1<wn

  • 显然 wϕ(w) 在读到 wn 之前的行为都是完全一致的:这部分有没有 wn 没区别。
  • 则我们读到第一个小于 wn 的元素后(这个元素总是存在,毕竟有 wn1)一定能读到 wn,这时我们会回到序列的开头。对于 ϕn(w) 也是如此。我们还需要核对接下来的行为。
  • 注意到 ϕn(w) 根本没有改变 wi>wn 的元素之间的相对顺序,于是便得证了。

而若 wn1>wn,注意到阅读是可反向的(这不是说可逆,而是说我们从 n 开始反向查找得到的结果相同),我们反着读即可。

教程关:逆序对,Descents,和 Major index(下)&& 71.

定义.

imaj(w)=maj(w1)

问题.

证明,inv maj imaj 是两两交对称分布(symmetric joint distribution)的。换句话说

#{wSn,inv(w)=j,maj(w)=k}=#{wSn,inv(w)=k,maj(w)=j}
#{wSn,inv(w)=j,imaj(w)=k}=#{wSn,inv(w)=k,imaj(w)=j}
#{wSn,maj(w)=j,imaj(w)=k}=#{wSn,maj(w)=k,imaj(w)=j}

解答.

我们首先来说明 majimaj 是交对称分布的:显然映射 ww1 可反转 majimaj

ϕ 是保 ID 的,故当然是保 maj 的。于是便立即得证。

63.[2+] && 64.[2-]

问题.

  1. 定义一个排列的 excedancewi>i 的位置的数量。证明,excedance 的数量和 descents 的数量是等分布的。
  2. 证明,一个排列的 weak excedancewii 的位置)的数量满足
#{wSn,wexc(w)=k}=#{wSn,des(w)=k1}

解答.

考虑 w 在基本双射下的像 w。容易发现,w(i)<w(i+1) 当且仅当:

  • w(w(i))w(i+1)w(i) 是循环的结尾)
  • w(w(i))=w(i+1)w(i+1)>w(i)

也就等价于,w(i)w(w(i))

而反过来说,w(i)w(w(i)) 当且仅当 w(i)<w(i+1)i=n

总结:

ndes(w)=wexc(w)

至此我们证明了,

#{wSn,wexc(w)=k}=#{wSn,des(w)=nk}

注意到 reverse 整个序列会使 des(w)n1des(w),我们已然证明了 64。

至于 63 也很显然,我们只需要考虑双射 ϕi(w)=n+1wn+1i,它使得

nwexc(w)=exc(ϕ(w))

教程关:Descents 和 w- 兼容性(compatibility)(上).

定义.

称函数 f:[n]Nw- 兼容的,如果:

  • f(w1)f(w2)...f(wn)
  • 若有 wi>wi+1 则必须有 f(wi)>f(wi+1)

问题.

证明,任意函数 f:[n]N 总是与且只与某个排列兼容。

解答.

首先我们可以靠值把 f 分成数段。

考虑段 f(i1)=f(i2)=...=f(i)。显然,{i1,i2,...,i} 是一段连续的 {wl,wl+1,...,wr}。我们又注意到段内 wi<wi+1,这便构造了一个唯一的与 f 兼容的排列。

教程关:Descents 和 w- 兼容性(compatibility)(下).

定义.

  • A(w)={f:[n]N,f  w}
  • Am(w)={f[n][m],f  w}

问题.

(a) 证明,

#Am(w)=(m+n1des(w)n)

(b) 证明,

fA(w)xi=1nf(i)=xmaj(w)(1x)(1x2)...(1xn)

解答.

(a) 只需要:对于每个 wi>wi+1 的位置,把 1i 的函数值全 1,便得到了一个和 mdes(w)g(w1)g(w2)...g(wn)1 的函数的双射,剩下的工作已经显然了。

(b) 类似 (a),我们建立到 g(w1)g(w2)...g(wn)0 的双射,同时显然有

i=1nf(i)=maj(w)+i=1ng(i)

接着考虑 1(1x)(1x2)...(1xn),它其实是一个经典 trick,建立了从 An=k(w)An=k(w)An=k1(w) 的双射:

  • 要么末尾元素为 0,删掉这个元素。
  • 否则把序列中所有元素 1

11xk 中的 k 其实就是上述过程中的 k,展开时从中选取的项 xjk 就代表了在长度为 k 时进行了 j 次全部 1

65.[3-]

问题.

A(n,k)=#{wSn,wexc(w)=k}

证明:

n0nkxn=i=1kA(k,i)xi(1x)k+1

解答.

我们只需要证明,

nk=i=1kA(k,i)(k+nini)

左边的 nk 暗示我们考虑 [n][k],联系到教程关(上),我们容易写出

nk=wSk#An(w)

应用教程关(下)便得证了。

此题在 bijective proof problems 中出现时几乎没有给出关于 w- 兼容性的介绍(只给了一个简短的 note 介绍定义),故评到了 [3-]。

多重集的排列

为了研究划分我们必须先介绍一下。

教程关:多重集排列.

定义.

  • (n)!1q1q1q21q1qn1q
(na1,a2,...,am)=(n)!(a1)!(a2)!...(am)!

注意类似于组合数的记号是有一定原因的,比如有

(nk)=(n1k)+qnk(n1k1)

注意当 q=1 时这个记号回到正常的组合数。所以这个记号被我们叫做组合数的 q-模拟。q-模拟当然是有其价值的,但那就是另一个故事了。这里我们只是借用一下它的符号。

另外,类似于正常的组合数,q-模拟组合数 (nk)​ 可解释为 Fqn​ 中 k​ 维线性子空间的数量。

  • 定义多重集 M(其中有 aii,整个多重集也记作 {1a1,2a2,....,mam})上的排列为 |M|m 的函数,且函数值中恰好有 aii
  • 澄清:我们定义多重集排列的逆序对为 i<j[wi<wj]

问题.

证明

wSMqinv(w)=(na1,a2,...,am)

解答.

我们有双射 ϕ

SM×S[a1]×S[a2]××S[am]ϕS|M|(w0,w1,w2,...,wm)ϕw

其内容为,若 w0(i) 是第 jw0(i),则令 w(i)=ww0(i)(j)+d<w0(i)ad

注意到有 inv(w)=inv(w0)+inv(w1)+...,于是就得证了。

to be continued...