首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将自定义函数PHP从经验转换到关卡

将自定义函数PHP从经验转换到关卡
EN

Stack Overflow用户
提问于 2018-07-25 07:46:32
回答 1查看 50关注 0票数 -2

我有一个函数,我输入一个级别,它返回XP:

这是从runescape 1-99公式中获得的:

代码语言:javascript
复制
 function experience($L) {
      $a=0;
      for($x=1; $x<$L; $x++) {
        $a += floor($x+300*pow(2, ($x/7)));
      }
      return floor($a/4);
    }

这意味着:

代码语言:javascript
复制
 level 54 would return 150872 XP.

但是,我如何反其道而行之,输入150872并使其返回54呢?而且,当xp可能是150873,但它仍然是54级返回时,该怎么做呢?

我该如何批准呢?

想要:

代码语言:javascript
复制
experience(152439) -> 54
EN

回答 1

Stack Overflow用户

发布于 2018-07-25 08:02:38

一种低效但简单的解决方案是在循环中连续调用experience函数,每次增加级别,直到您达到的级别返回的经验值高于您正在寻找的值,然后返回之前的级别:

代码语言:javascript
复制
function level($experience) {
    $returned = 0;
    $level = 0;

    while ($returned <= $experience) {
        $level++;
        $returned = experience($level);
    }

    return $level - 1;
}

演示:http://sandbox.onlinephpfunctions.com/code/820d659feb28a00dd87a21d01bd2414cbc66d300

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51509048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档