社区
数据结构与算法
帖子详情
递归
jp1984
2005-04-14 10:01:28
在利用最佳原理中求TSP问题中的比较次数中得到结果
T(n) = (n - 1)T(n - 1) + n - 1
请问该递归关系如何求解?
...全文
150
8
打赏
收藏
递归
在利用最佳原理中求TSP问题中的比较次数中得到结果 T(n) = (n - 1)T(n - 1) + n - 1 请问该递归关系如何求解?
复制链接
扫一扫
分享
转发到动态
举报
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)做替换,也可以取得您的结论,但是依旧求不出通式。
读懂C++
递归
程序
递归
在计算学科中是一种非常重要的方法,计算理论中到处都有用
递归
进行表述的问题及求解方法。 在程序设计中,数据描述和算法表达也常用
递归
,通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,
递归
策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。 掌握
递归
,计算机类专业的学生必须要做到。 本文基于一个C++
递归
程序,分步骤进行演示,帮助你知道其执行过程,试图帮助你啃下这块硬骨头。
Android 音乐播放器源码
Android 音乐播放器,实现
递归
扫描SD根目录歌曲文件,切换播放模式、查看歌曲详细信息等基本功能,源码打包给大家,需要的下载哈 参考:http://blog.csdn.net/linmiansheng/article/details/18455593
Java实现简单的
递归
操作
在数据结构算法设计中,或者一个方法的具体实现的时候,有一种方法叫做“
递归
”,这种方法在思想上并不是特别难,但是实现起来还是有一些需要注意的。虽然对于很多
递归
算法都可以由相应的循环迭代来代替,但是对于一些比较抽象复杂的算法不用
递归
很难理解与实现。
递归
分为直接
递归
和间接
递归
,就简单分享一下两个小的直接
递归
。 对于
递归
的概念,其实你可以简单的理解为自己定义自己,记得小时候看过一部电视剧《狼毒花》,...
递归
最简形式
递归
例子 一、什么叫
递归
递归
函数就是直接或间接调用自身的函数,也就是自身调用自己。 二、一般什么时候使用
递归
?
递归
是常用的编程技术,其基本思想就是“自己调用自己”,一个使用
递归
技术的方法即是直接或间接的调用自身的方法。
递归
方法实际上体现了“以此类推”、“用同样的步骤重复”这样的思想。
递归
满足2个条件: 1)有反复执行的过程(调用自身) 2)有跳出反复执行过程的条件(
递归
出口) 三、
递归
...
递归
算法及经典
递归
例子代码实现
一、什么叫做
递归
? 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法;
递归
函数就是直接或间接调用自身的函数,也就是自身调用自己; 二、一般什么时候使用
递归
?
递归
时常用的编程技术,其基本思想就是“自己调用自己”,一个使用
递归
技术的方法即是直接或间接的调用自身的方法。
递归
方法实际上体现了“以此类推”、“用同样的步骤重复”这样的思想,它可以用
数据结构与算法
33,027
社区成员
35,335
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章