我数学不太好,我想把3个数学方程转换成php函数。
我试着在php中查找如何单独完成等式的每一部分,但我一直得到奇怪的结果,所以我一定做错了什么。
有指数增长的php函数吗?
带有方程式的图像如下:https://i.stack.imgur.com/W17IU.jpg
感谢
对于第二个方程,这就是我所拥有的:
$rank = 50;
$xp = log(24000 * (2^($rank/6) - 1));
echo $xp;
这个数字太小,不可能是正确的。我也不知道如何将"ln 2"转换为PHP。log()函数似乎出现在"php的自然对数"搜索下。
为了创建这些方程,需要组合各种函数。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);
}
这增加了代码的清晰度,因为它可以让你知道数字代表什么。同时,它可以让你更容易地更改数字,以防你在多个地方使用它们。