proste równanie, ale na całkowitych dodatnich

0

a4 + 5b4 = c4

no i należy to rozwiązać, dla a, b, c, naturalne, znaczy: 1,2,3, 4, ...

przykładowo: 1, 2, 3 spełnia to równanie:
14 + 524 = 1+516 = 1 + 80 = 81 = 92 = 34

są jakieś inne rozwiązania?

Aha! Wielokrotności pomijamy, tz. k*(1,2,3) też to spełnia dla dowolnej k, zatem to nas nie interesuje.

0

Polecam wzory Ferrari

0

Nie nadaje się.
Te wzory Ferrari służą do rozwiązywania równań 4-tego stopnia,
czyli takich z jedną zmienną zaledwie, a nie z trzema, i do tego w naturalnych.

0

Jak pasuje ci O(N2) to tworzysz zbiór c4 = (14,24,34, ... N4) każdy z każdym w czasie O(N2) tworzysz zbiór a4 + 5b4 sortujesz go - czyli zostajemy przy O(N2) i w czasie liniowym porównujesz z c4

0
_13th_Dragon napisał(a):

Jak pasuje ci O(N2) to tworzysz zbiór c4 = (14,24,34, ... N4) każdy z każdym w czasie O(N2) tworzysz zbiór a4 + 5b4 sortujesz go - czyli zostajemy przy O(N2) i w czasie liniowym porównujesz z c4

Może być cokolwiek aby działało w dość dużym zakresie, ale i czasowo sensowne.

Twoja metoda raczej nie dobra, bo już dla liczb rzędu 100 wysypie się na uint32;
232 = 2564, czyli zaledwie do 256 można to liczyć,
dla 64 bitowych limitem byłoby: 256^2 = około 65 tyś. co też jest raczej niewielkie.

Dobrze byłoby żeby chociaż do miliarda to działało... no ale wtedy mamy zakres liczb do: mld4 = 1036 > 2119.

0

"BigInt i działa - _13th_Dragon"

No, nie za bardzo działa, bo ten twój 'algorytm' wymagałby tablicy miliarda liczb typu BigInt, czego ram nie pomieści.

Nawet 8B na liczbę dałoby tu 8GB RAM, czyli... no po prostu.. wielki siusiak. :)

0

chodzi mi o jakich sprytniejszy algorytm, np. coś w stylu:

b4 = c4-a4 = (c-a)(c+a)(c2+a2) / 5

i teraz sprawdzamy czy to z lewej jest kwadratem, czyli tak:
b2 = sqrt[(c-a)(c+a)(c2+a2) / 5],
co znaczy że c-a lub c+a lub ten trzeci czynnik dzieli się przez 5,
i ponadto jest kwadratem jakiejś naturalnej, znaczy b2.

wtedy chyba już nie potrzeba używać aż tak dużych liczb, bo mamy tu już pierwiastek,
co zmniejsza o połowę zakres, znaczy zamiast 36 cyfrowych liczb będzie tylko do 18, co już się zmieści w 64 bitach - nie?

0

Chyba to nie ma innych rozwiązań poza 1,2,3... a może ma ktoś?

1 użytkowników online, w tym zalogowanych: 0, gości: 1