程序员数学 | 迭代法

⼈类做重复性的劳动没有效率,⽽计算机却能更快更准确的完成重复性劳动。所以以重复为特点的迭代法在编程中有着⼴泛的应⽤。实际项目中是否可以用不断更新变量值或者缩小搜索的区间范围的方法,来获得最终的解(或近似解、局部最优解)?如果是,那么你就可以尝试迭代法。


还记的那个有名的麦子故事吗?

古印度国王舍罕酷爱下棋,他打算重赏国际象棋的发明⼈宰相⻄萨·班·达依尔。这位聪明的⼤⾂指着象棋盘对国王说:“陛下,我不要别的赏赐,请您在这张棋盘的第⼀个⼩格内放⼊⼀粒⻨⼦,在第⼆个⼩格内放⼊两粒,第三⼩格内放⼊给四粒,以此类推,每⼀⼩格内都⽐前⼀⼩格加⼀倍的⻨⼦,直⾄放满64个格⼦,然后将棋盘上所有的⻨粒都赏给您的仆⼈我吧!”

国王⾃以为⼩事⼀桩,痛快地答应了。可是,当开始放⻨粒之后,国王发现,还没放到第⼆⼗格,⼀袋⻨⼦已经空了。随着,⼀袋⼜⼀袋的⻨⼦被放⼊棋盘的格⼦⾥,国王很快看出来,即便拿来全印度的粮⻝,也兑现不了对达依尔的诺⾔。

放满这64格到底需要多少粒麦子?这是个相当⼤的数字,在数学上是有对应⽅法的,就是
迭代法(Iterative Method)


迭代法,简单说就是:不断用旧的变量值,递推计算新的变量值。

回到刚才的故事:要求每⼀格的麦子都是前⼀格的两倍,那么前⼀格里麦子的数量就是旧的变量值,可以先记作 X n − 1 X_{n-1} X

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Turbo正则

如果对您有用请我喝杯咖啡吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值