我一般是python和编程新手。 所以,前几天我偶然发现了欧拉的方程 不存在a,b,c,d全部为满足a ^ 4 + b ^ 4 + c ^ 4 = d ^ 4的等式的正整数。后来证明他错了,有解决办法。
目标:找到3个满足方程a ^ 4 + b ^ 4 + c ^ 4 = d ^ 4的整数,其中a,b,c,d均为正整数。
我对此的最初反应是用蛮力遍历它,迭代a,b和c,看看{数字的和加到4的平方和平方根两次}是否为整数。类似于if math.sqrt(math.sqrt(a**4+b**4+c**4))%1==0
的东西,但是发现math.sqrt()不会输出那么多的小数<-,因为要使用的小数很多。尝试使用Decimals()将数字强制转换为浮点数,但两者似乎都无效。我还使用了abs(k-int(k))== 0来查找它是否具有小数位,但这似乎也不起作用。
因此,我决定不使用math.sqrt(),而是尝试迭代另一个变量,看看它是否等于4 abc的幂的乘积。
t = False
此功能用于检查目标是否具有4的幂的整数
def transform(target, starter):
i = starter
check = False
while target != i**4:
if target > i**4:
i+=1
elif target < i**4:
if check:
return False
else:
i-=1
check = True
elif target == i**4:
return True
return True
主驱动程序
print ("Start")
for i in range(1,1000000):
for j in range(i,1000000):
for k in range(j, 1000000):
if transform(i**4+j**4+k**4,k):
print ("Answer:", i, j, k)
t = True
if i % 10000 == 0 and j % 10000 == 0 and k % 10000 == 0:
print ("Progress:",i,j,k,)
if t:
break
if t:
break
但是,当我尝试此操作时,它似乎陷入了无限循环或某种状态,因为我的笔记本电脑迷们在搅拌,并且它刚刚停止工作。 希望有人能告诉我da wae