9 / 12
Oct 2017

Byłoby super gdybyś sprawdził czy ta jest dobra:

image

Dostałem ją kiedyś od narbeja z komentarzem:

Możesz pobrać pliki testowe i sprawdzić wyniki np w c/c++, a potem dopiero próbować w pythonie.

ale sam nie zrobiłem tego zadania,

EDIT: prawidłowa formuła jakieś 7 postów niżej.

Dzięki, jeżeli uda mi się zrobić to potwierdzę.

Podany wzór odtwarzałem na podstawie mojego AC zgłoszenia. Jeszcze raz tam zajrzałem i widzę “małą” ale istotną różnicę. Drugi składnik iloczynu to nie:
(i - y)**2 tylko (i - y)**3 /// w notacji pythona. Czyli do potęgi 3 a nie do potęgi 2, jak wcześniej podałem.

Jak pisałem, pisałem z pamięci. Nie chodzi o zsumowanie i podanie zsumowanego wyniku modulo 2^^64, tylko sumowanie cząstkowe też musi być modulo 2^6 i nie umiem tego zapisać poprawnie w wolframie. Zapis równanie też możliwe, że nie jest poprawnmy.-pierwszy nawias wewnątrz sumy, albo dwa razy modulo:
f(x,y,z) = (suma(i od 0 do 1000, ((i+x)^2*(i-y)^3*(xi^2+yi+z)^(i%2))%2^64))%2^64

Edit
[f(x,y,z) = (suma(i od 0 do 999, ((i+x)^2*(i-y)^3*(xi^2+yi+z)^(i%2))%2^64))%2^64]
Zakres od 0 do 999 lub w pythonie range(1000)

WolframAlpha2

PS
Przecież prosiłem, abyście to sprawdzili, a ja znowu musiałem za was liczyć w pamięci :wink:

Przecież cały czas mówiłem, że do 1000 [bez 1000] :wink: Najważniejsze, że doszliśmy do konsensusu, czyli poprawnego wzoru?

Fakt, nie ma to znaczenia czy dodajemy i na końcu dopiero obliczamy modulo, czy przy każdym dodawaniu obliczamy modulo - ale wtedy nie potrzebnie tracimy czas - chyba zapadam już w sen zimowy :wink:

I haven’t got such a power, and I slowly falling in [to] hibernation [winter drim] :wink:

Panowie, świetnie poszło. Wzór poprawny i zadanie zaliczone. :slight_smile: