如何运行这个必须检查2 x 10^25组合的python程序?
我写了一个程序,生成前32个自然数的所有可能列表,并检查相邻数之和是否为完美平方 程序必须迭代2.3e25列表(相当多的零)。每当我运行该程序时,python内核就会崩溃。如何运行此程序 我的代码是如何运行这个必须检查2 x 10^25组合的python程序?,python,Python,我写了一个程序,生成前32个自然数的所有可能列表,并检查相邻数之和是否为完美平方 程序必须迭代2.3e25列表(相当多的零)。每当我运行该程序时,python内核就会崩溃。如何运行此程序 我的代码是 from itertools import permutations import math def check(nums): for i in range(len(nums) - 1): y = nums[i] + nums[i + 1] z = y *
from itertools import permutations
import math
def check(nums):
for i in range(len(nums) - 1):
y = nums[i] + nums[i + 1]
z = y ** 0.5
#till here found the square root of the sum of the adjacent numbers in list
if z.is_integer() ==False:
# if there is some two numbers that don't meet condition, function will return False
return False
return nums
x = list(permutations(range(1, 33)))
for q in range(len(x)):
if (check(x[q])):
print(x[q])
break
我要寻找的答案是
[1,8,28,21,4,32,17,19,30,6,3,13,12,24,25,11,5,31,18,7,29,20,16,9,27,22,14,2,23,26,10,15]
请帮帮我
PS感谢之前帮助我编写函数的成员
x
太大了,无法存储为列表<代码>置换创建一个生成器,这意味着它将动态生成值。这允许您在不存储所有值的情况下对其进行迭代
x = permutations(range(1, 33))
for num in x:
if (check(num)):
print(num)
break
虽然这回答了您的问题,但您的程序仍然无法解决您的问题。问题不是暴力可以这样解决的