Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Narazie rozkminilem dodawanie:
function pk_sum($a, $b) { do { $c = (($a & $b) << 0x01); $a = ($a ^ $b); $b = $c; } while ($c); return $a; }
Jak ktos wie jak zrobic to szybciej i czy w ogole to jest szybsze niz "standardowe" dodawanie to niech sie pochwali swoja wiedza :)
PS. To jest jak widac kod PHP i fajnie by bylo gdybyscie podawali przyklady pod PHP :)
Offline
mnozenie metoda "rosyjsch chlopow" (zwana tez "egipskich wiesniakow" badz "pruskich chlopow")
function mul($a, $b) { $c = 0; while($b) { if ($b % 2) $c = pk_sum($a, $c); $a = $a << 0x01; $b = $b >> 0x01; } return $c; }
dziala dla b nieujemnego!
nigdy nie pisalem w php wiec moze da sie uproscic
co do dodawania i jego efektywnosci:
dla procesorow CISC dodawanie jest 1 instukcja, jest szybkie, zoptymalizowane i moim zdaniem Twoje rozwiazanie nie bedzie efektywniejsze. na procesorach RISC dodawanie tez jest 1 instrukcja i tu na pewno Twoje rozwiazanie bedzie wolniejsze.
definiowanie w ten sposob operacji jest przydatne przy tworzeniu wlasnej arytmetyki operujacej np na duzych liczbach.
Offline
Czyli ze moge spobie podarowac bo i tak "standardowe" operacje arytmetyczne sa szybciej realizowane niz taka zabawa z operatorami bitowymi :>
Dzieki Odd, czulem ze taki bedzie koniec tej zabawy ale nie spodziewalem sie ze tak szybko :P
Offline
robimy dalej, teraz Twoja kolej robisz calkowanie bitowo (:
Offline
robimy dalej, teraz Twoja kolej robisz calkowanie bitowo (:
Wystarczy wziac jakas kwadraturke (np. Simpsona) i wszystko sprowadza sie do mnozenia i dodawania. Jak juz sie umie dodawac, odejmowac, mnozyc i dzielic to juz wszystko mozna ;-)
Offline
tylko ze nie mamy jeszcze mnozenia i dodawania dla liczb o zmiennym przecinku, a calkowanie na calkowitych jest troche niedokladne
Offline
Strony: 1