我有以下功能:數學問題
function getLevel(points)
{
var level = -1 + Math.sqrt(4 + points/20);
// Round down to nearest level
return Math.floor(level);
}
上述函數根據自己的積分選手的水平,我的問題是,我需要這樣的功能來計算所需要的特定點水平。
我有以下功能:數學問題
function getLevel(points)
{
var level = -1 + Math.sqrt(4 + points/20);
// Round down to nearest level
return Math.floor(level);
}
上述函數根據自己的積分選手的水平,我的問題是,我需要這樣的功能來計算所需要的特定點水平。
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
謝謝,這一個工作:分= 20 *級*級+ 40 *級 - 60; – coolboycsaba 2010-05-14 22:15:57
他們都應該工作。請記住,在JavaScript中,'^'操作符不會*意味着「提高權力」。 – Eric 2010-05-24 17:45:40
該函數的逆將是:
points = ((level + 1)**2 - 4) * 20
(其中**
是冪運算符)。
對不起,但這不是工作很好... – coolboycsaba 2010-05-14 22:04:07
級別10它應該給2340,這給3960 – coolboycsaba 2010-05-14 22:04:50
什麼不工作?你在用什麼語言? – nevets1219 2010-05-14 22:05:32
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
20(L + 1) - 80
應該是相當容易,只是解決點:
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)
讓我們開始計算您需要接受多少答案,以提高您的接受比率略高於20%? – 2010-05-14 22:00:21
你試了多久?這應該可以用高中數學來解決。 – 2010-05-14 22:02:34
忽略'Math.floor'(如你應該)大大簡化了事情。 – Eric 2010-05-14 22:04:32