《具体数学》第1章 递归问题

Posted chinesepikaync

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《具体数学》第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 的整体移动,而且 31 2 都大所以可以看作没有 3 这个东西

    1
3 _ 2

这样所需的次数为 (f(2)),接下来我们把它弄成 (f(3))

先把 3 往右移动 (1) 格,共用了 (f(2)+1) 次操作

    1
_ 3 2

然后我们把 1 2 往左移动 (2) 格,要用 (f(2)) 次操作,共用了 (2*f(2)+1) 次操作

1
2 3 _

3 右移 (1) 格,共用了 (2*f(2)+2) 次操作

1
2 _ 3

1 2 往右移动 (2) 格,要用 (f(2)) 次操作,共用了 (3*f(2)+2) 次操作

    1
    2
_ _ 3

于是完成了整个移动,(f(3)=3*f(2)+2)

因为在这部分操作中没有使用比 (3) 还大的圆盘,所以在 (3) 以内的圆盘都可以在那些大于 (3) 的圆盘上移动,不会受任何影响,然后这个递推式的推导也没有使用任何关于 (f(2)f(3)) 的值的信息,实际上直接可以用 (i-1)(i) 替代,但是这样就不方便上面的模拟

总之,这个递推式就出来了,(f(n)=3*f(n-1)+2,f(1)=2)

简化,
[ f(n)+1=3*(f(n-1)+1) ]
(g(n)=f(n)+1)
[ g(n)=3*g(n-1) ]

[ g(n)=3^n ]

[ f(n)=3^n-1 ]

移动序列的求法就是按照上面模拟的过程,递归求一下就行

T9

其实就是证明算数平均值大于等于几何平均值,(x_ige1)

要用反向数学归纳法

先对两边同时开 (n) 次方
[ P(n):frac {x_1+x_2+...+x_n}n ge sqrt[n]{x_1x_2...x_n} ]
显然,(P(1)) 成立,(x_1=x_1)

显然,(P(2)) 成立,

证明
[ (frac {a+b}2)^2-ab ]

[ = frac {a^2+2ab+b^2}{4}-ab ]

[ =frac {a^2-2ab+b^2}{4}=frac{(a-b)^2}{4} ]

因为
[ (a-b)^2 ge 0 ]
所以
[ frac{(a-b)^2}{4} ge 0 ]
所以
[ (frac {a+b}2)^2 ge ab ]
所以
[ frac {a+b}2 ge sqrt{ab} ]
所以,(P(2)) 成立

显然,如果 (P(n)) 成立,那么 (P(2n)) 成立

证明

(a_1=frac {x_1+x_2+...+x_n}{n} , a_2=frac{x_{n+1}+x_{n+2}+...+x_{2n}}{n} , b_1=sqrt[n]{x_1x_2...x_n} , b_2=sqrt[n]{x_{n+1}x_{n+2}...x_{2n}})

根据 (P(2)) 成立,我们可以推出
[ frac {a_1+a_2}{2} ge sqrt{a_1a_2} ]
根据 (P(n)) 成立,我们推出
[ a_1 ge b_1,a_2ge b_2 ]
这里,你只要稍微想一想,假设 (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}) 肯定成立

那么,
[ frac {a_1+a_2}{2}ge sqrt{b_1b_2} ]

[ frac {frac {x_1+x_2+...+x_n}{n}+frac{x_{n+1}+x_{n+2}+...+x_{2n}}{n}}{2}ge sqrt{sqrt[n]{x_1x_2...x_n}*sqrt[n]{x_{n+1}x_{n+2}...x_{2n}}} ]

[ frac {frac {x_1+x_2+...+x_{2n}}{n}}{2}ge sqrt{sqrt[n]{x_1x_2...x_{2n}}} ]

[ frac {x_1+x_2+...+x_{2n}}{2n}ge sqrt[2n]{x_1x_2...x_{2n}} ]

于是,我们可以通过 (P(n)) 成立来推出 (P(2n)) 成立

于是,对于任意的 (P(2^k)),都成立

显然,如果 (P(n)) 成立 ,那么 (P(n-1)) 也成立

证明

我们先想一下,要找一个 (x_n) 使得 (frac {x_1+x_2+...+x_n}{n}=frac {x_1+x_2+...+x_{n-1}}{n-1})
[ frac {x_1+x_2+...+x_n}{n}=frac {x_1+x_2+...+x_{n-1}}{n-1} ]

[ (n-1)*(x_1+x_2+...+x_n)=n*(x_1+x_2+...+x_{n-1}) ]

[ (n-1)*(x_1+x_2+...+x_{n-1})+(n-1)*x_n=(n-1)*(x_1+x_2+...+x_{n-1})+(x_1+x_2+...+x_{n-1}) ]

[ (n-1)*x_n=(x_1+x_2+...+x_{n-1}) ]

[ x_n=frac {x_1+x_2+...+x_{n-1}}{n-1} ]

于是,这里 (frac {x_1+x_2+...+x_n}{n}=frac {x_1+x_2+...+x_{n-1}}{n-1})

那么就有:
[ frac {x_1+x_2+...+x_{n-1}}{n-1} ge sqrt[n]{x_1x_2...x_n} ]
两边同时 (n) 次方
[ (frac {x_1+x_2+...+x_{n-1}}{n-1})^n ge x_1x_2...x_n ]
(x_n) 代入
[ (frac {x_1+x_2+...+x_{n-1}}{n-1})^n ge x_1x_2...x_{n-1}*frac {x_1+x_2+...+x_{n-1}}{n-1} ]

[ (frac {x_1+x_2+...+x_{n-1}}{n-1})^{n-1} ge x_1x_2...x_{n-1} ]

两边同时开 (n) 次根号
[ frac {x_1+x_2+...+x_{n-1}}{n-1} ge sqrt[n-1]{x_1x_2...x_{n-1}} ]
于是当 (P(n)) 成立时 (P(n-1)) 也成立

整理一下现在的条件,我们有

(P(1),P(2)) 成立,(P(n)) 成立时 (P(2n)) 成立,(P(n)) 成立时 (P(n-1)) 成立

于是,对于任何正整数 (n)(P(n)) 都成立

于是
[ frac {x_1+x_2+...+x_n}n ge sqrt[n]{x_1x_2...x_n} ]
于是
[ x_1x_2...x_n le (frac {x_1+x_2+...+x_n}{n})^n ]
原命题成立

以上是关于《具体数学》第1章 递归问题的主要内容,如果未能解决你的问题,请参考以下文章

算法Sedgewick第四版-第1章基础-001递归

具体数学第二版第一章习题

第二模块第18章 函数递归

《高等应用数学问题的MATLAB求解》——第8章习题代码

第3章 递归

《高等应用数学问题的MATLAB求解》——第7章习题代码