我有以下功能:
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);
}
上面的函数根据玩家的积分计算玩家的等级,我的问题是我需要这样的函数来计算给定等级所需的积分。
该函数的逆函数是:
points = ((level + 1)**2 - 4) * 20
(**
电力运营商在哪里)。
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
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
应该相当容易,只需解决点:
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(左+1) 2 - 80