美文网首页
python编程(四级)3、递归与递推

python编程(四级)3、递归与递推

作者: 你在干嘛HJ | 来源:发表于2020-11-26 09:10 被阅读0次

迭代法

迭代法解决问题的思路:

利用迭代算法解决问题,需要做好以下三个方面的工作:

确定迭代变量

在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。

建立迭代关系式

所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系)。迭代关系式的建立是解决迭代问题的关键,通常可以顺推或倒推的方法来完成。

对迭代过程进行控制

在什么时候结束迭代过程?这是编写迭代程序必须考虑的问题。不能让迭代过程无休止地重复执行下去。迭代过程的控制通常可分为两种情况:一种是所需的迭代次数是个确定的值,可以计算出来;另一种是所需的迭代次数无法确定。对于前一种情况,可以构建一个固定次数的循环来实现对迭代过程的控制;对于后一种情况,需要进一步分析出用来结束迭代过程的条件。

例题、迭代次数确定

1、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想吃时,只剩下一个桃子了。求第一天共摘多少个桃子。(1534)

2、一个饲养场引进一只刚出生的新品种兔子,这种兔子从出生的下一个月开始,每月新生一只兔子,新生的兔子也如此繁殖。如果所有的兔子都不死去,问到第 12 个月时,该饲养场共有兔子多少只?

3、阿米巴用简单分裂的方式繁殖,它每分裂一次要用 3 分钟。将若干个阿米巴放在一个盛满营养参液的容器内, 45 分钟后容器内充满了阿米巴。已知容器最多可以装阿米巴 220,220个。试问,开始的时候往容器内放了多少个阿米巴?请编程序算出。(7)

例题:

4、验证谷角猜想。日本数学家谷角静夫在研究自然数时发现了一个奇怪现象:对于任意一个自然数 n ,若 n 为偶数,则将其除以 2 ;若 n 为奇数,则将其乘以 3 ,然后再加 1。如此经过有限次运算后,总可以得到自然数 1。人们把谷角静夫的这一发现叫做“谷角猜想”。要求:编写一个程序,由键盘输入一个自然数 n ,把 n 经过有限次运算后,最终变成自然数 1 的全过程打印出来。


递推法

即通过已知条件,利用特定关系得出中间推论,直至得到结果的算法。递推算法分为顺推和逆推两种。

5、五个水手来到一个岛上,采了一堆椰子后,因为疲劳都睡着了。一段时间后,第一个水手醒来,悄悄地将椰子等分成五份,多出一个椰子,便给了旁边的猴子,然后自己藏起一份,再将剩下的椰子重新合在一起,继续睡觉。不久,第二名水手醒来,同样将椰子等分成五份,恰好也多出一个,也给了猴子。然后自己也藏起一份,再将剩下的椰子重新合在一起。以后每个水手都如此分了一次并都藏起一份,也恰好都把多出的一个给了猴子。第二天,五个水手醒来,发现椰子少了许多,心照不宣,便把剩下的椰子分成五份,恰好又多出一个,给了猴子。问原来这堆椰子至少有多少个?

(设置变量很重要)

顺推

倒推

迭代


递归法

1.确定递归公式

2.确定边界(终了)条件

用递归的方法完成下列问题

1.1+2+3+...+n

2.求n个整数的积

3.求n个整数的平均值

4.求n个自然数的最大公约数与最小公倍数

5.有一对雌雄兔,每两个月就繁殖雌雄各一对兔子.问n个月后共有多少对兔子

6.已知:数列1,1,2,4,7,13,24,44,...求数列的第 n项.


相关文章

  • python编程(四级)3、递归与递推

    迭代法 迭代法解决问题的思路: 利用迭代算法解决问题,需要做好以下三个方面的工作: 确定迭代变量 在可以用迭代算法...

  • 递归、迭代与递推三者的差别

    递归,递推,迭代的区别_csdn链接 递归: 程序调用自身的编程技巧称为递归,是函数自己调用自己。 使用递归要注意...

  • 递归与递推

    递归与递推 -1.枚举形式:状态空间规模:一般遍历方式:多项式n^k,k为常数循环(for),递推指数k^n, k...

  • js 总结六 7-18

    递归 递归技巧 假设递归函数已经写好 寻找递推关系 将递推关系的结构转换为递归体 将临界条件加入到递归体中递归思想...

  • Python递归

    在python中,如阶乘运算,函数的自身循环调用等叫做递归。递归主要有递推和回溯两个阶段。递归的效率低,需要在进入...

  • 快速排序

    图解 思想:分治思想 快速排序思路 递推公式既然设计到递归。下意识就要想使用递归的两个必要条件 递推公式递归退出条...

  • 腾讯校招C++练习题:母牛的故事——由递归到递推

    我们都知道递推(动态规划)是递归(搜索)的反向操作,本题虽然注明“【递归】”,但同样可以用递推方式解决本题。 由于...

  • 腾讯校招C++面试题:母牛的故事——由递归到递推

    我们都知道递推(动态规划)是递归(搜索)的反向操作,本题虽然注明“【递归】”,但同样可以用递推方式解决本题。 由于...

  • 学习路线

    一开始学习python——脚本语言编程趣学Python编程Python编程入门(第3版)父与子的编程之旅 : 与小...

  • 今天看看python的递归

    递归分为回推和递推两个阶段

网友评论

      本文标题:python编程(四级)3、递归与递推

      本文链接:https://www.haomeiwen.com/subject/xwzdiktx.html