递归

jp1984 2005-04-14 10:01:28
在利用最佳原理中求TSP问题中的比较次数中得到结果
T(n) = (n - 1)T(n - 1) + n - 1
请问该递归关系如何求解?
...全文
151 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jp1984 2005-04-20
  • 打赏
  • 举报
回复
To : dengsf
谢谢回复。

不错的,我和您得到相同的结果
S(n) = (n-1) + (n-1)(n-2) + ... + (n-1)(n-2)..2*1
但是对S(n)无法取得简单形式。主要对TSP组合分析算法复杂度可取得精确的比较次数,含2^n 。我想这个递归解得的肯定是含 n! 项的表达式。然后用Stirling公式近似可取得和前面同阶的复杂度。
求解到这里 其实也差不多了,总归还是个求复杂度的问题 。

jp1984 2005-04-18
  • 打赏
  • 举报
回复
谁帮下忙。
dengsf 2005-04-18
  • 打赏
  • 举报
回复
更正一点,
因 S(n) = HAHA(n-2)*(n-1)!
严格来说, S(n) = SITA[(n-1)!] = o(n!)

个人觉得应该没有没有较简单的通式——觉得而已~
实际的 S(n) = (n-1) + (n-1)(n-2) + ... + (n-1)(n-2)..2.1
它如果有简单形式的话,看上去似乎会是 f(n)^g(n) 的形式,但要符合
lim(n->无穷)(f(n)^g(n))/(n-1)! = e = lim(n->无穷)HAHA(n) = lim(n->无穷)(1+1/n)^n
不知从这里会否有所进展。

PS:楼主为什么一定要求精确值?
& 楼主说话很客气~
dengsf 2005-04-15
  • 打赏
  • 举报
回复
有点遗漏
S(n) = HAHA(n-2) + C
C为常数 = S(1) = T(1)
但对最后的 SITA(n!) 没影响。
dengsf 2005-04-15
  • 打赏
  • 举报
回复
两边除以 (n-2)! 得:
T(n)/(n-1)! = T(n-1)/(n-2)! + 1/(n-2)!
令: S(n) = T(n)/(n-1)!
得:S(n) = S(n-1) + 1/(n-2)!
记 HAHA(n) = sum[0 to n](1/n!)
很明显 S(n) = HAHA(n-2)
而 1 <= HAHA(n) <= 1 + 1 + 1/2 + 1/4 + ... = 3 ( n >= 0 )
所以 T(n) = (n-1)! * HAHA(n-2) = SITA(n!)
mmmcd 2005-04-15
  • 打赏
  • 举报
回复
如果要求通式,就要解非齐次差分方程
gumbour 2005-04-15
  • 打赏
  • 举报
回复
边界
T(0) = ?
假设 T(0) = T0

int Fun(int n)
{
if (n == 0)
return T0
else
return (n-1)*Fun(n-1)+n-1
}
jp1984 2005-04-15
  • 打赏
  • 举报
回复
to dengsf:
不管怎样,谢谢您的回复。
其实题目已经给出了T(1),一个顶点时的TSP问题显然T(1) = 0
您的结论是正确了, 参照您上面的结论,C = 0.
得到T(n) ~ sita(n!).
我要问的不是渐进情况下的复杂度问题 。我说的是准确的比较次数,换句话说,就是通式。您的思路很好,但是对于HAHA(n - 2)仍然无法取得通式。
我曾考虑用n去乘等式的两边,用H(n)=nT(n)做替换,也可以取得您的结论,但是依旧求不出通式。

33,027

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧