我不擅长数学,而且我希望将3个数学方程式转换为php函数。
我已经尝试过如何在php中单独完成方程式的各个部分,但是我一直都会遇到奇怪的结果,所以我一定做错了。
是否存在指数增长的PHP函数?
带方程的图像在这里: http://i.imgur.com/zIhMEEu.jpg
由于
对于第二个等式,这就是我所拥有的:
$rank = 50;
$xp = log(24000 * (2^($rank/6) - 1));
echo $xp;
这个数字太小,不能正确。我也不确定如何转换' ln 2'进入PHP。 log()函数似乎出现在php'的自然对数之下。搜索范围。
答案 0 :(得分:4)
为了创建这些方程式,需要组合各种函数。 log
函数在您选择的基础上执行对数运算(如果您不提供基数,则为ln
)。 pow
函数执行取幂。
你的等式将是:
function rank($xp) {
return floor(6 * log((xp * log(2) / 24000 + 1), 2));
}
function xp($rank) {
return floor(24000 * (pow(2, (rank / 6)) - 1) / log(2));
}
function kills($rank) {
return floor(xp($rank) / 200);
}
为了清楚起见,还有一些括号比绝对需要的更多。
一般来说,数学符号比大多数编程语言(不仅仅是PHP)更加紧凑和富有表现力,因为您可以使用任何您能想到的符号来表示各种概念。在编程中,你会卡住调用函数。
此外,我不确定各种硬编码的数字代表什么,或者在公式的上下文中更改它们是否有意义,但您可能想要将它们设置为额外参数功能。例如:
function kills($rank, $killsPerXp = 200) {
return floor(xp($rank) / $killsPerXp);
}
这增加了代码的清晰度,因为它可以让您知道数字代表什么。同时,它允许您更容易地更改数字,以防您在多个地方使用它们。