algorithm - 如何解决条件线性递归?

标签 algorithm recurrence

如何解决条件线性递归问题??
例如,

f[1]=m;  
f[i]=f[i-1]*m; if i is even
f[i]=(f[i-1]-2)*2 +2 if i is odd  

计算f[n]
如果只是一个简单的线性递归,f[n] 可以在 O(log N) 时间内计算出来,但是如何处理两个不同的递归??

最佳答案

f[i] = (f[i - 2] * m - 2) * 2 + 2 if i is odd
f[i] = ((f[i - 2] -2) * 2 + 2) * m if i is even

现在分别解决这两个递归问题。我将您的公式相互替换,目的是让偶数和奇数指数仅取决于相同的奇偶性。

关于algorithm - 如何解决条件线性递归?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25968575/

相关文章:

ruby - 检测重复事件中的冲突

algorithm - 创建和求解正弦近似的递归关系

algorithm - 奇怪排序的递归关系

algorithm - 启发式和 A* 算法

algorithm - 找出不作为字符串子序列出现的最小数字

algorithm - 如何解决这种复发?

algorithm - 第二类斯特林数的递归关系

java - 为什么我的多态父类从自身内部调用子类方法?

java - 用于存储 2D 数组值的内存效率最高的数据结构 (Java)

javascript - 如何在给定一些规则的情况下最大化对象组合的值(value)