为了账号安全,请及时绑定邮箱和手机立即绑定

还是不明白这个r是什么意思,为什么return里self.p要乘r.q

http://img1.sycdn.imooc.com/5f6340dd00011c8203750443.jpg还是不明白这个r是什么意思,为什么return里self.p要乘r.q

正在回答

3 回答

程序里的 self.p * r.q用来计算通分后分数的分子。

这里把有理数用分数表示,有理数的运算也就成了分数的运算,如计算:1/3 + 1/5,

先进行通分变成:5/15 + 3/15,这个5/15的分子就是程序里的 self.p * r.q

3 回复 有任何疑惑可以回复我~

哦哦之前也一直没明白,谢谢解答

0 回复 有任何疑惑可以回复我~

r1=(1,2),r2=(2,3),r1其实是二分之一,r2其实是三分之二。r1+r2,计算的结果其实是(1*3+2*2)/(2*3).self.p=1,self.q=2,r是r2的参数,r.p=2,r.q=3.你手动算算两个分数相加,怎么做,当然是先把分母同分,分母找最大公约数最简单的方法就是两个分母相乘。建议你看看源码中的truediv就能大概理解了

4 回复 有任何疑惑可以回复我~
#1

葡萄葡萄

r1,r2应该都算是传入的self实例吧?那这个self.p 怎么知道是r1的p还是r2的p呢?
2020-10-23 回复 有任何疑惑可以回复我~
#2

weixin_宝慕林6104750 回复 葡萄葡萄

R1和R2都是两个实例,在Rational类里确实都进行了传递,但你反过来从Print(r1+r2)开始看就好理解了,别管前边是如何的,之后当程序执行到Print(r1+r2)这一步__add__才起作用.那么程序就会默认R1为传进去的参数,R2作为辅助数字
2021-04-09 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

还是不明白这个r是什么意思,为什么return里self.p要乘r.q

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信