【发布时间】:2023-04-13 21:24:01
【问题描述】:
我试图解决关于递归方程和计算复杂性的大学问题,但我不明白如何设置递归方程。
static void comb(int[] a, int i, int max) {
if(i < 0) {
for(int h = 0; h < a.length; h++)
System.out.print((char)(’a’+a[h]));
System.out.print("\n");
return;
}
for(int v = max; v >= i; v--) {
a[i] = v;
comb(a, i-1, v-1);
}
}
static void comb(int[] a, int n) { // a.length <= n
comb(a, a.length-1, n - 1);
return;
}
我尝试设置以下等式
O(n) + c if i < 0
T (n, i, j) = {
(j-i) T(n, i-1, j-1) otherwise
解决
T(n, i, j) = (j-i) T(n, i-1, j-1) =
(j-i) (j-1-i+1) T(n, i-2, j-2) =
(j-i)^k T(n, i-k, j-k)
此时我被卡住了,我不知道如何继续。
感谢和抱歉我的英语不好。
路易吉
【问题讨论】:
-
抱歉,问题的哪一部分需要改进?
-
要越过你卡住的地方是终止条件 i
标签: algorithm recursion recurrence