711 lines
26 KiB
Typst
711 lines
26 KiB
Typst
#import "template.typ": *
|
||
#import "lib.typ": *
|
||
|
||
#show: project.with(
|
||
title: "杂题选讲",
|
||
)
|
||
|
||
#pagebreak()
|
||
|
||
#align(center,
|
||
table(
|
||
columns: 6,
|
||
stroke: none,
|
||
..for (name, fig) in (
|
||
"组合": combinatorics_icon,
|
||
"代数": algebra_icon,
|
||
"分析": analysis_icon,
|
||
"数论": number_thoery_icon,
|
||
"几何": geometry_icon,
|
||
"数理逻辑": logic_icon
|
||
) {
|
||
(stack(dir:ttb, fig, box[
|
||
#set text(10pt)
|
||
#name
|
||
], spacing: 4pt),)
|
||
}
|
||
)
|
||
)
|
||
|
||
#let problem_type = state("problem_type", ())
|
||
|
||
#show heading.where(level: 1): it => {
|
||
problem_id.step()
|
||
footer_title.update(it.body)
|
||
block(width: 100%)[
|
||
#place(
|
||
right + top,
|
||
dx: -5pt,
|
||
dy: -5pt,
|
||
stack(
|
||
dir: ltr,
|
||
spacing: 4pt,
|
||
..for t in problem_type.at(it.location()) {
|
||
(t,)
|
||
}
|
||
)
|
||
)
|
||
#set text(font: cnfont)
|
||
#block[
|
||
#set text(weight: "extralight", 40pt)
|
||
\##problem_id.display("1")
|
||
]
|
||
#block(stroke: (bottom: 15pt + rgb("B3E5FC"),), inset: -2pt)[
|
||
#set text(weight: "light", 30pt)
|
||
#h(10pt)
|
||
#it.body
|
||
]
|
||
#v(20pt)
|
||
]}
|
||
|
||
#pagebreak_until_odd()
|
||
#[] <MainStarted>
|
||
#problem_type.update((combinatorics_icon,))
|
||
= 随机游走的左端点
|
||
|
||
一个长度为 $n$ 的由 $-1$ 或 1 构成的序列 $a$,其中 1 的个数为 $c$ 个。我们称一个子区间合法是指该子区间的数的和大于等于 0。求证:所有合法子区间的左端点的数量不超过 $2c$ 个。
|
||
|
||
== 提示
|
||
|
||
子区间是指序列中连续的一段,形式化地说,问题是求证:
|
||
|
||
$ abs(lr({l in NN[1..n] : exists l in NN[l..n],(sum_(k=l)^r a_k)>=0}))<=2c $
|
||
|
||
举个例子,若 $n=8,c=3$,序列 $a$ 为
|
||
|
||
$ -1,1,1,-1,-1,1,-1,-1 $
|
||
|
||
那么序列 $a$ 中所有合法子区间的左端点共有 5 个,为下面括号的位置
|
||
|
||
$ (-1),(1),(1),-1,(-1),(1),-1,-1 $
|
||
|
||
#pagebreak()
|
||
|
||
== 解答
|
||
|
||
对于某个序列 $a$,记 $S(a)$ 表示序列 $a$ 中所有合法子区间的左端点的数量。
|
||
|
||
如果 $a$ 存在一个 $-1$ 在一个 1 的后面,即存在下标 $i,j$ 满足 $i<j$ 且 $a_i=1,a_j=-1$,那么交换 $i,j$ 位置上的值后,得到一个新序列 $a'$,显然 $a'$ 中 1 的数量也为 $c$。
|
||
|
||
*引理* 进行上述变换后所有合法子区间的左端点的数量不降,即 $S(a)<= S(a')$ 一定成立。
|
||
|
||
假设上述引理成立,那么我们就只需要论证由 $n-c$ 个 $-1$ 开头,然后 $c$ 个 1 组成的序列 $b$ 满足 $S(b)<= 2c$,这是显然的。而对于任何其他序列,它们都可以通过有限次上述变换得到序列 $b$。
|
||
|
||
下面我们证明该引理成立,考虑序列 $a$ 的前缀和序列 $p$,
|
||
|
||
$ p_k=sum_(i=1)^k a_i $
|
||
|
||
那么左开右闭区间 $(l..r]$ 合法等价于 $p_r-p_l>=0$。设我们要交换序列 $a$ 中的 $i,j$ 位置,由于 $a_i=1$,所以 $p_(i-1)=p_i-1$ 。若某个位置 $k<i$ 本来某个合法区间的左端点,而交换 $i,j$ 位置上的值后它就不是了,那么一定有 $p_k=p_i$。
|
||
|
||
那么找出 $i$ 前面第一个 $p_k=p_i$ 的位置(如果有)后,$k$ 以前的左端点都不会改变,因为 $p_k=p_i$ 说明 $i,k$ 位置是等价的。这说明 $S(a)<= S(a')$。
|
||
|
||
#pagebreak_until_odd()
|
||
#problem_type.update((combinatorics_icon,))
|
||
= 取完全部球的时间
|
||
|
||
有 $n m$ 个彩色小球,其中有 $n$ 种不同颜色,每种颜色各 $m$ 个球。现在每次均匀地随机取出一个小球(取出之后不放回去),则期望上取出多少个球后可以取完某种颜色的球?
|
||
|
||
== 提示
|
||
|
||
容易发现相同颜色的球是否视为一样对答案没有影响。
|
||
|
||
在这个问题中,当有 2 种颜色,每种颜色有 3 个球时(即 $n=2,m=3$),符合题目要求的取球方案共 20 种,枚举如下:
|
||
|
||
#let colored_circle_stack(colors, size: 10pt, numbered: false, active_number: none) = box(
|
||
width: if numbered { (size * 2.5) * colors.len() - size / 2 } else {size * (1 + colors.len())},
|
||
height: size * 2,
|
||
for i in range(colors.len()) {
|
||
place(
|
||
left + top,
|
||
dx: if numbered { 2.5 * i * size } else { i * size },
|
||
circle(
|
||
radius: size,
|
||
stroke: if i + 1 == active_number {
|
||
2pt + theme_black
|
||
} else {
|
||
1pt + theme_border
|
||
},
|
||
fill: if colors.at(i) == "r" {
|
||
theme_red
|
||
} else if colors.at(i) == "b" {
|
||
theme_blue
|
||
} else {
|
||
black
|
||
},
|
||
if numbered {
|
||
[
|
||
#set align(center + horizon)
|
||
#set text(font: cnfont, white)
|
||
#(i + 1)
|
||
]
|
||
}
|
||
)
|
||
)
|
||
}
|
||
)
|
||
|
||
#figure(
|
||
table(
|
||
columns: 2,
|
||
align: center + horizon,
|
||
[3], {
|
||
colored_circle_stack("rrrbbb")
|
||
h(10pt)
|
||
colored_circle_stack("bbbrrr")
|
||
},
|
||
[4], {
|
||
colored_circle_stack("rrbrbb")
|
||
h(10pt)
|
||
colored_circle_stack("rbrrbb")
|
||
h(10pt)
|
||
colored_circle_stack("rbbbrr")
|
||
linebreak()
|
||
colored_circle_stack("brrrbb")
|
||
h(10pt)
|
||
colored_circle_stack("brbbrr")
|
||
h(10pt)
|
||
colored_circle_stack("bbrbrr")
|
||
},
|
||
[5], {
|
||
colored_circle_stack("rrbbrb")
|
||
h(10pt)
|
||
colored_circle_stack("rrbbbr")
|
||
h(10pt)
|
||
colored_circle_stack("rbrbrb")
|
||
h(10pt)
|
||
colored_circle_stack("rbrbbr")
|
||
linebreak()
|
||
colored_circle_stack("rbbrrb")
|
||
h(10pt)
|
||
colored_circle_stack("rbbrbr")
|
||
h(10pt)
|
||
colored_circle_stack("brrbrb")
|
||
h(10pt)
|
||
colored_circle_stack("brrbbr")
|
||
linebreak()
|
||
colored_circle_stack("brbrrb")
|
||
h(10pt)
|
||
colored_circle_stack("brbrbr")
|
||
h(10pt)
|
||
colored_circle_stack("bbrrrb")
|
||
h(10pt)
|
||
colored_circle_stack("bbrrbr")
|
||
}
|
||
),
|
||
caption: [枚举 2 种颜色,每种 3 个球时所有可能的 20 种情况]
|
||
)
|
||
|
||
容易看出,其中取出 3 个球后可以取完某种颜色的球的方案 2 种,取出 4 个球的方案 6 种,取出 5 个球的方案 12 种,故 $n=2,m=3$ 时的答案为
|
||
|
||
$ 2/20 times 3+6/20 times 4+12/20 times 5=9/2 $
|
||
|
||
#pagebreak()
|
||
== 解答
|
||
|
||
我们用记号 $bf(E)(a)$ 表示随机试验中变量 $a$ 的数学期望。已经取出的球的数量简称为时刻,例如“取出某种颜色全部球的时刻”的意思是“取出某种颜色全部球时已经取出的球的数量”。
|
||
|
||
我们考虑给同种颜色的球编上 1 到 $n$ 的编号,这样这 $n m$ 个球各不相同,显然是否编号这对答案没有影响。按某种顺序取出这 $n m$ 个球全部取出,有 $(n m)!$ 种取法。
|
||
|
||
考虑把取球序列翻转过来,则原问题可以转化为 *第一次取出每种颜色的球至少一个的时刻*。举个例子,若 $n=2,m=3$,考虑下面取出球的序列:
|
||
|
||
#figure(colored_circle_stack("rbrrbb", numbered: true, active_number: 4))
|
||
|
||
如图,在第 4 次操作后(图中加粗位置),红色的球被全部取出了,此时把取球序列翻转就得到:
|
||
|
||
#figure(colored_circle_stack("bbrrbr", numbered: true, active_number: 3))
|
||
|
||
如图,在第 3 次操作后,全部颜色的球都被取出了至少一次,注意到这里的第 3 个球就是反转前的第 4 个球(由于翻转位置发生了改变,具体而言位置 $p$ 会变到位置 $n m+1-p$)。
|
||
|
||
设 $S$ 表示每种颜色首次出现的时刻的可重集合,现在就是要求 $bf(E)(max S)$ 的值。根据容斥原理(min-max容斥),有
|
||
|
||
#[
|
||
#show: math_numbering
|
||
$ bf(E)(max S)=sum_(T subset.eq S,T eq.not nothing)(-1)^(abs(T)-1)bf(E)(min T) $ <P2EqEmaxS1>
|
||
]
|
||
|
||
考虑 $bf(E)(min T)$ 的组合意义,可以看出它表示“首次出现 $T$ 集合中的任意一种颜色的球的时刻”,枚举这个时刻,得到
|
||
|
||
$ bf(E)(min T)=sum_(t\geq 0)(binom((n-abs(T))m,t)t!)/(binom(n m,t)t!)(t+1)(abs(T)m)/(n m-t) $
|
||
|
||
注意到这个式子只与集合 $T$ 的大小有关,而与 $T$ 中具体包含那些元素无关,因此考虑记
|
||
|
||
$ f(k)=sum_(t\geq 0)(binom((n-k)m,t)t!)/(binom(n m,t)t!)(t+1)(k m)/(n m-t) $
|
||
|
||
于是 $ bf(E)(min T)=f(abs(T)) $,代入@P2EqEmaxS1 得到,
|
||
|
||
#[
|
||
#show: math_numbering
|
||
$ bf(E)(max S)=sum_(T subset.eq S,T eq.not nothing)(-1)^(abs(T)-1) f(abs(T)) $ <P2EqEmaxS2>
|
||
]
|
||
|
||
我们首先专注于解出 $f(k)$ 的简化形式,展开二项式系数并通分,得到 $f(k)=sum_(t>=0)w_t$,其中
|
||
|
||
$ w_t=(((n-k)m)!(n m-t)!)/(((n-k)m-t)!(n m)!)(t+1)(k m)/(n m-t) $
|
||
|
||
,其相邻两项的比值由
|
||
|
||
$ (w_(t+1))/(w_t)&=((t+2) (m n-t) (m n-t-1)! (m (n-k)-t)!)/((t+1) (m n-t-1) (m n-t)! (m (n-k)-t-1)!)
|
||
\ &=((t+2)(t+k m-n m))/((t+1-n m)(t+1)) $
|
||
|
||
给出,这个比值可以看成关于 $t$ 的有理函数,因此可以将原式写作超几何函数的形式:
|
||
|
||
$ f(k)=k/n #hypergeometric-func($2, k m - n m$, $1 - n m$, 1) $
|
||
|
||
由组合意义可知,一定有 $k m-n m>=0$,因此可以应用范德蒙德卷积恒等式对其进行化简:
|
||
|
||
$ f(k)&=k/n (Gamma(- 1 - k m)Gamma(1 - n m))/(Gamma(- 1 - n m)Gamma(1 - k m))
|
||
\ &= (n m+1)/(k m+1) $
|
||
|
||
把这个化简后的结果代回@P2EqEmaxS2,然后再次转化为超几何函数并使用德蒙德卷积恒等式化简,可以解出
|
||
|
||
|
||
$ bf(E)(max S)&=sum_(T subset.eq S,T eq.not nothing) (-1)^(abs(T)-1) (n m+1)/(abs(T)m+1)
|
||
\ &= sum_(k=1)^n (-1)^(k-1) binom(n,k)(n m+1)/(k m+1)
|
||
\ &= (1 + n m) - (1 + n m) #hypergeometric-func($1 + k m, k - n$, $1 + m + k m$, 1)
|
||
\ &= n m + 1 - ((1 / m - 1)!n!)/((n+1/m - 1)!) $
|
||
|
||
|
||
注意,这个式子给出的是翻转过后的期望时刻,转化为原来问题才能得到最终答案:
|
||
|
||
$ bf(E)=((1 / m - 1)!n!)/((n+1/m - 1)!) $
|
||
|
||
#pagebreak_until_odd()
|
||
#problem_type.update((algebra_icon,))
|
||
= 社团数量的上限
|
||
|
||
现在有 $n$ 个人要成立若干个社团(一个人可以属于多个社团)满足:
|
||
|
||
- 每个社团的人数均为奇数;
|
||
- 任意两个不同的社团所共有的成员数量为偶数。
|
||
|
||
求证:所能成立的社团数量不超过 $n$ 个。
|
||
|
||
== 提示
|
||
|
||
形式化地说,记 $U={1,2,dots,n}$,已知集簇 $S subset.eq 2^U$ 满足对于任意 $A,B in S$,$abs(A sect B)$ 为奇数当且仅当 $A=B$。求证 $abs(S)<= n$。
|
||
|
||
容易发现,只要每个人均成立一个只包含自己的社团,就可以成立恰好 $n$ 个社团,满足每个社团的人数均为奇数(1 个),任意两个不同的社团所共有的成员数量为偶数(0 个)。
|
||
|
||
#pagebreak()
|
||
== 解答
|
||
|
||
|
||
假设已经确定了某种成立 $m$ 个社团的方案,第 $i(1<= i<= m)$ 个社团包含的成员的集合记作 $C_i$。
|
||
|
||
|
||
我们考虑一个二元域 $bb(Z)_2$,包含 ${0,1}$ 两个元素,在域上定义模 2 意义下的加法和乘法:
|
||
|
||
#[
|
||
#let cell_size = 30pt
|
||
#figure(stack(
|
||
dir: ltr,
|
||
spacing: cell_size,
|
||
table(
|
||
align: center + horizon,
|
||
columns: (cell_size, cell_size, cell_size),
|
||
rows: (cell_size, cell_size, cell_size),
|
||
$ + $, $ 0 $, $ 1 $,
|
||
$ 0 $, $ 0 $, $ 1 $,
|
||
$ 1 $, $ 1 $, $ 0 $,
|
||
),
|
||
table(
|
||
align: center + horizon,
|
||
columns: (cell_size, cell_size, cell_size),
|
||
rows: (cell_size, cell_size, cell_size),
|
||
$ times $, $ 0 $, $ 1 $,
|
||
$ 0 $, $ 0 $, $ 0 $,
|
||
$ 1 $, $ 0 $, $ 1 $,
|
||
)
|
||
), caption: [ $bb(Z)_2$ 上的加法和乘法 ])
|
||
]
|
||
|
||
构造 $ bb(Z)_2^(m times n)$ 上的矩阵 $A$,满足
|
||
|
||
$ A_(i,j)=cases(1 quad& j in C_i
|
||
\ 0 & j in.not C_i) $
|
||
|
||
考虑 $A A^transpose$ 这两个矩阵的乘积,是一个 $m times m$ 的矩阵,根据其第 $i$ 行第 $j$ 列的值所代表的实际意义,容易看出
|
||
|
||
|
||
$ (A A^transpose)_(i,j)=cases(1 quad& abs(C_i sect C_j) mtext("是奇数")
|
||
\ 0 & abs(C_i sect C_j) mtext("是偶数")) $
|
||
|
||
|
||
根据题目的约束条件,$abs(C_i sect C_j)$ 是奇数当且仅当 $i=j$,所以对角线上的数均为 1,其余位置的数均为 0,于是
|
||
|
||
#[
|
||
#show: math_numbering
|
||
$ A A^transpose= bf(I)_m $ <P2eq1>
|
||
|
||
其中 $bf(I)_m$ 表示 $m$ 阶单位矩阵。
|
||
|
||
我们用 $dim V$ 表示线性空间 $V$ 的维数,$frange T$ 表示线性变换 $T$ 的值域。由于 $A$ 是 $bb(Z)_2^n->bb(Z)_2^m$ 的线性变换,其值域的维数一定满足@P2inq1[不等式]。由于 $bf(I)_m$ 是 $bb(Z)_2^m->bb(Z)_2^m$ 的线性变换,其值域的维数一定满足@P2inq2[等式]。
|
||
|
||
|
||
$ dimrange A<= n $ <P2inq1>
|
||
|
||
$ dimrange bf(I)_m=m $ <P2inq2>
|
||
|
||
|
||
另一方面,因为 $frange A A^transpose subset.eq frange A$,所以
|
||
|
||
|
||
#show: math_numbering
|
||
$ dimrange A A^transpose<=dimrange A $ <P2inq3>
|
||
]
|
||
|
||
联立上面的@P2eq1、@P2inq1、@P2inq2、@P2inq3,就立即给出了我们欲证的结果:
|
||
|
||
$ m=dimrange bf(I)=dimrange A A^transpose<=dimrange A<=n $
|
||
|
||
这表明 $m<= n$ 始终成立,原命题得证。
|
||
|
||
#pagebreak_until_odd()
|
||
#problem_type.update((combinatorics_icon,analysis_icon,))
|
||
= 不含三元环的最大边数
|
||
|
||
已知无向图 $G$ 由 $n$ 个点组成,且不包含三元环,求 $G$ 边数的最大值。
|
||
|
||
== 提示
|
||
|
||
设 $G=(V,E)$ 是一个无向图。我们称图 $G$ 中的一个“三元环”是指图 $G$ 中的三个点 $a,b,c$,满足 ${(a,b),(b,c),(a,c)} subset.eq E$。
|
||
|
||
例如当 $n=5$ 时,下面是一个不包含三元环的图的例子:
|
||
|
||
#figure(image(
|
||
"./assets/p4-explain.svg",
|
||
width: 80%
|
||
), caption: [一个没有三元环的示例图])
|
||
|
||
该图包含 5 个点和 6 条边,可以证明所有没有三元环的由 5 个点构成的无向图的边均不超过 6 条。
|
||
|
||
#pagebreak()
|
||
== 解答
|
||
|
||
对于这种求最大值的问题,我们一般首先尝试给出一种可行的构造,再证明它是最优的。
|
||
|
||
把图中的 $n$ 个点分为 2 个大小尽可能的集合 $A$ 和 $B$(即大小分别为 $floor(n/2)$ 和 $ceil(n/2)$),然后对于每对点 $a in A,b in B$,在点 $a$ 和点 $b$ 之间连一条边,并且不连接其他的任何边。这样得到的图中一共连接了 $floor(n^2/4)$ 条边,且由于任意两个属于同一个集合的点之间都没有连边,这个图中不包含任何三元环。这样的图被称为“完全二分图”。
|
||
|
||
#figure(image(
|
||
"./assets/p4-bipart.svg",
|
||
width: 60%
|
||
), caption: [7 个点的完全二分图,包含 12 条边])
|
||
|
||
下面我们要证明这个构造是最优的构造,即任何由 $n$ 个点组成,不包含三元环的无向图的边数都不可能超过 $floor(n^2/4)$。这里将给出 3 种不同的证明。
|
||
|
||
=== 证明 A
|
||
|
||
#[
|
||
|
||
#let dd = {$upright(d)$}
|
||
|
||
设 $G=(V,E)$ 是某个无向图,包含 $n$ 个点 $m$ 条边。点 $v$ 的度数是指连接点 $v$ 的边的数量,记作 $dd(v)$。于是有
|
||
|
||
#[
|
||
#show: math_numbering
|
||
|
||
$ sum_(x in V)dd(x)=2m $ <P4prove1eq1>
|
||
|
||
$ sum_(x in V)dd^2(x)=sum_((x,y)in E)dd(x)+dd(y) $ <P4prove1eq2>
|
||
]
|
||
|
||
现在假设 $G$ 不包含三元环。若 $(x,y)$ 是图 $G$ 的边,那么对于任意一个点 $v$,一定有 $(x,v)in.not E$ 或 $(y,v)in.not E$,这说明
|
||
|
||
$ dd(x)+dd(y)<= n $
|
||
|
||
将这个性质代入@P4prove1eq2,得到
|
||
|
||
#[
|
||
#show: math_numbering
|
||
|
||
$ sum_((x,y)in E)dd(x)+dd(y)<= n m $ <P4prove1eq3>
|
||
|
||
另一方面,对@P4prove1eq1 使用柯西-施瓦茨不等式得到
|
||
|
||
$ sum_(x in V)dd^2(x)>=1/n lr((sum_(x in V)dd(x)))^2=(4m^2)/n $ <P4prove1eq4>
|
||
]
|
||
|
||
联立@P4prove1eq2、@P4prove1eq3、@P4prove1eq4,得到
|
||
|
||
$ (4m^2)/n<=sum_(x in V)dd^2(x)=sum_((x,y)in E)dd(x)+dd(y)<=n m $
|
||
|
||
整理得到 $m<= n^2slash 4$,注意到 $n$ 为整数,于是 $m<=floor(n^2slash 4)$,命题得证。
|
||
|
||
=== 证明 B
|
||
|
||
设 $G=(V,E)$ 是某个不包含三元环的无向图,包含 $n$ 个点 $m$ 条边。两个点 $a,b in V$ 之间有连边,则称这两个点是“相邻的”,与点 $a$ 相邻的所有点构成的集合记作 $N(a)$。
|
||
|
||
由于 $G$ 不包含三元环,所以对于图中的任意一个点 $a$,与 $a$ 的相邻的点构成的集合 $N(a)$ 一定是独立集,即 $N(a)$ 中的任意两个都不是相邻的。
|
||
|
||
设 $A subset.eq V$ 是图 $G$ 中的一个最大独立集,那么对于任意一个点 $x$,一定有
|
||
|
||
#[
|
||
#show: math_numbering
|
||
|
||
$ dd(x)<=abs(A) $ <P4prove2eq1>
|
||
]
|
||
|
||
令 $B=V without A$。由于 $A$ 是独立集,所以 $G$ 中的每条边都至少有一个端点包含在 $B$ 中。于是
|
||
|
||
$ m<=sum_(x in B)dd(x)<=sum_(x in B)abs(A)=abs(A)abs(B)<=((abs(A)+abs(B))/2)^2=(n^2)/4 $
|
||
|
||
其中第二个不等号使用了@P4prove2eq1,第三个不等号使用了均值不等式。注意到 $n$ 为整数,于是 $m<=floor(n^2slash 4)$,命题得证。
|
||
|
||
=== 证明 C
|
||
|
||
设 $G=(V,E)$ 是某个不包含三元环的无向图,包含 $n$ 个点 $m$ 条边。考虑一个随机均匀的排列顶点排列 $sigma$,令
|
||
|
||
$ X={v in V:v mtext("与") sigma mtext("中所有早于") v mtext("出现的顶点相邻")} $
|
||
|
||
由于排列是均匀随机选择的,以及一个顶点 $x in X$ 当且仅当它出现在其所有不相邻的顶点之前,我们有
|
||
|
||
#[
|
||
#show: math_numbering
|
||
|
||
$ bf(P)(v in X)=1/(n-dd(v)) $ <P4prove3eq>
|
||
]
|
||
|
||
其中 $bf(P)(e)$ 表示事件 $e$ 发生的概率。另一方面,考虑 $X$ 的组合意义,注意到 $X$ 中的顶点集合形成一个团(图 $G$ 的子图,并且是完全图),所以一定有 $abs(X)<=2$,这给出
|
||
|
||
$ 2>=bf(E)(abs(X))=sum_(v in V)bf(P)(v in X)=sum_(v in V)1/(n-dd(v))>=n/(n-2m slash n) $
|
||
|
||
其中 $bf(E)(a)$ 表示随机试验中变量 $a$ 的数学期望。第一个等号使用了数学期望的定义,第二个等号使用了@P4prove3eq,第二个不等号利用了函数的凸性,也即琴生不等式。这个式子整理得到 $m<=n^2 slash 4$,原命题得证。
|
||
|
||
这个证明使用了现代组合学中的一种名为“概率方法”的技术。在这种方法中,人们以一种巧妙的方式向确定性问题中引入随机性来得到一个确定性的结果。
|
||
|
||
]
|
||
|
||
#pagebreak_until_odd()
|
||
#problem_type.update((geometry_icon,))
|
||
= 无交点的匹配方案
|
||
|
||
平面上有红色点和蓝色点各 $n$ 个,且这 $2n$ 个点没有三个点共线。我们称一种红蓝点之间的配对方案合法,是指在每对点之间用线段连接后,得到的 $n$ 条线段没有交点。求证:一定存在一种合法的配对方案。
|
||
|
||
== 提示
|
||
|
||
形式化地说,设 $U={1,2,dots,n}$,红色点分别为 $p_1,dots,p_n$,蓝色点分别为 $q_1,dots,q_n$。一种配对方案是指 $U -> U$ 的一个双射 $f$。一种配对方案合法当且仅当线段集合 ${(p_k,q_{f(k)}):k in U}$ 中任意两条线段均不相交。
|
||
|
||
举个例子,对于红蓝各 3 个点的一种情况,下图为一种合法的配对方案,
|
||
|
||
#align(center,
|
||
stack(
|
||
dir: ltr,
|
||
figure(image(
|
||
"./assets/p5-explain-ok.svg",
|
||
width: 40%,
|
||
), caption: [一种合法方案]),
|
||
figure(image(
|
||
"./assets/p5-explain-bad.svg",
|
||
width: 40%
|
||
), caption: [一种不合法方案]),
|
||
)
|
||
)
|
||
|
||
#pagebreak()
|
||
== 解答
|
||
|
||
红蓝各 1 个点的情况的情况是平凡的,下面均假设 $n>=2$。
|
||
|
||
(反证法,无穷递降法)假设不存在一种合法的配对方案。从全部配对可能的方案中选出连接的线段长度之和最短的一种方案之一,根据反证假设一定存在两条线段相交。如图,设相交的两条线段的红色端点分别为点 $A$ 和点 $B$,蓝色端点分别为点 $C$ 和点 $D$,$A$ 和 $C$ 配对,$B$ 和 $D$ 配对,$A C$ 和 $B D$ 的交点为 $E$。
|
||
|
||
#figure(image(
|
||
"./assets/p5-intersect.svg",
|
||
width: 40%
|
||
), caption: [交点示意图])
|
||
|
||
|
||
根据三角形不等式(由于没有三点共线,等号一定不成立),一定有
|
||
|
||
#[
|
||
#show: math_numbering
|
||
$ abs(A D)&<abs(A E)+abs(D E) $ <P5eq1>
|
||
$ abs(B C)&<abs(B E)+abs(E C) $ <P5eq2>
|
||
]
|
||
|
||
将@P5eq1 和@P5eq2 相加,得到
|
||
|
||
$ abs(A D)+abs(B C)<abs(A C)+abs(B D) $
|
||
|
||
|
||
这说明,将 $A$ 和 $D$、$B$ 和 $C$ 配对的方案一定比将 $A$ 和 $B$、$C$ 和 $D$ 配对的方案的线段长度之和更短,这与反正假设矛盾,故假设不成立。于是合法方案一定存在,命题得证。
|
||
|
||
#pagebreak_until_odd()
|
||
#problem_type.update((algebra_icon, geometry_icon,))
|
||
= 距离为奇整数的点
|
||
|
||
求证:在平面上不存在 4 个点,使得任意一对点之间的距离均为某个奇整数。
|
||
|
||
== 提示
|
||
|
||
这里所说的距离是指欧几里得距离,即点 $(x_1,y_1)$ 和 $(x_2,y_2)$ 之间的距离由
|
||
|
||
$ sqrt((x_1-x_2)^2+(y_1-y_2)^2) $
|
||
|
||
给出。
|
||
|
||
容易发现,平面上 3 个点两两之间的距离均为奇整数是可能的(边长为 1 的等边三角形)。
|
||
|
||
#pagebreak()
|
||
== 解答
|
||
|
||
|
||
(反证法)假设存在四个点两两之间的距离均为奇数。不妨设其中一个点为的向量 $bf(0)$,另外三个点的向量分别为 $a,b,c$。用记号 $inprod(u,v)$ 表示向量 $u$ 和向量 $v$ 的点积(又称“内积”),记号 $abs(v)$ 表示向量 $v$ 的模长(又称“绝对值”)。根据距离的定义,它们之间的关系由@P6eq1 给出。
|
||
|
||
#[
|
||
#show: math_numbering
|
||
$ abs(v)=sqrt(inprod(v,v)) $ <P6eq1>
|
||
|
||
根据反证假设,有 $abs(a)$、$abs(b)$、$abs(c)$、$abs(a-b)$、$abs(b-c)$ 以及 $abs(c-a)$ 均为奇整数。
|
||
|
||
|
||
考虑定义了模 8 意义下的加法和乘法整数域 $bb(Z)_8$,容易发现其中任意一个奇数的平方一定为 1。据此,根据余弦定理和@P6eq1,得到
|
||
|
||
$ 2 inprod(a,b)=abs(a)^2+abs(b)^2-abs(a-b)^2=1 $ <P6odd1>
|
||
|
||
类似的,有
|
||
|
||
$ 2 inprod(a,c)=1 $ <P6odd2>
|
||
$ 2 inprod(b,c)=1 $ <P6odd3>
|
||
]
|
||
|
||
构造 $bb(Z)_8^(3 times 3)$ 上的矩阵 $B$:
|
||
|
||
$ B=mat(delim: "[",
|
||
inprod(a,a),inprod(a,b),inprod(a,c);
|
||
inprod(b,a),inprod(b,b),inprod(b,c);
|
||
inprod(c,a),inprod(c,b),inprod(c,c)) $
|
||
|
||
|
||
根据@P6eq1、@P6odd1、@P6odd2 与@P6odd3,有
|
||
|
||
$ 2B=mat(delim: "[",
|
||
2,1,1;
|
||
1,2,1;
|
||
1,1,2) $
|
||
|
||
我们用 $dim V$ 表示线性空间 $V$ 的维数,$frange T$ 表示线性变换 $T$ 的值域,$fnull T$ 表示线性变换 $T$ 的零空间(经过 $T$ 变为 $bf(0)$ 的向量构成的子空间)。容易验证 $dimrange 2B=3$,于是
|
||
|
||
#[
|
||
#show: math_numbering
|
||
$ dimrange B=3 $ <P6eq2>
|
||
]
|
||
|
||
另一方面,构造 $bb(Z)_8^(3 times 2)$ 上的矩阵 $A$,满足
|
||
|
||
$ A=mat(delim: "[",
|
||
a_1,b_1,c_1;
|
||
a_2,b_2,c_2) $
|
||
|
||
容易验证 $B=A^transpose A$,于是 $frange B subset.eq frange A^transpose$,另一方面,根据线性变换基本定理,有
|
||
|
||
$ dim bb(Z)_8^2=dimrange A^transpose+dimnull A^transpose $
|
||
|
||
这说明,$dimrange A^transpose<=2$,与@P6eq2 联立,得到
|
||
|
||
|
||
$ 3=dimrange B<=dimrange A^transpose<=2 $
|
||
|
||
这给出了 $3<=2$ 这样的错误的结果,故假设不成立,原命题得证。
|
||
|
||
#pagebreak_until_odd()
|
||
#problem_type.update((geometry_icon,number_thoery_icon,algebra_icon))
|
||
= 格点正多边形
|
||
|
||
求证:如果一个正多边形的每个顶点的横纵坐标均为整数,那么它一定是一个正方形。
|
||
|
||
== 提示
|
||
|
||
每个顶点的横纵坐标均为整数的多边形常常被称为“格点多边形”。
|
||
|
||
这里所说的正 $k(k>=3)$ 边形是指一个有恰好 $k$ 条边(以及 $k$ 个顶点)的凸多边形,使得每一条边的长度都相等。一般而言,我们把正三边形叫做“等边三角形”,把正四边形叫做“正方形”。
|
||
|
||
#align(center,
|
||
stack(dir: ltr,
|
||
figure(image(
|
||
"./assets/p7-triangle.svg",
|
||
width: 30%,
|
||
), caption: [等边三角形]),
|
||
figure(image(
|
||
"./assets/p7-square.svg",
|
||
width: 30%
|
||
), caption: [正方形]),
|
||
figure(image(
|
||
"./assets/p7-pentagon.svg",
|
||
width: 30%
|
||
), caption: [正五边形])
|
||
)
|
||
)
|
||
|
||
事实上,题目中的整数也可以换成有理数,因为一个每个顶点的横纵坐标均为有理数的图形只要恰当放大一个比例就一定可以得到一个每个顶点的横纵坐标均为整数的图形。
|
||
|
||
显然存在许多正方形,满足每个顶点的横纵坐标均为整数。
|
||
|
||
#pagebreak()
|
||
== 解答 A
|
||
|
||
我们将给出两种不同的解答,在这个解答里,我们会使用“无穷递降法”来说明这个问题。
|
||
|
||
下面首先分类讨论对于等边三角形的情况,不妨设等边三角形的三个顶点分别为 $A(0,0)$、$B(b_1,b_2)$ 和 $C(c_1,c_2)$。于是根据勾股定理,有
|
||
|
||
$ cases(b_1^2+b_2^2=c_1^2+c_2^2,b_1^2+b_2^2=(c_1-b_1)^2+(c_2-b_2)^2) $
|
||
|
||
把 $b_1$ 和 $b_2$ 看做常数,$c_1$ 和 $c_2$ 看做未知数,这组方程解得
|
||
|
||
$ cases(c_1=1/2 (b_1 - sqrt(3) b_2),c_2=1/2 (sqrt(3) b_1+b_2)) #tab #mtext("或") #tab cases(c_1=1/2 (b_1 + sqrt(3) b_2),c_2=1/2 (-sqrt(3) b_1+b_2)) $
|
||
|
||
由于 $sqrt(3)$ 是无理数,当 $b_1$ 和 $b_2$ 均为整数时,$c_1$ 和 $c_2$ 必定都是无理数,也即不是整数。因此,每个顶点的横纵坐标均为整数的等边三角形不存在。
|
||
|
||
在说明一般情况之前,我们首先要引入如下引理:
|
||
|
||
*引理* 一个横纵坐标均为整数的点绕着另一个横纵坐标均为整数的点旋转 $90 degree$ 后得到的点仍然是一个横纵坐标均为整数的点。
|
||
|
||
算出旋转后的点的坐标即可,读者自行验证该引理。
|
||
|
||
下面说明一般情况,(反证法,无穷递降法)假设存在格点正 $k(k>=5)$ 边形。从所有的格点正 $k$ 边形中找出面积最小的一个,设它的顶点按逆时针顺序依次为 $P_1,dots,P_k$。对于每个顶点 $P_i$,把它绕点 $P_(i-1)$(特别地,点 $P_1$ 绕点 $P_k$)逆时针旋转 $90 deg$,得到点 $Q_i$(如图 @P7fig1)。
|
||
|
||
#align(center, stack(dir: ltr, spacing: 5%,
|
||
[#figure(image(
|
||
"./assets/p7-solA-hexagon.svg",
|
||
width: 40%,
|
||
), caption: [旋转后的得到的点]) <P7fig1>],
|
||
|
||
[#figure(image(
|
||
"./assets/p7-solA-hexagon2.svg",
|
||
width: 40%,
|
||
), caption: [连接辅助线]) <P7fig2>]
|
||
))
|
||
|
||
下面我们证明 $Q_1 dots.c Q_k $ 也是一个正 $k$ 边形(为了方便描述,我们给出 $Q_1 Q_2=Q_2 Q_3$ 的证明,其它的边之间的相等关系是同理可证的)。如图 @P7fig2,连接 $P_1 Q_1$、$P_1 Q_2$、$P_2 Q_2$、$P_2 Q_3$ 以及 $P_3 Q_3$ 五条线段。由于正多边的每个内角和每条边都相等,在 $trig P_1 P_2 Q_2$ 和 $trig P_2 P_3 Q_3$ 中,我们有
|
||
|
||
$ cases(P_1 P_2=P_2 P_3,angle P_1 P_2 Q_2=angle P_2 P_3 Q_3,P_2 Q_2=P_3 Q_3) $
|
||
|
||
所以 $trig P_1 P_2 Q_2 tilde.eqq trig P_2 P_3 Q_3$(SAS),于是 $P_1 Q_2=P_2 Q_3$ 以及 $angle Q_2 P_1 Q_1=angle Q_3 P_2 Q_2$。类似的,在 $trig Q_2 P_1 Q_1$ 和 $trig Q_3 P_2 Q_2$ 中,
|
||
|
||
$ cases(P_1 Q_2=P_2 Q_3,angle Q_2 P_1 Q_1=angle Q_3 P_2 Q_2,P_1 Q_1=P_2 Q_2) $
|
||
|
||
所以 $trig Q_2 P_1 Q_1 tilde.eqq trig Q_3 P_2 Q_2$(SAS),这说明 $Q_1 Q_2=Q_2 Q_3$,于是 $Q_1 dots.c Q_k$ 也是一个正 $k$ 边形。因为 $k>=5$,正 $k$ 边形的每个内角均大于 $90 degree$,故点 $Q_1,dots,Q_k$ 均在多边形 $P_1 dots.c P_k$ 的内部,即多边形 $Q_1 dots.c Q_k$ 的面积小于多边形 $P_1 dots.c P_k$ 的面积,矛盾,故假设不成立。
|
||
|
||
综上所述,不存在格点等边三角形,也不存在格点正 $k$ 边形(其中 $k>=5$),故只可能存在格点正方形,原命题得证。
|
||
|
||
== 解答 B
|
||
|
||
设格点三角形的三个顶点分别为 $A(0,0)$、$B(b_1,b_2)$ 和 $C(c_1,c_2)$。通过平行四边形割补,不难得出 $trig A B C$ 的面积
|
||
|
||
#[
|
||
#show: math_numbering
|
||
$ S_(trig A B C)=1/2 abs(b_1 c_2 - b_2 c_1) $ <P7solBeq1>
|
||
]
|
||
|
||
是一个有理数,而任意格点多边形都可以划分为若干个不相交的格点三角形。于是我们得出了这样一个引理:任意一个格点多边形的面积均为有理数。
|
||
|
||
另一方面,我们知道正多边形的面积公式是
|
||
|
||
$ S=(k a^2)/(4 tan pi/k) $
|
||
|
||
其中 $k$ 表示该正多边形的边数,$a$ 表示正多边形的边长。若该正多边形至少有一条边的两个端点的横纵坐标均为整数,则 $a^2$ 一定是一个有理数,故正多边形的面积 $S$ 是有理数当且仅当 $tan pi/k$ 是有理数。
|
||
|
||
另一方面,由@P7solBeq1 我们知道,一个格点多边形的面积一定是一个有理数,因此我们只需说明“对于任意整数 $k>=3$,只有当 $k=4$ 时 $tan pi/k$ 才是有理数”,即可完成对原命题的论证。下面给出两个证明,其中第二个证明需要较多的代数知识。
|
||
|
||
=== 证明 a
|
||
|
||
// TODO |