Algorithm 展开递归递归关系
我找不到我的问题的解决方案,因为通常解决方案(在大操作系统术语中)是所问的,而不是展开的循环。 如果已经有人问过了,告诉我,我会删除 我在uni的算法和数据结构测试中遇到了这个问题,我一直在思考这个问题。主要是因为我不明白我是如何得出正确答案的 我有以下关系:Algorithm 展开递归递归关系,algorithm,recursion,big-o,relation,recurrence,Algorithm,Recursion,Big O,Relation,Recurrence,我找不到我的问题的解决方案,因为通常解决方案(在大操作系统术语中)是所问的,而不是展开的循环。 如果已经有人问过了,告诉我,我会删除 我在uni的算法和数据结构测试中遇到了这个问题,我一直在思考这个问题。主要是因为我不明白我是如何得出正确答案的 我有以下关系: T(1)=2 T(n)=2T(n-1)+2 for n>=2 答案是: 1. T(n)= 2^n+1 -2 2. T(n)= none of the answers are correct 3. T(n)= 1/2n(n+1)
T(1)=2
T(n)=2T(n-1)+2 for n>=2
答案是:
1. T(n)= 2^n+1 -2
2. T(n)= none of the answers are correct
3. T(n)= 1/2n(n+1)-1
4. T(n)= 2^n+1 -2-n
5. T(n)= n+ (-1)^n
这就是我所尝试的:
T(1)=2
T(n)=2T(n-1)+2 -> T(n-1) = T(n-2)+2
=2T(n-2)+2+2
=2T(n-2)+4 -> T(n-2) = T(n-3)+3
=2T(n-3)+2+4
=2T(n-3)+6 so then -> 2T(n-k)+2k and if n=k 2T(n-n)+2n -> 2T(0)+2n
但是我没有t(0)的情况。
此外,这种方法最终会让我了解大O解决方案,尽管这不是我现在想要找到的
有谁能给我解释一下得到正确答案的正确方法吗
谢谢。这个问题与类似
您可能也知道如何解决这个问题……这个问题与类似 你可能也知道如何解决这个问题……不要展开答案,检查一下就可以了 因此,对于每个可能的答案,检查
T(1)=2
,如果替换给定的T(n)
会使T(n)=2T(n-1)+2相等。因此,对于第一个答案T(1)=2^(n+1)-2=4-2=2
(按原样),并且:
使用simply=?=表示要检查的等式。
双方都要简化,这将导致:
2^(n+1)-2 =?= 2*2^(n)-2
剩下的就交给你了不要把答案展开,检查一下就行了
因此,对于每个可能的答案,检查T(1)=2
,如果替换给定的T(n)
会使T(n)=2T(n-1)+2相等。因此,对于第一个答案T(1)=2^(n+1)-2=4-2=2
(按原样),并且:
使用simply=?=表示要检查的等式。
双方都要简化,这将导致:
2^(n+1)-2 =?= 2*2^(n)-2
剩下的我留给你们的T(n)=2T(n-1)+2相当于T(n)+2=2(T(n-1)+2)
所以T(n)+2=2^(n-1)(T(1)+2)=2^(n-1)*4=2^(n+1)。因此,T(n)=2^(n+1)-2。T(n)=2T(n-1)+2相当于T(n)+2=2(T(n-1)+2)
所以T(n)+2=2^(n-1)(T(1)+2)=2^(n-1)*4=2^(n+1)。因此T(n)=2^(n+1)-2。简单的方法是注意到它是指数的,然后检查两个指数答案
但如果你想展开它,你会得到:
T(n) = 2 + 2T(n-1)
= 2 + 4 + 4T(n-2)
= 2 + 4 + 8 + 8T(n-3)
= 2 + 4 + 8 + ... + 2^(n-1)T(1)
= 2 + 4 + 8 + ... + 2^n
然后你认识到进展并做:
T(n) = 2T(n) - T(n)
= 2^(n+1) - 2
简单的方法是注意到它是指数的,然后检查两个指数答案
但如果你想展开它,你会得到:
T(n) = 2 + 2T(n-1)
= 2 + 4 + 4T(n-2)
= 2 + 4 + 8 + 8T(n-3)
= 2 + 4 + 8 + ... + 2^(n-1)T(1)
= 2 + 4 + 8 + ... + 2^n
然后你认识到进展并做:
T(n) = 2T(n) - T(n)
= 2^(n+1) - 2
在T(n)=2^(n+1)+2中,如果我替换T(1)=2,我得到2^3-2=6;在T(n)=2T(n-1)+2中,如果我替换T(1)=2,我得到2*2(2-1)+2=6,所以我得到两者之间的相等,这将告诉我答案是正确的。这就是你的意思吗?编辑:另外,检查其他答案,他们会给我3、2和4作为结果,而不是6。不,对于这一个-保留公式中的n,并检查2^(n+1)-2和2*2^n-2是否相同(对于n的所有值)。但是,很明显,其他人都错了,因为你发现了一个公式错误的值。使用我用来查看公式中的值是否错误的方法有意义吗?因为这一次成功了,但我想知道它是否会再次成功。最重要的是,检查2^(n+1)-2和2*2^n-2对于n的所有值是否相同,非常感谢。在T(n)=2^(n+1)+2中,如果我替换T(1)=2,我得到2^3-2=6;在T(n)=2T(n-1)+2中,如果我替换T(1)=2,我得到2*2(2-1)+2=6,因此我得到两者之间的相等,这将告诉我答案是正确的。这就是你的意思吗?编辑:另外,检查其他答案,他们会给我3、2和4作为结果,而不是6。不,对于这一个-保留公式中的n,并检查2^(n+1)-2和2*2^n-2是否相同(对于n的所有值)。但是,很明显,其他人都错了,因为你发现了一个公式错误的值。使用我用来查看公式中的值是否错误的方法有意义吗?因为这一次成功了,但我想知道它是否会再次成功。最重要的是,检查所有n值的2^(n+1)-2和2*2^n-2是否相同,非常感谢。