《具体数学》第1章 递归问题
T1
很明显,在 \(n=2\) 的时候,根据题意得 \(1\) ~ \(n-1\) 也就是第 1 匹马,\(2\) ~ \(n\) 也就是第 2 匹马,然后让第 1 匹马与第 2 匹马颜色不同就行了
T2
我们设 \(f(n)\) 为 \(n\) 个圆盘所需要的最少移动次数,当 \(n=3\) 时
还没有移动的时候为:
1
2
3 _ _
而完成 \(n=2\) 的时候为:
1
3 _ 2
这其中的过程为,先把 1 2
往右移动一格
1
3 2 _
然后再往右“移动一格”,这步的操作数与上一步是一样的,因为都是 1 2
的整体移动,而且 3
比 1 2
都大所以可以看作没有 3
这个东西
1
3 _ 2
这样所需的次数为 \(f(2)\),接下来我们把它弄成 \(f(3)\)
先把 3
往右移动 \(1\) 格,共用了 \(f(2)+1\) 次操作
1
_ 3 2
然后我们把 1 2
往左移动 \(2\) 格,要用 \(f(2)\) 次操作,共用了 \(2 \times f(2)+1\) 次操作
1
2 3 _
把 3
右移 \(1\) 格,共用了 \(2 \times f(2)+2\) 次操作
1
2 _ 3
把 1 2
往右移动 \(2\) 格,要用 \(f(2)\) 次操作,共用了 \(3 \times f(2)+2\) 次操作
1
2
_ _ 3
于是完成了整个移动,\(f(3)=3 \times f(2)+2\)
因为在这部分操作中没有使用比 \(3\) 还大的圆盘,所以在 \(3\) 以内的圆盘都可以在那些大于 \(3\) 的圆盘上移动,不会受任何影响,然后这个递推式的推导也没有使用任何关于 \(f(2),f(3)\) 的值的信息,实际上直接可以用 \(i-1\) 和 \(i\) 替代,但是这样就不方便上面的模拟
总之,这个递推式就出来了,\(f(n)=3 \times f(n-1)+2,f(1)=2\)
简化,
设 \(g(n)=f(n)+1\)
移动序列的求法就是按照上面模拟的过程,递归求一下就行
T3
我们已经知道上一题的答案是 \(3^n-1\) 次操作了
然后刚好这题有 \(3^n\) 种不同的正确叠放方式(每个数字可以在三个柱子中的任意一个,然后肯定是从大到小从下到上放置,所以是 \(3^n\) 种)
那么在这个移动过程中,总没有人傻到会把同一种叠放叠出来 \(2\) 次吧,这跟 bfs 跑无权图最短路的 vis 标记类似,如果一个点被访问过了,说明有比现在更优的路径
然后,最少的次数都是 \(3^n-1\) 了,那不就是“把所有点都访问过了“么,也就是说在操作过程中会出现所有的正确叠放
什么?还差 1 ?
万一“起点和终点重叠呢?”,也就是说,0 次操作的时候也算一种正确摆放鸭
T4
不需要。
设 \(f(n)\) 表示 \(1\) ~ \(n\) 的圆盘归位的操作次数
当 \(n\) 号圆盘不需要移动的时候,\(f(n)=f(n-1)\)
当 \(n\) 号圆盘需要移动的时候,假设现在是最坏的情况: \(1\) ~ \(n\) 都在 A 柱上,然后要把 \(n\) 移到 B,\(1\) ~ \(n-1\) 还在 A 柱,那么就有 \(f(n)=2 \times f(n-1)+1\)
考虑 \(1\) ~ \(n\) 的时候,大于 \(n\) 的就不用考虑了,反正 \(1\) ~ \(n\) 都能放在它们上面
假设所有都是最坏情况,那么我们就得出了递推式 \(f(n)=2 \times f(n-1)+1\)
跟 T2
一样推,推出来是 \(f(n)=2^n-1\) ,恰好不大于 \(2^n-1\)
T5
不能。我画了半个小时才发现是画不出来的。。。最多 14
T6
先画 2 条相交的直线,然后就跟 \(n\) 条直线分平面一样了
\(f(n+2)=\frac {n(n+1)}{2}\)
即
\(f(0)=0,f(1)=0,f(2)=0\)
\(f(n)=\frac {(n-1)(n-2)}{2}, (n>2)\)
T7
归纳法没错,但是这里有个小问题
通过 \(H(2n)=2 , n\ge 1\) 推出 \(H(2n+1),n \ge 1\) 没问题,
但是你没发现,这里的 \(2n+1\) 因为 \(n \ge 1\) 所以没法取到 1 么
恰巧,\(H(1)=0 \ne 2\)
T8
暴力算
出现循环节了!!!
T9
其实就是证明算数平均值大于等于几何平均值,\(x_i\ge1\)
要用反向数学归纳法
先对两边同时开 \(n\) 次方
显然,\(P(1)\) 成立,\(x_1=x_1\)
显然,\(P(2)\) 成立,
证明
因为
所以
所以
所以
所以,\(P(2)\) 成立
显然,如果 \(P(n)\) 成立,那么 \(P(2n)\) 成立
证明
设 \(a_1=\frac {x_1+x_2+\cdots +x_n}{n} , a_2=\frac{x_{n+1}+x_{n+2}+\cdots +x_{2n}}{n} , b_1=\sqrt[n]{x_1x_2\cdots x_n} , b_2=\sqrt[n]{x_{n+1}x_{n+2}\cdots x_{2n}}\)
根据 \(P(2)\) 成立,我们可以推出
根据 \(P(n)\) 成立,我们推出
这里,你只要稍微想一想,假设 \(a_1=b_1,a_2=b_2\) ,那么 \(\frac {a_1+a_2}{2} \ge \sqrt{b_1b_2}\)
而,\(a_1,a_2\) 却是 \(\ge b_1,b_2\) ,那还用说,\(\frac {a_1+a_2}{2} \ge \sqrt{b_1b_2}\) 肯定成立
那么,
于是,我们可以通过 \(P(n)\) 成立来推出 \(P(2n)\) 成立
于是,对于任意的 \(P(2^k)\),都成立
显然,如果 \(P(n)\) 成立 ,那么 \(P(n-1)\) 也成立
证明
我们先想一下,要找一个 \(x_n\) 使得 \(\frac {x_1+x_2+\cdots +x_n}{n}=\frac {x_1+x_2+\cdots +x_{n-1}}{n-1}\)
于是,这里 \(\frac {x_1+x_2+\cdots +x_n}{n}=\frac {x_1+x_2+\cdots +x_{n-1}}{n-1}\)
那么就有:
两边同时 \(n\) 次方
把 \(x_n\) 代入
两边同时开 \(n-1\) 次根号
于是当 \(P(n)\) 成立时 \(P(n-1)\) 也成立
整理一下现在的条件,我们有
\(P(1),P(2)\) 成立,\(P(n)\) 成立时 \(P(2n)\) 成立,\(P(n)\) 成立时 \(P(n-1)\) 成立
于是,对于任何正整数 \(n\) , \(P(n)\) 都成立
于是
于是
原命题成立