ďťż

Ładny brzuch

Witam, chciałbym napisać funkcję która podzieli modulo (zwróci resztę z dzielenia) liczby 128 bitowej (zapisanej za pomocą dwóch zmiennych typu unsigned long long - starsza i młodsza część bitów) przez liczbę 64 bitową (jedna zmienna typu unsigned long long).

Zależy mi na tym by problem był rozwiązany w kilku(nastu) instrukcjach, bez pętli, bez implementowania żadnych skomplikowanych algorytmów numerycznych.

Na początku problem wydawał mi się strasznym banałem, aczkolwiek przez długi czas nie mogę znaleźć efektywnego rozwiązania... Co prawda wymyśliłem już dwa pośrednie rozwiązania - jeden z nich stabilizuje się i zwraca wynik po kilku przebiegach, drugi także wymaga kilku obiegów - ale to nie jest to czego szukam! Funkcja ma zwrócić wynik bez użycia pętli itd (zależy mi na efektywności).



a zastanowiłeś się jaka jest złożoność operacji np. na zwykłych integerach:
a%b
?
Pozdro ;-)
Użytkownik Pinochet edytował ten post 24 październik 2007, 07:04
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •