Discrete mathematics and its applications笔记
第三章
精彩习题
1.How many bit strings of length eight contain either three consecutive 0s or four consecutive 1s?(连续的3个0,或者连续的4个1,两者都满足也可以)
这题用递归去做就很舒服
设
长
度
为
n
的
位
串
(
b
i
t
s
t
r
i
n
g
)
中
,
包
含
连
续
3
个
0
的
有
a
n
个
如
果
最
后
一
个
元
素
不
是
0
,
有
a
n
−
1
种
,
如
果
最
后
一
个
元
素
是
0
,
1
∘
最
后
3
个
是
000
,
这
时
有
2
n
−
3
种
。
2
∘
最
后
3
个
是
100
,
对
应
a
n
−
3
种
3
∘
最
后
3
个
是
010
,
对
应
a
n
−
2
种
所
以
a
n
=
a
n
−
1
+
a
n
−
2
+
a
n
−
3
+
2
n
−
3
a
0
=
a
1
=
a
2
=
0
,
a
3
=
1
,
a
4
=
3
,
a
5
=
8
,
a
6
=
20
,
a
7
=
47
,
a
8
=
107
处
理
连
续
4
个
1
的
时
候
,
同
理
的
话
就
有
繁
琐
了
,
可
以
换
一
种
递
归
思
路
。
设
b
n
是
有
连
续
4
个
1
的
长
度
为
n
的
位
串
的
总
个
数
。
1
∘
对
于
长
度
为
n
−
1
的
位
串
,
第
n
为
可
选
1
或
者
0
,
共
2
b
n
−
1
种
2
∘
假
设
最
后
5
个
位
置
是
01111
,
并
且
前
面
n
−
5
个
位
置
里
面
没
有
连
续
4
个
1
(
注
意
这
与
第
一
种
情
况
没
有
交
集
,
因
为
第
一
种
情
况
最
后
是
1
的
话
也
是
11111
)
有
2
n
−
5
−
b
n
−
5
种
所
以
b
n
=
2
b
n
−
1
+
2
n
−
5
−
b
n
−
5
推
出
b
8
=
48
减
去
重
复
计
数
的
8
个
,
最
后
答
案
是
107
+
48
−
8
=
147
\begin{aligned} &设长度为n的位串(bit\ string)中,包含连续3个0的有a_n个\\ &如果最后一个元素不是0,有a_{n-1}种,\\ &如果最后一个元素是0,\\ &1^\circ 最后3个是000,这时有2^{n-3}种。\\ &2^\circ 最后3个是100,对应a_{n-3}种\\ &3^\circ 最后3个是010,对应a_{n-2}种\\ &所以a_n=a_{n-1}+a_{n-2}+a_{n-3}+2^{n-3}\\ &a_0=a_1=a_2=0,a_3=1,a_4=3,a_5=8,a_6=20,a_7=47,\\ &a_8=107\\ &处理连续4个1的时候,同理的话就有繁琐了,\\ &可以换一种递归思路。\\ &设b_n是有连续4个1的长度为n的位串的总个数。\\ &1^\circ 对于长度为n-1的位串,第n为可选1或者0,共2b_{n-1}种\\ &2^\circ 假设最后5个位置是01111,并且前面n-5个位置里面没有连续4个1\\ &(注意这与第一种情况没有交集,因为第一种情况最后是1的话也是11111)\\ &有2^{n-5}-b_{n-5}种\\ &所以b_n=2b_{n-1}+2^{n-5}-b_{n-5}\\ &推出b_8=48\\ &减去重复计数的8个,最后答案是107+48-8=147\\ \end{aligned}
设长度为n的位串(bit string)中,包含连续3个0的有an个如果最后一个元素不是0,有an−1种,如果最后一个元素是0,1∘最后3个是000,这时有2n−3种。2∘最后3个是100,对应an−3种3∘最后3个是010,对应an−2种所以an=an−1+an−2+an−3+2n−3a0=a1=a2=0,a3=1,a4=3,a5=8,a6=20,a7=47,a8=107处理连续4个1的时候,同理的话就有繁琐了,可以换一种递归思路。设bn是有连续4个1的长度为n的位串的总个数。1∘对于长度为n−1的位串,第n为可选1或者0,共2bn−1种2∘假设最后5个位置是01111,并且前面n−5个位置里面没有连续4个1(注意这与第一种情况没有交集,因为第一种情况最后是1的话也是11111)有2n−5−bn−5种所以bn=2bn−1+2n−5−bn−5推出b8=48减去重复计数的8个,最后答案是107+48−8=147
2.求证:对于任意的非零整数n,在n的倍数里面,一定存在一个只包含0和1的数(比如10001,11110001)
证
明
:
不
妨
假
设
n
为
正
整
数
,
考
虑
如
下
n
+
1
个
数
:
证明:不妨假设n为正整数,考虑如下n+1个数:
证明:不妨假设n为正整数,考虑如下n+1个数:
1
,
11
,
111
,
111...111
1,11,111,111...111
1,11,111,111...111
因
为
上
面
n
+
1
个
数
除
以
n
的
余
数
最
多
只
有
n
种
可
能
因为上面n+1个数除以n的余数最多只有n种可能
因为上面n+1个数除以n的余数最多只有n种可能
所
以
必
然
有
两
个
数
模
n
同
余
所以必然有两个数模n同余
所以必然有两个数模n同余
将
这
两
个
数
相
减
即
为
要
求
得
的
数
将这两个数相减即为要求得的数
将这两个数相减即为要求得的数
4.下面这段代码,最后得到的k是多少?
这也是可重复组合问题
等价的组合题目是 从n个不一样的数字中选出r个数(可以重复),r就是循环的层数这个比较巧妙,因为每次选出的这r个数升序排列对应循环的一种情况
(
i
m
,
i
m
−
1
.
.
.
i
1
)
(i_m,i_{m-1}...i_1)
(im,im−1...i1),(n=3时)比如1,2,1说明
i
1
=
2
,
i
2
=
1
,
i
3
=
1
i_1=2,i_2=1,i_3=1
i1=2,i2=1,i3=1
然后2,2,1说明
i
1
=
2
,
i
2
=
2
,
i
3
=
1
i_1=2,i_2=2,i_3=1
i1=2,i2=2,i3=1
所以最后答案是
C
n
+
m
−
1
m
C_{n+m-1}^m
Cn+m−1m
新知
1.笛卡尔积满足
∣
A
1
×
A
2
×
.
.
.
×
A
m
∣
=
∣
A
1
∣
⋅
∣
A
2
∣
⋅
.
.
.
⋅
∣
A
m
∣
|A_1\times A_2\times...\times A_m|=|A_1|\cdot |A_2|\cdot ...\cdot|A_m|
∣A1×A2×...×Am∣=∣A1∣⋅∣A2∣⋅...⋅∣Am∣
2.容斥原理(principle of inclusion-exclusion,也叫作subtraction principle)
3.从n个元素(元素各不相同)中选出r个可以重复的元素 的方法
有:
C
n
+
r
−
1
r
C_{n+r-1}^r
Cn+r−1r种
(可以想象要选出r本书,我们放入n-1个立书架(隔板))
比如r=6,n=4时:
** | * | | ***
3个隔板把书分成4种类型,上图中表示从第一种类型中选2本,从第二种类型中选1本,从第四种类型中选3本。
4.假设有n个物体,k个箱子(箱子可以空)
(1)不同类型的物体放进不同类型的箱子里
设每个箱子放
n
i
个
n_i个
ni个,则由乘法原理,得方法数目:
n
!
n
1
!
n
2
!
.
.
.
n
k
!
n!\over{n_1!n_2!...n_k!}
n1!n2!...nk!n!
(2)不同类型的物体放进相同类型的箱子里
公式比较复杂,可以用穷举法
设
S
(
n
,
j
)
表
示
把
n
个
不
同
类
型
的
物
体
放
进
j
个
箱
子
,
且
箱
子
都
不
能
空
S(n,j)表示把n个不同类型的物体放进j个箱子,且箱子都不能空
S(n,j)表示把n个不同类型的物体放进j个箱子,且箱子都不能空
则方法数目:
∑
j
=
1
k
S
(
n
,
j
)
\displaystyle\sum_{j=1}^kS(n,j)
j=1∑kS(n,j)
(3)相同类型的物体放进不同类型的箱子里
相当于第3点中的插隔板,方法数目:
C
n
+
k
−
1
k
C_{n+k-1}^k
Cn+k−1k
(4)相同类型的物体放进相同类型的箱子里
这个也是穷举法呀(无奈)
比如把6个相同类型的物体放进4个相同类型的箱子
可以如下穷举:
6
5 1
4 2
4 1 1
3 3
3 2 1
3 1 1 1
2 2 2
2 2 1 1