【问题标题】:How do I go about converting a math equation into php?如何将数学方程式转换为 php?
【发布时间】:2015-06-10 14:56:24
【问题描述】:

我的数学不太好,我希望将 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”搜索下。

【问题讨论】:

  • 你能告诉我们你已经做了什么吗?
  • php.net/manual/en/book.math.php 可能是一个好的开始
  • 第二个方程$xp = (24000*(2^($rank/6)-1))/log(2)
  • 请注意^ 不是求幂运算符,而是按位XOR 运算符。 PHP 5.6 中引入了一个指数运算符**

标签: php math


【解决方案1】:

为了创建这些方程,需要组合各种函数。 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);
}

这增加了代码的清晰度,因为它让您知道数字代表什么。同时,如果您在多个地方使用它们,它可以让您更轻松地更改数字。

【讨论】:

  • 非常感谢爷爷 - 您在这方面竭尽全力帮助我。真的很感激。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-08
  • 2021-02-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多