2010-05-14 3 views
2

У меня есть следующие функции:Математическая проблема

function getLevel(points) 
{ 
    var level = -1 + Math.sqrt(4 + points/20); 

    // Round down to nearest level 
    return Math.floor(level); 
} 

выше функция вычисляет уровень игрока в зависимости от их точек, моя проблема в том, что мне нужна функция, как это вычислить очки, необходимые для данного уровень.

+11

Начнем с расчета количества ответов, которые необходимо принять, чтобы повысить коэффициент приемки чуть выше 20%. –

+3

Как долго вы пробовали? Это должно быть разрешено с использованием математики средней школы. –

+0

Игнорирование 'Math.floor' (как вам должно) значительно упрощает. – Eric

ответ

4
Math.sqrt(4 + points/20) =  level + 1 

      4 + points/20 =  (level + 1)^2 

       points/20 =  (level + 1)^2 - 4 

       points  = 20 * ((level + 1)^2 - 4) 
         = 20 * ((level^2 + 2*level + 1) - 4) 
         = 20 * (level^2 + 2*level - 3 ) 
         = 20 * level^2 + 40*level - 60 
+0

спасибо, этот работал: очки = 20 * уровень * уровень + 40 * уровень - 60; – coolboycsaba

+2

Они должны все работать. Просто помните, что в javascript оператор '^' does * not * означает «поднять до степени». – Eric

12

Обратное этой функции будет:

points = ((level + 1)**2 - 4) * 20 

(где ** является оператором мощности).

+0

извините, но это не хорошо работает ... – coolboycsaba

+0

для уровня 10 он должен дать 2340, это дает 3960 – coolboycsaba

+0

Что не работает? На каком языке вы используете? – nevets1219

6
level = -1 + (4 + points/20) ** 0.5 
level + 1 = (4 + points/20) ** 0.5 
(level + 1) ** 2 = 4 + points/20 
(level + 1) ** 2 - 4 = points/20 
20 * ((level + 1) ** 2 - 4) = points 
2

Должно быть довольно легко, просто решить для точек:

   level    = -1 + Math.sqrt(4 + points/20) 
       level + 1   =  Math.sqrt(4 + points/20) 
     Math.pow(level + 1, 2)  =    4 + points/20 
     Math.pow(level + 1, 2) - 4 =     points/20 
20 * (Math.pow(level + 1, 2) - 4) =     points 

Итак:

points = 20 * (Math.pow(level + 1, 2) - 4) 
Смежные вопросы