计算不断上升的价值

时间:2018-03-01 12:17:48

标签: php calculation

我希望能够在php中使用多个经验值(XP)作为基础来进行计算,以返回级别值。我希望每个级别的上升越来越困难。像这样:

0-49 XP = Level 1
50-104 XP = Level 2
105-164 XP = Level 3
165-229 XP = Level 4 etc.

要达到2级,需要50 XP。要达到3级,还需要55 XP。要达到4级,还需要60 XP等等。

我希望能够显示达到下一个阈值所需的XP数量。

我不知道要搜索什么来解决我的挑战。我希望你能提供帮助。

提前谢谢。

3 个答案:

答案 0 :(得分:2)

您的点数结构与您的句子不符。

所以我会回答:

  

要达到2级,需要50 XP。要达到3级,还需要55 XP   需要。要达到4级,还需要60 XP等等。

<?php
$get_level = function () {
    foreach (range(0, 300, 50) as $difficulty => $base) {
        yield [$base + ($difficulty * 5) => 'Level '.($base / 50)];
    }
};

foreach ($get_level() as $base => $level) {
    echo print_r($level, true);
}

<强>结果:

Array
(
    [0] => Level 0
)
Array
(
    [55] => Level 1
)
Array
(
    [110] => Level 2
)
Array
(
    [165] => Level 3
)
Array
(
    [220] => Level 4
)
Array
(
    [275] => Level 5
)
Array
(
    [330] => Level 6
)

答案 1 :(得分:0)

XP计算的数学非常简单:

XP = ∑50+5*(level-1)
   = 5*∑10+(level-1)
   = 5*∑9+level
   = 5*(∑9 + ∑level)
   = 5*(9*level + ∑level)

自然数的总和可以在每本数学书甚至维基百科中查找。

答案 2 :(得分:-1)

在Python中(因为我不太了解PHP :():

levelBoundaries = []
for i in range(number_of_levels_you_want): ## Loop through for all levels

    level = len(levelBoundaries) + 1 ## Get the Level Number


    levelArr = [] ## Create the list for the level boundary
    ## The formula for your list is 2.5n^2 + 42.5n - 45
    ## The level boundary for level n is [Term n, (Term (n+1)) - 1]
    ## This is what has been done below
    levelArr.append((2.5 * (level ** 2)) + (42.5 * level) - 45)
    level += 1
    levelArr.append( (2.5 * (level ** 2)) + (42.5 * level) - 45 - 1)
    levelBoundaries.append(levelArr)