gpt4 book ai didi

c++ - 如何在 log(n) 或更短时间内计算此序列的第 n 个元素?

转载 作者:太空宇宙 更新时间:2023-11-04 01:37:22 24 4
gpt4 key购买 nike

1 4 10 22 45 88 167

这个数列是斐波那契数列与自身的卷积。复现是

a[n] = a[n-1] + a[n-2] + Fibonacci[n+2]

如果您假设斐波那契数列从 0,1,1,2,3,5 ... ( http://oeis.org/A213587 )

如何生成对数时间或更快的时间?请注意,这不是家庭作业,也不是任何比赛问题。我正在研究斐波那契应用序列。

最佳答案

这是一个闭合公式,因此几乎可以保证是 O(1)(使用 Mathematica 计算)

输入:

RSolve[{a[n] == a[n - 2] + a[n - 1] + Fibonacci[n + 2], a[1] == 1, a[2] == 4}, a[n], n]

输出(点击here查看全尺寸):

link

您将不得不使用一些浮点运算,但您仍然可以从双数据类型获得更高的精度。如果精度有问题,请使用 GMP 或其他一些任意精度库。

关于c++ - 如何在 log(n) 或更短时间内计算此序列的第 n 个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12252621/

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