我有一个等式供我审核:
满足
x**2+y**2 <= 36
的整数对(x和y)的数量y = x - 4
是4,5,6,7还是8?
老师说如果可以为它创建一个脚本,他们将获得额外的标记。
我尝试使用python:
a = [[y+4, y] for y in xrange(100) if ((y+4)^2)+(y^2) <= 36] #I tried 100 just to test.
但是当我尝试时,它给出了17个答案。我正在寻找一种方法,这将给出指定的答案(4,5,6,7或8)。提前谢谢。
答案 0 :(得分:0)
将^
替换为**
,这是取幂的正确运算符。
另外,您可能希望将y放在[-2,6]范围内,因为只有2个正整数对满足您的条件(但没有禁止负整数,对吧?)。尝试:
>>> [(y-4, y) for y in range(-2, 7) if (y-4)**2 + y**2 <= 36]
>>> # answers here
答案 1 :(得分:0)
^
中的是Bitwise Exclusive运算符a ^ b
表示你需要使用**
它应该是:
a = [[y+4, y] for y in xrange(100) if ((y+4)**2)+(y**2) <= 36]