在数学中,丢番图方程是一个多项式方程,通常有两个或两个以上的未知数,因此只寻求或研究整数解
这是一个方程式:
x**2 - 4 * y**2 = n
(其中未知数是x
和y
,并且n
是给定的正数
我的函数遍历0-n
之间的每个值。这是低效的,并且不能总是处理大的n
数。获取第一个未知变量的最佳方法是什么
def sol_equa(n):
answers = []
for x in range(1 , n+1):
y = ((x ** 2 - n) / 4) ** (1 / 2)
try:
if y == y // 1:
answers.append([x, int(y)])
except TypeError:
continue
if len(answers) >= 1:
answers = list(reversed(answers))
return answers
else:
return []
sol_equation(90005) --> "[[45003, 22501], [9003, 4499], [981, 467], [309, 37]]"
您可以使用^{} 。把你的方程取为
如果只需要正解,可以使用set comprehension:
执行时间测试
相关问题 更多 >
编程相关推荐