sqrt()的逆向计算

Reverse calculation of sqrt()

我正在制作一个在线 RPG 游戏,我在其中使用这个数学公式(在网上找到)来计算 exp -> level。

$level = (25 + sqrt(625 + 100 * $exp)) / 50;

我已经尝试了好几天来制作一个脚本来逆转它。 我的目标是制作一个函数来计算一个级别所需的经验值。

通过重新排列和一些分解,

$exp = 25 * $level * ($level - 1)

$exp = ((((50 * $level) - 25)**2) - 625)/100
$exp = (pow(50 * $level - 25, 2) - 625) / 100;

事实证明可以进一步简化为:

$exp = 25*($level*$level - $level);

推导:

l=(25 + sqrt(625 + 100e))/50
50l=25 + sqrt(625 + 100e)
50l-25=sqrt(625 + 100e)
(50l-25)^2=625 + 100e
(25*(2l-1))^2=625 + 100e
625*((2l-1))^2=625 + 100e
625*((2l-1))^2 - 625= 100e
625*((2l-1)^2 - 1) = 100e
625*((2l-1)^2 - 1)/100 = e
125*((2l-1)^2 - 1)/20 = e
25*((2l-1)^2 - 1)/4 = e
25*(4l^2-4l + 1- 1)/4 = e
25*(4l^2-4l)/4 = e
25*(l^2-l) = e