Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 380 Pomógł: 59 Dołączył: 24.04.2010 Skąd: London Ostrzeżenie: (0%)
|
Witajcie mój problem brzmi następująco mam do napisania klase która w sposób rekurencyjny ma realizować potęgowanie i taką napisałem,
kolejną rzeczą jest to że obiekt tej klasy ma buforować wyniki i wykorzystać bufor zamiast wykonywania metody co przez to rozumiecie? Ten post edytował lord2105 17.08.2010, 17:07:35 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
Flashdev: Twoja metoda jest dobra dla dużych potęg, jednak dla niższych niekoniecznie. Zwróć uwagę na konieczność sprawdzania czy dana potęga już aby nie wystąpiła w trakcie obliczeń. Jak chcesz rozwiązać ten akurat problem? Deklarowanie tablicy wyników potęg typu przykładowo dla 5 array( 1 => 5, 2 => 25, 4 => 625, 8 => 390625) a potem sprawdzając czy mnożenie potęgi aktualnej * 2 jest większe od wymaganej? Jeśli tak wykonaj operację, dodaj do tablicy potęg i rób dalej rekurencję. Jeśli nie leć dodaj bezpośrednio niższą potęgę i sprawdź czy większa od wymaganej. Jeśli nie dodaj potęgę a wynik pomnóż przez odpowiadającą mu wartość. I tak aż do osiągnięcia właściwej potęgi. Trochę zagmatwanie napisałem, ale chyba rozumiesz o co chodzi.
Jednym zdaniem: "Dla względnie małych potęg naddatek operacji sprawdzających odbije się negatywnie na wydajności i ta rekurencja puszczona wprost na koprocesor wykona się znacznie szybciej, bo ma on dedykowane rejestry do tego typu zadań." |
|
|
|
lord2105 Potęgowanie rekurencyjne 17.08.2010, 17:04:50
flashdev To, że jeśli podnosisz np. N ^ 10, to można to roz... 17.08.2010, 17:28:13
everth Przekazuj w parametrze funkcji tablicę zawierająca... 17.08.2010, 17:32:06
lord2105 Po części chwyciłem o co Wam chodzi lecz bufor pow... 17.08.2010, 17:41:32
flashdev Cytat(lord2105 @ 17.08.2010, 18:41:32... 17.08.2010, 17:50:58
everth @lord105 - nie wywołuj rekurencyjnie w metodzie tw... 17.08.2010, 18:17:15
flashdev Cytat(thek @ 18.08.2010, 09:26:07 )
... 18.08.2010, 10:23:52
thek Swój algorytm oparłem o logiczne przemyślenie krok... 18.08.2010, 11:49:53
flashdev No skoro ta różnica będzie niezauważalna, albo naw... 18.08.2010, 12:09:10
lord2105 Dziękuję bardzo za wyczerpujące odpowiedzi ale czy... 18.08.2010, 14:40:43
flashdev Ponieważ nie wytłumaczyłem (uznałem to za oczywist... 18.08.2010, 16:16:51 ![]() ![]() |
|
Aktualny czas: 3.04.2026 - 21:53 |