如何生成所有可能的数字组合以有效地检查费马最后定理

时间:2018-12-11 16:12:37

标签: python-3.x math itertools

我正在尝试在python3中编写一个简短的脚本来测试Fermat的最后一个定理。虽然我可以测试单个集合,但我很好奇如何测试“全部”或一次大量的数字。我不确定如何解决这个问题,所以我尝试过的代码示例很少。

我如何为A B和C生成大于2的所有可能的数字排列?我下面的方法的第一个问题是32位系统上的列表似乎仅限于500万个项目。

def fermat(a, b, c, n):
    return a**n + b**n == c**n

def test_fermat():
    alist, blist, clist, nlist = [a for a in range(2, 5000000000)], [b for b in range(2, 5000000000)], [c for c in range(2, 5000000000)], [n for n in range(2, 5000000000)]
    mixed = itertools.product(alist,blist,clist,nlist)
    for item in mixed:
        a,b,c,n = item[0], item[1], item[2], item[3] 
        print(a,b,c,n)
        fermat(a,b,c,n)

0 个答案:

没有答案