2016-09-19 12 views
3

私はオンラインRPGゲームを作っています。このRPGゲームでは、計算式(オンラインで見つけたもの)を使って計算 - >レベルを計算します。sqrt()の逆計算

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

私はそれを逆にするスクリプトを作成しようとしました。 私の目標は、あるレベルに必要なexpの量を計算する関数を作ることです。再配置と因数分解のビットで

+0

よく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