2016-09-19 91 views
3

我正在製作一個在線RPG遊戲,我使用這個數學公式(在線找到)來計算exp - > level。sqrt的反向計算()

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

我已經嘗試了幾天,使腳本來扭轉它。 我的目標是製作一個函數來計算一個關卡所需的exp的數量。

+0

well sqrt是pow的反義詞... – rak007

+0

@ rak007:這將是一個糟糕的實現。這個因素非常好。 – Bathsheba

回答

2

重排,有點因數分解的,

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

+0

編輯不正確;-)注意故意的-25和+25。 – Bathsheba

+0

是的,只是注意到...我的壞! :) –

+1

我們將共同發佈。 – Bathsheba

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

原來這是可以簡化甚至進一步:

$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 
+2

Ha。做得好。 Upvoted。 – Bathsheba