【发布时间】:2016-08-12 04:37:06
【问题描述】:
我真的不知道如何正确地写这个。我就是这样尝试的:
def is_cardano_triplet(a, b, c):
f = lambda x: x ** 1. / 2
g = lambda x: x ** 1. / 3
return g(a + b*f(c)) + g(a - b*f(c)) == 1
print is_cardano_triplet(2,1,5) # I should get True
我应该为2, 1, 5 获得True,但我没有。我的功能有什么问题?
【问题讨论】:
-
有
math.sqrt或math.pow函数,不需要自己实现。 -
你需要重新设计你的方程以纯粹根据整数工作,或者引入一个足够强大的符号数学库。 (另外,
x ** 1. / 2是(x ** 1.) / 2,而不是x ** (1. / 2)。) -
Python 遵循 BEDMAS 并且正如 user2357112 所指出的,除非您实现括号,否则您不会将数字提高到分数幂。
标签: python python-2.7 python-2.x