注意:这不是要求如何在O(n)中解决GCF
您有两个整数,n
和i
。我们如何(在伪代码中)在恒定时间内计算GCM(n, i)
,其中n
和i
的域名为0 -> infinity
?
我见过的唯一解决方案是使用递归或循环。如果可能的话,我想在恒定的时间内完成。
感谢。
答案 0 :(得分:0)
嗯,技术上这是可能的,是的 - 例如,通过创建预先计算结果的矩阵。但由于内存消耗过多,这很难实现。
N.B。:此方法有一个重要的先决条件:
n, i ∉ [0; ∞)
,而是n, i ∈ [0; M], M ∈ [0; ∞)
- 即值范围是任意大的,但仍然是固定的。
否则,将n
和i
读入内存的操作将渐近线性,使O(1)
在理论上甚至不可能。