鱼C论坛

 找回密码
 立即注册
查看: 1422|回复: 8

第22讲使用递归模拟power,return x * power(x, y-1)是如何把x提出来相乘

[复制链接]
发表于 2020-4-17 12:02:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Wsg624 于 2020-4-17 12:13 编辑

def power(x, y):
    if y:
        return x * power(x, y-1)
    else:
        return 1
   
return x * power(x, y-1)带入 (2,4)的话就是 2 * power (2,4-1)  -> 2 * power(2 ,3)->2*2,  为什么不是2*3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-17 12:03:58 | 显示全部楼层
?什么意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-17 12:08:18 | 显示全部楼层


2*power(2,4)   是2*2而不是2*4,有点没想明白.....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-17 12:08:37 | 显示全部楼层
x就是参数里的x啊,每次把那个x提出来进行下一次运算
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-17 12:16:56 | 显示全部楼层
qiuyouzhi 发表于 2020-4-17 12:08
x就是参数里的x啊,每次把那个x提出来进行下一次运算

是if y把y设定成了判断条件,然后下面的power(x,y)都是把x作为每次的运算参数么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-17 12:18:35 | 显示全部楼层
Wsg624 发表于 2020-4-17 12:16
是if y把y设定成了判断条件,然后下面的power(x,y)都是把x作为每次的运算参数么?

对的,因为x是底数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-17 13:12:40 | 显示全部楼层
这是幂,不是乘法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-20 14:38:12 | 显示全部楼层
本帖最后由 ThreeCat 于 2020-7-20 14:43 编辑

它不是说直接乘以后面的参数,而是乘以上次调用的结果。

def power(x, y):
    if y:
        return x * power(x, y-1)
    else:
        return 1
这里的return 1很重要,return 1是说y=0时函数运行结果返回1,这个y-1总会等于0,那么我们就从0开始倒着算,
如果参数是2,4,你可以把这个过程分解为:
y=0那次执行函数返回1;
y=1那次返回的是2*1 = 2;
y=2那次返回的是2*(2*1) = 4;此处加括号为了看起来明了。
y=3那次返回的是2*(2*(2*1)) = 8;
y=4那次返回的是2*(2*(2*(2*1))) = 16。


这个过程也印证了为什么递归的两个基本条件的第二条 “设置了正确的返回条件


个人理解,欢迎指正
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-20 16:26:01 From FishC Mobile | 显示全部楼层
def power(x, y):
    if y:
        return x * power(x, y-1)
    else:
        return 1

power(x,y)=x^1*power(x,y-1)=x^2*power(x,y-2)=x^y*power(x,y-y)=x^y*power(x,0)=x^y*1=x^y
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 11:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表