gpt4 book ai didi

java - 如何找到一个整数在斐波那契数列中的位置

转载 作者:行者123 更新时间:2023-11-29 05:24:49 25 4
gpt4 key购买 nike

我正在尝试使用斐波那契数列作为游戏体验点到关卡转换的限制(我也希望对这个决定提出批评),像这样:

如果玩家有 49.450 分,则他处于第 25 级,因为最接近的较小斐波那契数是 46.368。

但是,我很难弄清楚如何做到这一点。除了创建以级别为键和限制为值的 map 之外,还有更智能的方法吗?

最佳答案

斐波那契呈指数增长。底数是 phi(黄金比例),所以它不如 2^n 快,但仍然很快。只有最小的 94 位左右的斐波那契数可以用无符号 64 位整数表示,因此查找表可能是您的最佳选择。

但是,如果您真的想计算它,您可以反转封闭形式的解决方案以获得如下内容:

int fibIndex(long n) {
return Math.round(Math.log(n * Math.sqrt(5))/Math.log(PHI));
}

这可能是逐一的,当然无法区分序列前面的双1。

关于java - 如何找到一个整数在斐波那契数列中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23073822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com