找到满足2个方程的整数对的数量

时间:2015-01-12 00:49:38

标签: python math

我有一个等式供我审核:

  

满足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)。提前谢谢。

2 个答案:

答案 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)

python ^中的

是Bitwise Exclusive运算符a ^ b

表示你需要使用**

它应该是:

a = [[y+4, y] for y in xrange(100) if ((y+4)**2)+(y**2) <= 36]