Efektywne obliczanie cechy górnej z log2(k) c++

0

Witam,
Muszę policzyć cechę górną z log2(k) dla dużej ilości k (k=0,...100000). Zaimplementowałem prosta funkcje:
[code]
int Cecha(int k)
{
double cecha = log(k) / log(2);
int cecha_int = (int) cecha;
if (cecha > cecha_int)
cecha_int += 1;
return cecha_int;
}
[/code]

Pisze aplikację na PDA, w której to wykorzystuję. Problem jest taki, że długo to trwa ze względu na ograniczenia PDA... Macie jakieś pomysły?

0
  1. Przemyśl problem, zamiast rozwiązywać go na głupa.
  2. nie używaj do tego celu obliczeń zmiennoprzecinkowych (to one są tak wolne na PDA), czyli zapomnij o log.
  3. matma i jeszcze raz matma

edit: PS. w brew pozom problem jest banalnie prosty i sprowadza się do odnalezienia najstarszego .... .

0

Wow! Podsunąłeś dobre rozwiązanie -> operacje bitowe :) Dzięki temu mój program działa o wiele wiele szybciej. Naprawdę dzięki!

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