Autor Zpráva
stepi15
Profil
dobry den poreboval bych tento vzorec obratit

  function experience($L) {
    $a=0;
    for($x=1; $x<$L; $x++) {
      $a += floor($x+300*pow(2, ($x/7)));
    }
    return floor($a/4);
  }
  $sad = $cilovy_lvl;
  $cilovy_xp = experience($sad);


kdyz promenou $cilovy_lvl dam 2 tak $cilovy_xp se bude rovnat 83

a ja bych potreboval ze budu davat promenou $cilovy_xp a bude me to pocitat $cilovy_lvl

predem diky jestli se bude nekomu chtit
nightfish
Profil
pokud $cilovy_lvl je celé číslo v nějakých rozumných hranicích (řekněme 0..1000), tak bych si pro každý level spočítal hodnotu $cilovy_xp a pak podle hodnoty $cilovy_xp vyhledával v takto vzniklé "tabulce"
stepi15
Profil
no cilovy xp je bude od 83 az do 13034431

a cilovy lvl je od 2 do 99 v celych cislech
nightfish
Profil
stepi15
a cilovy lvl je od 2 do 99 v celych cislech

$pole = array();
for ($lvl=2; $lvl<=99; $lvl++) {
  $pole[$lvl] = experience($lvl);
}

function getLevel($xp) {
  global $pole;
  $lvl = 2;
  while ($pole[$lvl] < $xp) $lvl++;
  return $lvl;
}


(samozřejmě pole $pole si někam uložíš předgenerované, nebudeš ho vypočítávat při každém načtení stránky)
(algoritmus počítá s tím, že levely jsou celá čísla, tzn. např. hodnoty 442 a 443 odpovídají stejnému číslu levelu...)
stepi15
Profil
takze me toto vypocitat z cisla 83 a vysledek by mek byt 2

uz sjem anto prisel ale ovlivnuje me to ten vzorec ja tam mam totiz 2 ten puvodni a ten obraceny

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: