как сгенерировать все возможные комбинации чисел, чтобы эффективно проверить последнюю теорему Ферма - PullRequest
0 голосов
/ 11 декабря 2018

Я пытаюсь написать короткий скрипт на python3, чтобы проверить последнюю теорему Ферма.Хотя я могу тестировать отдельные наборы, мне любопытно, как я могу протестировать «все» или тонну чисел одновременно.Я не уверен, как подойти к этому, так что примеры моего кода того, что я пробовал, немногочисленны.

Как я могу сгенерировать все возможные числовые перестановки для AB и C, где каждая из них> 2?Моя первая проблема с моим подходом, приведенным ниже, заключается в том, что списки в 32-битной системе ограничены примерно 5 миллионами элементов.

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)
...