标签: recurrence

写函数的递归关系

我知道递归关系的公式是T(n)= aT(n/b)+ f(n).考虑到这个等式,我知道如何解决BigO问题.我的作业问题让我写了一个递归函数来计算列表中的节点数,我做了但后来让我写了一个递归关系.这是我的代码:

int count(ListNode *l)
{
    if(!l) return 0;
    if(!l->next) return 1;

    return 1 + count(l->getNext());
}
Run Code Online (Sandbox Code Playgroud)

但我完全迷失了如何创建/制定我自己的递归关系公式...我如何找到一个或b ....我不知道从哪里开始.如何为此函数编写递归关系?谢谢.

algorithm big-o recurrence master-theorem

1
推荐指数
1
解决办法
1万
查看次数

求解递归 T(n) = T(n/2) + lg n?

我对如何解决递归关系有一些问题。

T(n) = T(n/2) + log2(n),T(1) = 1,其中 n 是 2 的幂

这是一个家庭作业问题,所以不要只给我答案。我只是想知道如何开始这个问题。

在课堂上,我们复习了大师定理。但我认为这不是解决这种特殊关系的最佳方式。

我真的不知道如何开始这个问题......我应该去吗

T(n) = T(n/2) + log_base2(n)
T(n/2) = [T(n/4)+log_base2(n/2)]
  T(n) = [T(n/4)+log_base2(n/2)] + log_base2(n) 
Run Code Online (Sandbox Code Playgroud)

继续我的工作,得到一些我能看到的东西是一个基本的等式?

algorithm math big-o recurrence master-theorem

1
推荐指数
1
解决办法
2万
查看次数

在 C# 中,从日期集合中解析出每两周一次的日期集?

最近问了这个问题,获取日期时间对象列表并解析:

  1. 每周重复:与相同的 dayOfWeek、小时、分钟匹配的日期集合,以获取一组列表,其中列表中的每个项目都与该 Key 匹配,其中:

    关键是 DayOfWeek + 小时 + 分钟的串联

  2. 每月重复:匹配相同 weekOfMonth、dayOfWeek、小时、分钟的日期集合,以获取一组列表,其中列表中的每个项目都与该 Key 匹配,其中:

    关键是 WeekOfMonth + DayOfWeek + 小时 + 分钟的串联

这两个都工作得很好。

我现在有一个额外的要求,我正在努力支持双周复发(每隔一周)。我正在尝试找出匹配的正确密钥,因为上面的其他用例都有逻辑计算密钥,但无法计算出每隔一周的算法/密钥

c# collections recurrence datetime

1
推荐指数
1
解决办法
1580
查看次数

循环的运行时间呈指数衰减?

n函数的输入在哪里可以是任何整数.

i = n, total = 0; 
while (i > 0) {      
 for (j=0; j<i; j++) 
   for (k=0; k<i; k++) 
     total++;      
 i = i/4; 
} 
Run Code Online (Sandbox Code Playgroud)

这个函数的时间复杂度是多少?

algorithm math big-o recurrence asymptotic-complexity

1
推荐指数
1
解决办法
220
查看次数

使用递归树渐近地求解 T(n) = 2T(n^(1/2)) + 1?

我需要解决复发

T(n) = 2T(n 1/2 ) + 1

我需要找到渐近时间复杂度。我正在使用递归树方法,但我被卡住了。我知道答案是 Θ(log n),但我不知道如何得出这个结论。请问这个复发怎么解决?

big-o recurrence time-complexity

1
推荐指数
1
解决办法
9483
查看次数

在Java中计算递归函数

我需要解决这个递归函数:f(n)= 5*f(n-1) - 2*f(n-2),其中f(0)= 1且f(1)= 2.我写了下面的代码,但它没有给出正确的答案 - 例如,当n = 4时输出164,尽管正确的答案是26(假设我正确地做了数学运算).

public static int recurFunction(int n) {
    if(n == 0) {
        return 1;
    } else if(n == 1) {
        return 2;
    } else {
        n = ((5 * recurFunction(n - 1)) - (2 * recurFunction(n - 2)));
        return n;
    }
}
Run Code Online (Sandbox Code Playgroud)

java recurrence

0
推荐指数
1
解决办法
168
查看次数

如何解决这种递归关系:T(n)= 4*T(sqrt(n))+ n

我知道如何使用Master方法解决递归关系.另外我知道如何解决下面的重现:

T(n)= sqrt(n)*T(sqrt(n))+ n

T(n)= 2*T(sqrt(n))+ lg(n)

在上述两次递归中,递归树的每个级别都有相同的工作量.并且递归树中总共有log log n级别.

我在解决这个问题时遇到了麻烦:T(n)= 4*T(sqrt(n))+ n

编辑: 这里n是2的幂

algorithm recurrence

0
推荐指数
1
解决办法
8010
查看次数

使用主定理求解递归T(n)= T(n/2)+ O(1)?

我正在尝试使用主定理及其重现概念来解决递归关系以找出算法的复杂性,我如何证明:

T(n) = T(n/2)+O(1)

T(n) = O(log(n)) ?

任何解释都会得到赞赏!

algorithm complexity-theory big-o recurrence master-theorem

0
推荐指数
1
解决办法
1万
查看次数

如何解决递归T(n)= T(n-1)+ ... T(1)+1?

我需要找到涉及重现的算法的复杂性:

T(n) = T(n-1) + ... + T(1) + 1

T(n)是解决大小问题所需的时间n.

master方法在这里不适用,我不能猜测使用替换方法(我不想使用替换方法).我留下了递归树方法.

由于每个节点的子节点数不是常数,我发现很难跟踪每个节点的贡献.底层模式是什么?

我知道我必须在树中找到节点的数量,其中每个节点(k)为其子节点具有从1到1的所有节点k-1.

是否也可以找到T(n)给定公式的确切时间?

algorithm recurrence dynamic-programming time-complexity

0
推荐指数
1
解决办法
1164
查看次数

如何解决重现A(n)= A(n-1)+ n*log(n)?

鉴于再次发生:
A(n) = A(n-1) + n*log(n).
我如何找到时间复杂度A(n)

algorithm recurrence time-complexity asymptotic-complexity

-1
推荐指数
1
解决办法
99
查看次数

大小为 n 的数组 A 可以具有的最大反转次数是多少?

我们有一个数组 A[1...n]。反演是当 i < j 但 A[i] > A[j] 时。我想要一种方法来描述长度为 n 的数组 A 可以具有的最大反转次数(考虑起始索引是 1 而不是 0)。

我试图找到一种模式,但似乎无法为 n 提出一个通用公式。

at n=3 we have 3 possible inversions
at n=4 we have 7 possible inversions 
at n=5 we have 10 possible inversions 
at n=6 we have 15 possible inversions (10 + 5)
at n=7 we have 21 possible inversions (15 + 6)
at n=8 we have 28 possible inversions (21 + 7)
Run Code Online (Sandbox Code Playgroud)

似乎有复发,nb inversions for n = nb inversion for …

arrays sorting algorithm recurrence discrete-mathematics

-1
推荐指数
1
解决办法
1645
查看次数

如何通过迭代法求解 T(n)=T(n-1)+ (n-1)?

请任何人都可以帮我解决这个问题:使用迭代方法 T (n) = T (n - 1) + (n - 1) 解决

并证明 T (n) ?? (n²)

拜托,如果你能一步一步地解释,我将不胜感激。

iteration algorithm recursion recurrence time-complexity

-2
推荐指数
1
解决办法
3941
查看次数