递归与循环书写方法

递归书写方法:

1、  严格定义递归函数的作用,包括参数,返回值,Side-effect

Side-effect:函数不仅操作参数和返回值还操作一些权值状态,程序运行本身也有可能对传入的参数进行改变,是执行程序的状态的变化,比较理想的做法是,在程序执行完之后没有Side-effect,即在运行中可以修改一些权值变量但在return的时候改回去

2、  先一般,后特殊

虽然最终函数逻辑和数学归纳法一样(有特殊处理,有一般处理),但写程序时要把一般的逻辑推倒先写完,然后再考虑特殊的值逻辑前面(因为我们起初是不知道有多少特殊情况要处理的),把特殊情况按逻辑插入到函数中

3、  每次调用必须缩小问题规模

4、  每次问题规模缩小程度必须为1(数学归纳法每次为1的递推关系)


循环书写方法:

循环不变式(loop  invariant):是一句断言定义各变量所满足的条件

 

变量a,b在进入和退出循环的时候条件仍然是满足的

 

循环书写方法:

1、  定义循环不变式,并在循环每次结束后保持循环不变式

2、  先一般,后特殊

3、  每次必须向前推进循环不变式中涉及的变量值

4、  每次推进的规模必须为1


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值