社区
数据结构与算法
帖子详情
求递归式f(n)=f(n-1)+f(n/2)的解
icerin
2006-04-14 11:04:04
能求出通项么?给出上下界也成,谢谢大家了
...全文
1231
12
打赏
收藏
求递归式f(n)=f(n-1)+f(n/2)的解
能求出通项么?给出上下界也成,谢谢大家了
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yuxh
2006-05-18
打赏
举报
回复
不好意思,第2式我搞错了
:(
yuxh
2006-05-18
打赏
举报
回复
用归纳法:
(1)n=1时,显然成立
设n=2^k+m (0<=m<2^k),则
f(n)=f(n-1)+f(n/2)<=(n-1)^k + (n/2)^(k-1) = n^(k-1)*((1-1/n)^(k-1)*(n-1)+1/2^(k-1)<=n^(k-1)(n-1+1) = n^k = n^[log2(n)]成立
yuxh
2006-05-18
打赏
举报
回复
可以证明
(1)f(n)<=n^[log2(n)]
(2)f(n)>=n^([log2(n)]-1)
这里[x]表示向下取整
yuxh
2006-05-18
打赏
举报
回复
k=log(f(n))/log^2(n)基本上应该是个常数
我只得到了1/(4*log2)<=k<=1/(2*log2)
mathe
2006-05-18
打赏
举报
回复
n比较大时,
f(n)大概是exp(0.6*log^2(n))
也就是n^(0.6*log(n))
比n^(log(n)/log(2))要小一些
实际上,n很大时,log(f(n))/log^2(n)是一直在递增的,只是递增的速度非常慢。
但是能否达到log(2)=0.69很难说,估计是达不大的
icerin
2006-04-15
打赏
举报
回复
对不起,我把一些条件漏了,f(0) =1 ,f(1)=1,还有,n/2是下取整,譬如f(3)=f(2)+f(1),而不是f(3)=f(2)+f(1.5),谢谢大家的关心
jp1984
2006-04-15
打赏
举报
回复
求bound 就比较简单了. 因为由初始条件知道该函数值必定非负且单调递增.
f(n) = f(n - 1) + f(n/2) >= 2*f([n/2]) ~ 2*f(n/2) 当 n > 2
下面let n = 2^k就可以求出f(n)的下界
f(n) <= 2*f( n-1 ) <= 2^2*f(n-2) <= .. 2^(n-1_ = O(2^n)
求得上界
wyz2006gh
2006-04-15
打赏
举报
回复
对阿,怎么没有初始值啊
寻开心
2006-04-14
打赏
举报
回复
不是 f(n) = f(n-1) + f(n-2)
boxer_tony
2006-04-14
打赏
举报
回复
f(n)=1/sqrt(5)*(((1+sqrt(5))/2)^n-((1-sqrt(5))/2)^n)
寻开心
2006-04-14
打赏
举报
回复
f(n/2) 对于n是奇数的时候怎么办?
看似
f(n) = f(0) + f(1) + f(2) + ... + f(n/2)
jp1984
2006-04-14
打赏
举报
回复
连初始条件都没有,叫什么递归方程?
java基础之yield(),sleep(),wait()区别详
解
1、sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据。注意该方法要捕捉异常。 例如有两个线程同时执行(没有synchronized)一个线程优先级为MAX_PRIORITY,另一个为MIN_PRIORITY,如果没有Sleep()方法,只有高优先级的线程执行完毕后,低优先级的线程才能够执行;但是高优先级的线程sleep(500)后,低优先级就有机会执...
java之yield(),sleep(),wait()区别详
解
-备忘笔记
1、sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据。注意该方法要捕捉异常。 例如有两个线程同时执行(没有synchronized)一个线程优先级为MAX_PRIORITY,另一个为MIN_PRIORITY,如果没有Sleep()方法,只有高优先级的线程...
java之yield(),sleep(),wait()区别详
解
1、sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据。注意该方法要捕捉异常。 例如有两个线程同时执行(没有synchronized)一个线程优先级为MAX_PRIORITY,另一个为MIN_PRIORITY,如果没有Sleep()方法,只有高优先级的线程执行...
数据结构与算法
33,026
社区成员
35,334
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章