算法实例-递推法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
猴子吃桃问题
猴子吃桃问题有一堆桃子不知数目,猴子第一 天吃掉一半,觉得不过瘾,又多吃了一只,第 二天照此办理,吃掉剩下桃子的一半另加一个, 天天如此,到第十天早上,猴子发现只剩一只 桃子了,问这堆桃子原来有多少个?
第几 天 假设 桃数
1
a1
2
a2
3
a3
4百度文库
a4
5
a5
6
a6
7
a7
8
a8
9
a9
10
a10
i>1? N 输出a[1]的值
end
数组变量(书见 数组变量 书见P.27或学科要求 或学科要求P.74) 书见 或学科要求
数组是一种特殊的变量,它在内存中的位置是 连续的,一个规模为10的数组在内存中占用10 个连续的存储单元,每一个存储单元对应于一 个数组元素。由于这种特点,可以用数组来存 储一批类型、作用相同的数据。 数组名、数组元素、数组元素名、数组元素值、 数组元素下标
算法实例
——递推法
递推法的概念
从头开始一步步地推出问题最终结果的方法, 就是递推法。 递推是序列计算中的一种常用方法。它是按照 一定的规律来计算序列中的每个项,通常是通 过计算前面的一些项来得出序列中的指定项的 值。如非常有名的斐波纳奇数列。
兔子问题
Kejian5.swf
大自然中斐波那契数列的身影 大自然中斐波那契数列的身影
(=1)
吃掉 的桃 数
a1 /2 +1 a2 /2+1 a3 /2+1 a4 /2+1 a5 /2+1 a6 /2+1 a7 /2+1 a8 /2+1 a9 /2+1
剩余 的桃 数
a1 /2-1
a2 /2-1
a3 /2-1
a4 /2-1 a5 /2-1
a6 /2-1
a7 /2-1
a8 /2-1
a9 /2-1
递推关系
a2= a1/2-1 ┇ a9= a8/2-1 a10= a9/2-1 a1= 2 * ( a2+ 1) ┇ a8= 2 * ( a9+ 1) a9= 2 * ( a1 0+ 1)
ai= 2 * ( ai + 1+1)
i=1,2,3,…,9
start 定义数组a[10],i=9
a[i]=2*(a[i+1]+1) i=i-1 Y
两片同向树叶的间隔 树叶片数,必定是斐 波那契数列中的某一 项。
大自然中斐波那契数列的身影 大自然中斐波那契数列的身影
花瓣的数目。会发现大 多数花朵的花瓣数目是3, 5,8,13,21,34,55, 89, … 例如百合花是 三瓣,梅花五瓣,飞燕 草八瓣。向日葵不是21 瓣,就是34瓣。雏菊都 是34,55,或89瓣。其 他数目很少出现。你不 妨留心数数看。