Sweetlemon蒟蒻的拙作
Sweetlemon
·
·
个人记录
(一)
开学了,高一(21)班共有n (n\in \mathbb{N^{*}})名同学,他们的学号分别是1,2,\cdots,n。班主任为了让同学们相互认识,想了一个好办法。
他在一次班会课上说:“同学们,如果你的学号是x,而另一个同学的学号是y,并且x+y=2^{k}+2(k\in \mathbb{N}),那么你们之间就有缘分。现在请你和所有与你有缘分的同学握手吧!”
(1) 当n=30时,求所有与5号同学握手的同学的学号。
(2) 求同学们握手的总次数。
(3) 班主任的办法很有效,握过手的两名同学互相成为了朋友。而且这种朋友关系还具有传递性,即如果甲、乙是朋友,乙、丙是朋友,那么甲、丙也是朋友。现在21班要组建一个团队参加比赛,为了保证团队的团结,要求团队中任意两人都是朋友。求团队中人数的最大值。
题解:
(1) n=30时,握手关系如下图:
因此所有与5号同学握手的同学的学号所组成的集合为\left \{ 1,13,29 \right\}。
(2) 把1号同学称为“根”(可以理解为“全班的希望”)。
设x为集合A=\left \{ x\in \mathbb{N} \mid 1<x\le n \right\}中的任意元素。对于某一个x,设y是集合\left \{ y\in \mathbb{N} \mid 1\le y< x \right\}中的某个元素,且有x+y=2^{k}+2(k\in \mathbb{N})。如果存在这样的y,那么我们称y为x的“父亲”(\sout{x}被\sout{y}打败了,被迫承认的)。
下面我们证明,对于A中的每一个元素,都有且仅有1个父亲(废话,你还能认两个人作父亲?)。
整数y是x的父亲当且仅当0<y<x且x+y=2^k+2。
上述条件成立,当且仅当存在一个自然数k,使得0<2^k+2-x<x。调整得到x<2^k+2<2x,即x-2<2^k<2x-2。
下面证明对于每一个x,有且只有一个自然数k满足上式。
设x-2=2^{a_1}+2^{a_2}+\cdots+2^{a_n}
其中 a_1>a_2>\cdots>a_n,\left\{a_1,a_2,\cdots,a_n\right\}\subseteq \mathbb{N}。
则x-2=2^{a_1}+2^{a_2}+\cdots+2^{a_n}\le 2^{a_1}+2^{a_1-1}+2^{a_1-2}+\cdots+2^{1}+2^{0}<2^{a_1+1}
而2x-4=2(x-2)=2^{a_1+1}+2^{a_2+1}+\cdots+2^{a_n+1}\ge 2^{a_1+1}。
于是x-2<2^{a_1+1}\le 2x-4,知x-2<2^{a_1+1}<2x-2,知存在k=a_1+1使得上式成立。
再证明a_1+1是唯一满足条件的k。
若有k'<a_1+1满足上式,那么由k'\in \mathbb{N}知k'\le a_1,则2^{k'}\le 2^{a_1}\le x-2,与上式矛盾。
若有k'>a_1+1满足上式,那么由k'\in \mathbb{N}知k'\ge a_1+2,则2^{k'}\ge 2^{a_1+2}>2^{a_1+1}+2^{a_1}+2^{a_1-1}+\cdots+2^1+2^0。
而2x-4=2^{a_1+1}+2^{a_2+1}+\cdots+2^{a_n+1}<2^{a_1+1}+2^{a_1}+2^{a_1-1}+\cdots+2^1+2^0(此处请注意因为a_1>a_2>\cdots>a_n\ge0,所以a_1+1>a_2+1>\cdots>a_n+1\ge1。)
于是有2^{k'}>2x-4。
然而,若x-2<2^{k'} <2x-2,则有2^{k'}<2x-2,由2^{k'}\in \mathbb{N}知2^{k'}=2x-3,且由于k'>a_1+1\ge1知2^{k'}一定是偶数,出现矛盾。
综上,a_1+1是唯一满足条件的k。
由此,我们得出,对于A中的每一个元素,都有且仅有1个父亲。
考虑每一次握手,设握手的两人分别为x和y,不妨设x>y,则由上面的结论知y是x的父亲,因此每一次握手都仅在一个人和他的父亲之间发生(“发生”这个词好恐怖),且学号大于1的每个人都会和他的父亲握手。
有多少对父子关系就有多少次握手。1没有父亲,而所有学号大于1的人都有父亲,因此同学们握手的总次数为n-1。
(3) 我们设1的祖先为1本身(我 生 我 自 己),其余点的祖先定义为它父亲的祖先。(可以看上面的图帮助理解,按照图上的箭头反向往上走,走到最上面就是祖先。也可以理解为祖先是父亲的父亲的父亲的……父亲的父亲。)
用符号语言来表示,记一个人的父亲为\text{par}(x),记一个人的祖先为\text{gpar}(x)。那么若x=1,则\text{gpar}(x)=1;否则\text{gpar}(x)=\text{gpar}(\text{par}(x))。如\text{gpar}(2)=\text{gpar}(\text{par}(2))=\text{gpar}(1)=1。
由父亲和祖先的定义知,一个人和他的祖先一定有朋友关系(怎么看着怪怪的)。
观察上面的图,我们发现图上每一个人的祖先都是1!这是不是巧合呢?
事实上,我们可以证明,任意满足1\le x\le n的整数的祖先都是1。
怎么证明呢?我们可以 感性理解 用数学归纳法。
首先,当x=1时,按照定义,欲证命题显然成立。
接着,我们设当x\le k时欲证命题成立,即“任意满足1\le x\le k的整数的祖先都是1”成立。下面我们要证明当x=k+1时命题也成立。
由(2),\text{par}(k+1)<k+1,由于\text{par}(k+1)\in \mathbb{N},知\text{par}(k+1)\le k,由归纳假设知\text{gpar}(\text{par}(k+1))=1。由祖先的定义知\text{gpar}(k+1)=1,即欲证命题在x=k+1时也成立。
根据数学归纳法,对任意满足1\le x\le n的整数,\text{gpar}(x)=1。
(由于我们还没有学过数学归纳法,因此这段证明过程在实际书写时可以略微 意会 调整。)
于是,每一个人都和1号同学是朋友。由朋友关系的传递性,全班同学都彼此是朋友。因此团队中人数的最大值为n。
这道题解完了,我们有什么收获呢?
我们要向高一(21)班的同学学习,让我们的班集体变得更团结,变得更团结的方式就是彼此认父亲,并发生握手关系。
(二)
有一个有限集S=\left\{ a_1,a_2,a_3,\cdots, a_n\right\},并且设A=\left \{x\mid x\subseteq S\right \}。
现在已知映射f_0:A\rightarrow \mathbb{R},设A上的映射f_1,f_2,\cdots,f_n,
对所有1\le k\le n的整数k,满足以下条件:
\forall x\in A \ \ \wedge \ \ a_k\notin x,\ \ f_{k}(x)=f_{k-1}(x)
\forall x\in A\ \ \wedge \ \ a_k\in x,\ \ f_k(x)=f_{k-1}(x)+f_{k-1}(\complement_{\left\{ a_{k} \right\} }x)
请写出f_{n}(S)的值并给出证明。
(三)
有一个游戏,初始时A=\left\{0\right\},B=\left\{-1\right\}。游戏有n次操作,第k(1\le k\le n)次会从A\cup B中等概率随机选择一个数x,如果设这个数x所在的集合为S(S\in \left\{A,B\right\}),那么这次操作会将S变为S\cup \left\{k\right\}。求这n次操作后,A集合的元素数量是t(1\le t\le n+1)的概率。
题解
此概率与t无关,都为\frac{1}{n+1}。
有几种证明方法:
数学归纳法
设g[i][j]为进行了i次操作,A集合中有j个数的概率。
则g[0][1]=1=\frac{1}{0+1},初始条件满足。
\begin{aligned}g[i][j]&=\frac{j-1}{i-1+2}g[i-1][j-1]+\frac{(i-1+2)-j}{i-1+2}g[i-1][j]\\&=\frac{1}{i+1}((j-1)g[i-1][j-1]+(i+1-j)g[i-1][j])\end{aligned}
此时若有g[i-1][x]=\frac{1}{i}(归纳假设),则
\begin{aligned}g[i][j]&=\frac{1}{i+1}((j-1)g[i-1][j-1]+(i+1-j)g[i-1][j])\\&=\frac{1}{i+1}(j-1+i+1-j)\frac{1}{i}\\&=\frac{1}{i+1}\end{aligned}
因此根据数学归纳法证毕。
臆想法
这一种方法需要很强的臆想能力。
把“选到的数在A中”记为1,“选到的数在B中”记为0。那么n次操作可以记为一个01序列,不妨记为\left\{a_n\right\}。记\left\{a_n\right\}的前n项和为\left\{S_n\right\}。令S_0=0。
我们首先计算“操作序列恰好是某个(确定的)\left\{a_n\right\}”的概率,记为P(\left\{a_n\right\})。
设g[i]为“前i个操作恰好为\left\{a_n\right\}的前i项”的概率,那么P(\left\{a_n\right\})=g[n]。
令g[0]=1。下面考虑g[i]的递推式。
g[i]=\begin{cases}\frac{S_{i-1}+1}{i+1}g[i-1],\ a_i=1,\\ \frac{i-S_{i-1}}{i+1}g[i-1],\ a_i=0\end{cases}(i\ge 1)
对上面的递推式用累乘法,发现一些事情:
-
g[n]$的分母一定是$2\times 3\times 4\times\cdots\times (n+1)=(n+1)!
-
假设a_i之后下一个为1的项是a_{i'},那么 S_{i'-1}=S_{i-1}+1。而i项的分子是 S_{i-1}+1,i'项的分子是 S_{i'-1}+1=S_{i-1}+1+1,知i'项的分子恰好比i项的分子多1。所以所有a_i=1项的分子是从1逐个递增到S_n的,所有a_i=1项的分子的乘积是S_n!
-
假设a_i之后下一个为0的项是a_{i'},那么 S_{i'-1}=S_{i-1}+(i'-1-i)。而i项的分子是 i-S_{i-1},i'项的分子是 i'-S_{i'-1}=i'-(S_{i-1}+(i'-1-i))=i-S_{i-1}+1,知i'项的分子恰好比i项的分子多1。一共有n-S_n项为0,它们的分子从1逐个递增到n-S_n,于是所有a_i=0项的分子的乘积是(n-S_n)!
那么就得到P(\left\{a_n\right\})=\frac{S_n!(n-S_n)!}{(n+1)!}。
上述几条结论不能推出来也没关系。“举例是理解的试金石”,我们不妨算一下01序列010010的概率。
$g[2]=\frac{1}{3}g[1]$,操作后$A$的元素数是$2$,$B$的元素数是$2$;
$g[3]=\frac{2}{4}g[2]$,操作后$A$的元素数是$2$,$B$的元素数是$3$;
$g[4]=\frac{3}{5}g[3]$,操作后$A$的元素数是$2$,$B$的元素数是$4$;
$g[5]=\frac{2}{6}g[4]$,操作后$A$的元素数是$3$,$B$的元素数是$4$;
$g[6]=\frac{4}{7}g[5]$,操作后$A$的元素数是$3$,$B$的元素数是$5$.
把式子乘起来得到$g[6]=\frac{1\times 1\times 2\times 3\times 2\times 4}{2\times 3\times 4\times 5\times 6\times 7}=\frac{(1\times 2\times 3\times 4)\times (1\times 2)}{2\times 3\times 4\times 5\times 6\times 7}
我们只是把0的分子和1的分子分开,就得到了结论。
或者,我们可以这么理解:概率的分子就是操作前这个集合中的元素个数。如果A集合要从1个元素变到u+1个元素(即序列中有u个1),必然经历了1\rightarrow 2,2\rightarrow 3,\cdots,u\rightarrow u+1的过程,这些过程中概率的分子之积自然是u!。B集合也是一样。
不管如何,我们现在得到了——操作序列是某个“含有u个1”的01串的概率是\frac{u!(n-u)!}{(n+1)!}(为方便描述,将上面推导过程中的S_n用u代替了)。从式子中我们发现,所有“含有u个1”的01串的概率是相等的。
当u=t-1时,操作结束后,A的元素数就是t。于是,“操作结束后,A的元素数就是t”的概率,就等于所有“含有u个1”的01串的概率之和。(这里用的是概率的加法原理,因为这些01串两两互斥(操作序列不可能同时为两个01串),且总事件全部由这些分事件所组成,因此可以这么计算。)
有多少“含有u个1”的01串呢?这是经典的子集问题,显然有\mathrm{C}_n^u=\frac{n!}{u!(n-u)!}个。
神奇的事情发生了——把01串数和每个01串的概率乘起来:
\frac{n!}{u!(n-u)!}\times \frac{u!(n-u)!}{(n+1)!}=\frac{n!}{(n+1)!}=\frac{1}{n+1}
于是就证完了……
(四)