我写了一个简单的代码来计算数学方程式,但我想迭代从$start
到$end
的数字。我正在制作游戏,此页面将计算达到下一级别并将其插入数据库所需的体验量。从$start
迭代到$end
并计算该级别所需的exp数量的最佳方法是什么?
代码:
<?php
$start = 1;
$end = 100;
$level = $start++;
$l = $level - 1;
$exp = ((40*($l * $l)) + (360 * $l));
?>
因为它现在坐着它计算第一级但我不能为我的生活弄清楚如何使它经过$end
。
答案 0 :(得分:1)
f(n)
= S[1 100] 40n^2 + 360n
= 40n (n + 1) (2n + 1) / 6 + 360n (n + 1) / 2
实际上,我们可以通过推广所需的经验水平来使用数学来加快速度。由于您的经验函数是二次函数的总和:
40 * $level * ($level + 1) * (2 * $level + 1) / 6 + 360 * $level * ($level + 1) / 2
在PHP中:
f(end) - f(start - 1)
如果您愿意,可以进一步简化。
这肯定比计算循环100次更快。
如果$ start不是1,只需使用sourceSets.test.java.srcDir('src/envPl/funcTest/java')
。
答案 1 :(得分:0)
您必须为每个级别计算所需的xp,因此您应该将计算代码放在一个从最低级别开始的循环中,直到达到上限/结束级别。您可以在PHP中选择两种不同的循环类型,即for循环和while循环。
就我个人而言,我会选择while循环来解决这个特定的#34;问题&#34;,但这是每个人都必须自己决定的事情。计算器的代码如下所示:
// Create an extra variable to store the level for which you are currently calculating the needed xp
$i = $start;
// The while-loop (do this code until the current level hits the max level as specified)
while($i <= end) {
// use $i to calculate your exp, its the current level
// Insert code here...
// then add 1 to $i and do the same again (repeat the code inside loop)
$i++;
}
以下是php文档的一些链接: