在解决问题时,我遇到了以下序列:
3, 9, 21, 46, 94, 185, 353...
我们必须找到序列的第n个术语。
Answer should have complexity of O(1).
答案 0 :(得分:0)
这是这类问题的元算法。首先,在OEIS上查找序列:
http://oeis.org/search?q=3%2C+9%2C+21%2C+46%2C+94%2C+185%2C+353&language=english&go=Search
查看公式部分并找到
a(n) = n*F(n+2)-F(n+3)+2,
其中F
是斐波那契函数。使用fast Fibonacci implementation在O(log n)算术运算中评估此公式。
O(1)在敏感机器模型中是不可行的。