约瑟夫问题。
依然从研究小的情况开始
人数(n) | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
幸存者编号J(n) | 1 | 1 | 3 | 1 | 3 | 5 |
可得数学表达式:
(1.8)
J
(
1
)
=
1
;
J
(
2
n
)
=
2
J
(
n
)
−
1
;
J
(
2
n
+
1
)
=
2
J
(
n
)
+
1.
\tag{1.8} \begin{aligned} J(1)& = 1;\\ J(2n)& = 2J(n) -1;\\ J(2n+1)& = 2J(n) +1.\\ \end{aligned}
J(1)J(2n)J(2n+1)=1;=2J(n)−1;=2J(n)+1.(1.8)
根据这个递归式,对很小的值做一张表
n | 1 | 2 3 | 4 5 6 7 | 8 9 10 11 12 13 14 15 | 16 |
---|---|---|---|---|---|
J(n) | 1 | 1 3 | 1 3 5 7 | 1 3 5 7 9 11 13 15 | 1 |
看起来可以得到一个封闭形式:
(1.9)
J
(
2
m
+
l
)
=
2
l
+
1
,
m
⩾
0
,
0
⩽
l
<
2
m
\tag{1.9} \\ J(2^m+l) = 2l+1, m\geqslant0, 0\leqslant l<2^m
J(2m+l)=2l+1,m⩾0,0⩽l<2m(1.9)
注意,如果
2
m
⩽
n
<
2
m
+
1
2^m \leqslant n < 2^{m+1}
2m⩽n<2m+1,则余下来的数
l
=
n
−
2
m
l=n-2^m
l=n−2m满足$0\leqslant l <2^{m+1} - 2^m = 2^m $
证明式中有用到了数学归纳法,如果对强归纳法不够熟悉,这一段看上去会很费劲。
先证明偶数情况:
如果m>0且
2
m
+
l
=
2
n
2^m+l=2n
2m+l=2n, 那么
l
l
l是偶数.
J
(
2
m
+
l
)
=
2
J
(
2
m
−
1
+
l
2
)
−
1
=
2
(
l
2
+
1
)
−
1
=
2
l
+
1
\begin{aligned} J(2^m + l) &= 2J(2^{m-1} + \frac{l}{2}) -1 \\&= 2(\frac{l}{2} + 1) -1 \\&= 2l + 1 \end{aligned}
J(2m+l)=2J(2m−1+2l)−1=2(2l+1)−1=2l+1
完整过程如下, 对1.9整理,可得:
J
(
2
m
+
l
)
=
J
(
2
∗
2
m
−
1
+
2
∗
l
2
)
=
J
[
2
(
2
m
−
1
+
l
2
)
]
\begin{aligned} J(2^m + l) &=J(2*2^{m-1} + 2*\frac{l}{2}) \\&= J[2(2^{m-1}+\frac{l}{2})] \end{aligned}
J(2m+l)=J(2∗2m−1+2∗2l)=J[2(2m−1+2l)]
将1.8的偶数情况
J
(
2
n
)
=
2
J
(
n
)
−
1
J(2n) = 2J(n) -1
J(2n)=2J(n)−1代入可得
(推导1.0)
J
[
2
(
2
m
−
1
+
l
2
)
]
=
2
J
(
2
m
−
1
+
l
2
)
−
1
\tag{推导1.0} \\ J[2(2^{m-1}+\frac{l}{2})] = 2J(2^{m-1}+\frac{l}{2}) -1
J[2(2m−1+2l)]=2J(2m−1+2l)−1(推导1.0)
- 在这里先中断一下,复习一下第二数学归纳法:
. 基础证明: 证明P(1)为真.
(2)归纳步骤: 要证明对于所有正整数k来说,蕴含式 [ P ( 1 ) ∧ P ( 2 ) ∧ . . . ∧ P ( k ) ] → P ( k + 1 ) [P(1)\wedge P(2)\wedge ...\wedge P(k)]\rarr P(k+1) [P(1)∧P(2)∧...∧P(k)]→P(k+1)为真. 即:假设P(1),P(2),…,P(k)为真, 可得P(k+1)也为真.
回到我们的(推导1.0), 对于封闭公式 J ( 2 m + l ) = 2 l + 1 , n = 2 m + l . J(2^m+l) = 2l+1, n=2^m+l. J(2m+l)=2l+1,n=2m+l.
- 当n取1时, m=0,l=0. 所以式(1.9的基础J(1) = 1成立-----基础证明, 重点是m=0时,式子成立.
- 归纳步骤: 假设 J ( 2 m − 1 + l ) = 2 l + 1 J(2^{m-1}+l) = 2l+1 J(2m−1+l)=2l+1成立, 把 l l l换成 l 2 \frac{l}{2} 2l, 也就是假设$J(2^{m-1}+\frac{l}{2})] = 2\frac{l}{2}+1 $成立.
顺着推导1.0继续往下:
2
J
(
2
m
−
1
+
l
2
)
−
1
=
2
(
2
l
2
+
1
)
−
1
=
2
l
+
1
2J(2^{m-1}+\frac{l}{2}) -1=2(2\frac{l}{2}+1)-1 = 2l+1
2J(2m−1+2l)−1=2(22l+1)−1=2l+1
故式子1.9在偶数情况下得证.
理解这里的重点是理解第二数学归纳法. 每每看到这段时都要被中断一下.
奇数情况也类似.
2
m
+
l
2^m+l
2m+l是奇数,即是
2
n
+
1
2n+1
2n+1
2
n
+
1
=
2
m
+
l
2
n
=
2
m
+
l
−
1
n
=
2
m
−
1
+
l
−
1
2
\begin{aligned} 2n+1 &= 2^m+l\\ 2n &= 2^m + l - 1\\ n &= 2^{m-1} + \frac {l-1}{2} \end{aligned}
2n+12nn=2m+l=2m+l−1=2m−1+2l−1
即
(推导1.1)
J
(
2
m
+
l
)
=
2
J
(
2
m
−
1
+
l
−
1
2
)
+
1
\tag{推导1.1} J(2^m+l) = 2J(2^{m-1} + \frac {l-1}{2})+1
J(2m+l)=2J(2m−1+2l−1)+1(推导1.1)
归纳假设
J
(
2
m
−
1
+
l
−
1
2
)
=
2
l
−
1
2
+
1
J(2^{m-1} + \frac {l-1}{2}) = 2\frac{l-1}{2} + 1
J(2m−1+2l−1)=22l−1+1
则可得:
J
(
2
m
+
l
)
=
2
J
(
2
m
−
1
+
l
−
1
2
)
+
1
=
2
∗
(
2
l
−
1
2
+
1
)
+
1
=
2
(
l
−
1
+
1
)
+
1
=
2
l
+
1
\begin{aligned} J(2^m+l) &= 2J(2^{m-1} + \frac {l-1}{2})+1\\ &=2*(2\frac{l-1}{2} + 1) +1\\ &=2(l-1+1) + 1\\ &=2l+1 \end{aligned}
J(2m+l)=2J(2m−1+2l−1)+1=2∗(22l−1+1)+1=2(l−1+1)+1=2l+1
故式子1.9在奇数情况下得证.
所以式子1.9得证.
扩展一下成套方法:
假设有一种递归式:
(1.11)
f
(
1
)
=
α
;
f
(
2
n
)
=
2
f
(
n
)
+
β
,
n
⩾
1
;
f
(
2
n
+
1
)
=
2
f
(
n
)
+
γ
,
n
⩾
1.
\tag{1.11} \begin{aligned} f(1)&=\alpha;\\ f(2n)&= 2f(n) + \beta, n \geqslant1;\\ f(2n+1)&= 2f(n) + \gamma, n \geqslant1. \\ \end{aligned}
f(1)f(2n)f(2n+1)=α;=2f(n)+β,n⩾1;=2f(n)+γ,n⩾1.(1.11)
让我们尝试给这样的递归式求出一个封闭形式.
还是一样,先从小的情况开始:
(1.12) \tag{1.12} (1.12)
n n n | f ( n ) f(n) f(n) |
---|---|
1 | α \alpha α |
2 3 |
2
α
+
β
2\alpha + \beta
2α+β 2 α + γ 2\alpha\ \ \ \ \ \ \ + \ \gamma 2α + γ |
4 5 6 7 |
4
α
+
3
β
4\alpha + 3\beta
4α+3β 4 α + 2 β + γ 4\alpha+2\beta + \gamma 4α+2β+γ 4 α + β + 2 γ 4\alpha+\ \beta+2\gamma 4α+ β+2γ 4 α + 3 γ 4\alpha\ \ \ \ \ \ \ \ \ +3\gamma 4α +3γ |
8 9 |
8
α
+
7
β
8\alpha + 7\beta
8α+7β 8 α + 6 β + γ 8\alpha+6\beta + \gamma 8α+6β+γ |
从表格中可以看到,如果把
f
(
n
)
f(n)
f(n)对
α
,
β
,
γ
\alpha,\beta,\gamma
α,β,γ的依存关系分离开来,我们就能将它表示成:
(1.13)
f
(
n
)
=
A
(
n
)
α
+
B
(
n
)
β
+
C
(
n
)
γ
\tag{1.13} f(n) = A(n)\alpha + B(n)\beta + C(n)\gamma
f(n)=A(n)α+B(n)β+C(n)γ(1.13)
结合表格1.12, 可以猜出:
(1.14A)
A
(
n
)
=
2
m
;
B
(
n
)
=
2
m
−
1
−
l
C
(
n
)
=
l
n
=
2
m
+
l
,
0
⩽
l
<
2
m
,
(
n
⩾
1
)
\tag{1.14A} \begin{aligned} A(n) &= 2^m; \\ B(n) &= 2^m - 1 - l\\ C(n) &= l \\ n=2^m+l , 0\leqslant l < 2^m,(n\geqslant1) \end{aligned}
A(n)B(n)C(n)n=2m+l,0⩽l<2m,(n⩾1)=2m;=2m−1−l=l(1.14A)
步伐慢一点,整理一下.现在我们能确定的只有1.11,它是我们设想出来的一种递归式
我们假设它的解是:
(1.14B)
f
(
n
)
=
2
m
α
+
(
2
m
−
l
−
1
)
β
+
l
γ
\tag{1.14B}f(n) = 2^m\alpha + (2^m-l-1)\beta + l\gamma
f(n)=2mα+(2m−l−1)β+lγ(1.14B)
但是到现在为止,还只是假设而已. ----> 1.14是否成立还需要进一步证明.
还有,这个式子的封闭形式只和
A
(
n
)
,
B
(
n
)
,
C
(
n
)
A(n),B(n),C(n)
A(n),B(n),C(n)有关,和
α
,
β
 
γ
\alpha,\beta\,\gamma
α,βγ无关.
也就是说,无论
α
,
β
 
γ
\alpha,\beta\,\gamma
α,βγ取什么值,都不会影响
A
(
n
)
,
B
(
n
)
,
C
(
n
)
A(n),B(n),C(n)
A(n),B(n),C(n).
很神奇吧, 这个是我读到这里时一直拐不过弯的点. 从猜测来源,表1.12中可以看到这一点,
A
(
n
)
,
B
(
n
)
,
C
(
n
)
A(n),B(n),C(n)
A(n),B(n),C(n) 和
α
,
β
,
γ
\alpha,\beta,\gamma
α,β,γ无关.待证明的式子(1.14A)也是这样体现的.
所以我们可以让
α
=
1
,
β
=
γ
=
0
\alpha=1, \beta=\gamma=0
α=1,β=γ=0.
这样(1.11)就变成了
f
(
1
)
=
1
f
(
2
n
)
=
2
f
(
n
)
,
n
⩾
1
;
f
(
2
n
+
1
)
=
2
f
(
n
)
,
n
⩾
1.
n
=
2
m
+
l
,
0
⩽
l
<
2
m
,
(
n
⩾
1
)
\begin{aligned} f(1)&=1\\ f(2n)&= 2f(n), n\geqslant 1;\\ f(2n+1)&= 2f(n), n\geqslant 1. \\ n=2^m+l , 0\leqslant l < 2^m,(n\geqslant1) \end{aligned}
f(1)f(2n)f(2n+1)n=2m+l,0⩽l<2m,(n⩾1)=1=2f(n),n⩾1;=2f(n),n⩾1.
封闭形式就变成了
f
(
n
)
=
A
(
n
)
f(n) = A(n)
f(n)=A(n)
再代入上式,得:
f
(
1
)
=
1
f
(
2
n
)
=
2
A
(
n
)
,
n
⩾
1
;
f
(
2
n
+
1
)
=
2
A
(
n
)
,
n
⩾
1.
n
=
2
m
+
l
,
0
⩽
l
<
2
m
,
(
n
⩾
1
)
\begin{aligned} f(1)&=1\\ f(2n)&= 2A(n), n\geqslant 1;\\ f(2n+1)&= 2A(n), n\geqslant 1. \\ n=2^m+l , 0\leqslant l < 2^m,(n\geqslant1) \end{aligned}
f(1)f(2n)f(2n+1)n=2m+l,0⩽l<2m,(n⩾1)=1=2A(n),n⩾1;=2A(n),n⩾1.
- 现在可以开始证明
A
(
n
)
=
2
m
A(n) = 2^m
A(n)=2m, 也就是
A
(
2
m
+
l
)
=
2
m
A(2^m+l) = 2^m
A(2m+l)=2m了.
还是用归纳法:
1.1 基础:
当n =1时, m = 0, l = 0;
f ( 1 ) = 2 0 + 0 = 1 f(1) = 2^0 + 0 = 1 f(1)=20+0=1
1.2 归纳,
假设 2 m − 1 + l 2^{m-1}+l 2m−1+l是偶数
假设 A ( 2 m + l ) = 2 m A(2^{m}+l) = 2^{m} A(2m+l)=2m
左 边 : f ( 2 n ) = f ( 2 ∗ ( 2 m + l ) ) = f ( 2 m + 1 + 2 l ) f ( 2 m + 1 + 2 l ) = 2 A ( n ) = 2 A ( 2 m + l ) = 2 ∗ 2 m = 2 m + 1 \begin{aligned} 左边: f(2n) &= f \Bigl( 2*(2^m+l)\Bigr)\\ &=f(2^{m+1} + 2l)\\ f(2^{m+1} + 2l)&=2A(n)\\ &=2A(2^m+l)\\ &=2*2^m\\ &=2^{m+1}\\ \end{aligned} 左边:f(2n)f(2m+1+2l)=f(2∗(2m+l))=f(2m+1+2l)=2A(n)=2A(2m+l)=2∗2m=2m+1
假设 2 m − 1 + l 2^{m-1}+l 2m−1+l是奇数:
左 边 : f ( 2 n + 1 ) = f ( 2 ∗ ( 2 m + l ) ) = f ( 2 m + 1 + 2 l ) f ( 2 m + 1 + 2 l ) = 2 A ( n ) = 2 A ( 2 m + l ) = 2 ∗ 2 m = 2 m + 1 \begin{aligned} 左边: f(2n+1) &= f \Bigl( 2*(2^m+l)\Bigr)\\ &=f(2^{m+1} + 2l)\\ f(2^{m+1} + 2l)&=2A(n)\\ &=2A(2^m+l)\\ &=2*2^m\\ &=2^{m+1}\\ \end{aligned} 左边:f(2n+1)f(2m+1+2l)=f(2∗(2m+l))=f(2m+1+2l)=2A(n)=2A(2m+l)=2∗2m=2m+1
故: A ( n ) = 2 m A(n) = 2^m A(n)=2m - 接下来不基于刚才的计算, 重新审视一下(1.11)和(1.13).
1.1 如果我们让 f ( n ) = 1 f(n)=1 f(n)=1
则对于(1.11)
f ( 1 ) = α = 1 ; 可 得 : α = 1 f ( 2 n ) = 2 f ( n ) + β = 2 ∗ 1 + β = 1 ; 可 得 : β = − 1 f ( 2 n + 1 ) = 2 f ( n ) + γ = 2 ∗ 1 + γ = 1 ; 可 得 : γ = − 1 \begin{aligned} f(1)&=\alpha \\ &=1;\\ 可得:\alpha=1\\ f(2n)&= 2f(n) + \beta\\ &=2*1+\beta\\ &=1;\\ 可得:\beta=-1\\ f(2n+1)&= 2f(n) + \gamma\\ &=2*1+\gamma\\ &=1;\\ 可得:\gamma=-1 \end{aligned} f(1)可得:α=1f(2n)可得:β=−1f(2n+1)可得:γ=−1=α=1;=2f(n)+β=2∗1+β=1;=2f(n)+γ=2∗1+γ=1;
将 f ( n ) = 1 , α = 1 , β = − 1 , γ = − 1 f(n)=1, \alpha=1,\beta=-1,\gamma=-1 f(n)=1,α=1,β=−1,γ=−1代入方程(1.13),可得:
A ( n ) − B ( n ) − C ( n ) = 1 A(n) - B(n) - C(n)=1 A(n)−B(n)−C(n)=1
1.2 如果我们让 f ( n ) = n f(n) = n f(n)=n
则对于(1.11)
f ( 1 ) = 1 ; 可 得 : α = 1 f ( 2 n ) = 2 f ( n ) + β = 2 n + β 可 得 : β = 0 f ( 2 n + 1 ) = 2 f ( n ) + γ = 2 n + γ 可 得 : γ = 1 \begin{aligned} f(1)&=1;\\ 可得:\alpha=1\\ f(2n)&= 2f(n) + \beta\\ &=2n+\beta\\ 可得:\beta=0\\ f(2n+1)&= 2f(n) + \gamma\\ &=2n+\gamma\\ 可得:\gamma=1 \end{aligned} f(1)可得:α=1f(2n)可得:β=0f(2n+1)可得:γ=1=1;=2f(n)+β=2n+β=2f(n)+γ=2n+γ
将 f ( n ) = 1 , α = 1 , β = − 1 , γ = − 1 f(n)=1, \alpha=1,\beta=-1,\gamma=-1 f(n)=1,α=1,β=−1,γ=−1代入方程(1.13),可得:
A ( n ) + 0 ∗ B ( n ) + C ( n ) = n A(n) + 0*B(n) + C(n)=n A(n)+0∗B(n)+C(n)=n - 联立方程组:
{ A ( n ) = 2 m A ( n ) − B ( n ) − C ( n ) = 1 A ( n ) + C ( n ) = n \begin{cases} A(n) = 2^m\\ A(n) - B(n) - C(n)=1\\ A(n) + C(n)=n \end{cases} ⎩⎪⎨⎪⎧A(n)=2mA(n)−B(n)−C(n)=1A(n)+C(n)=n
可 得 C ( n ) = n − A ( n ) = n − 2 m . ∵ n = 2 m + l l = n − 2 m ∴ C ( n ) = l \begin{aligned} 可得 C(n) &= n-A(n) \\ &= n-2^m.\\ \because n&= 2^m + l \\ l&=n-2^m\\ \therefore C(n)&=l \end{aligned} 可得C(n)∵nl∴C(n)=n−A(n)=n−2m.=2m+l=n−2m=l
B ( n ) = A ( n ) − c ( n ) − 1 = 2 m − l − 1 \begin{aligned} B(n) &= A(n) -c(n) -1\\ &=2^m -l -1 \end{aligned} B(n)=A(n)−c(n)−1=2m−l−1
故: (1.14)得证