免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: covisd
打印 上一主题 下一主题

一道关于蜗牛爬绳子的题目。 [复制链接]

JeffreyPei 该用户已被删除
41 [报告]
发表于 2007-10-06 17:39 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
42 [报告]
发表于 2007-10-06 17:40 |只看该作者
>>woniu_pos *= ( day / day - 1);   

老兄,你写了一个死循环



原帖由 2eye 于 2007-10-6 17:35 发表

#include

#define CHGLONG        1000.0

int main()
{
        int day = 1;
        double shengchang = 2000;
        double woniu_pos = 2.0;                //蜗牛第day天绳子拉长后所在的位置。

        while( woniu_pos < shengchang ...

论坛徽章:
0
43 [报告]
发表于 2007-10-06 17:42 |只看该作者
如果不考虑蜗牛会老死的话,会到达的

论坛徽章:
0
44 [报告]
发表于 2007-10-06 17:45 |只看该作者
原帖由 ypxing 于 2007-10-6 17:40 发表
>>woniu_pos *= ( day / day - 1);   

老兄,你写了一个死循环




我感觉这句没错,这句是蜗牛位置的递推计算呀。
好像不是我写了个死循环,而是因为是个死循环,所以到不了终点。

如果我有错误,你能指出错在那里?

论坛徽章:
0
45 [报告]
发表于 2007-10-06 17:46 |只看该作者
你的循环里蜗牛的位置始终为0


原帖由 2eye 于 2007-10-6 17:45 发表

我感觉这句没错,这句是蜗牛位置的递推计算呀。
好像不是我写了个死循环,而是因为是个死循环,所以到不了终点。

如果我有错误,你能指出错在那里?

论坛徽章:
0
46 [报告]
发表于 2007-10-06 17:48 |只看该作者

回复 #40 2eye 的帖子

f(1) = 2                    //因为爬一米后,拉伸1倍,相当于爬2米。     
=========================================
按你的始端不动的话,爬行一米,拉伸一倍,实际前进了1+1/1000米
如果是两端同时拉伸
爬一米后,均匀拉伸1000米,蜗牛实际上前进了
1-1/1000米    #1/1000是蜗牛前进的距离对于均匀增加的绳长的变化量
而当绳长增加到一定的时候,蜗牛会来到绳的中间,假如蜗牛是从这个点开始的,那么第一天爬的距离为:
1+1/1000米
也就是说
蜗牛达到中点前的前进量都因绳长的增加而有所减少,但因为是整个绳长的均匀增长,所以蜗牛的后退量很少。
蜗牛到达中点后的前进量会因绳长的增加而有所增加,增加的量就是(蜗牛距离起点的距离)/当前绳长
蜗牛距离中点越远,增加的量就越多,也可以理解为
蜗牛距离绳的末端越近,绳的末端就跑的越慢。
如果蜗牛来到了绳的末端,当绳在一次增加了1000米的时候,蜗牛这个时候才相对于绳的始端前进了1000米
对于绳的末端,蜗牛是做的加速度增加的加速运动
全在于“均匀增加”这四个字。

[ 本帖最后由 猫匪 于 2007-10-6 17:58 编辑 ]

论坛徽章:
0
47 [报告]
发表于 2007-10-06 18:00 |只看该作者
原帖由 JeffreyPei 于 2007-10-6 17:39 发表
设第n天早上蜗牛前面的长度为a(n),a(1)=1000
第n+1天: (a(n) - 1)/1000*n = a(n+1) / 1000*(n+1),
a(n+1) = (n+1)/n * [a(n) - 1]

a(n+1)-a(n)=[a(n)-(n+1)]/n;
所以在a(n)>n+1时,数列是递增的。
如果当n充分大,能使a(n)<n+1;那么数列是递减。
……

你这里的假设有问题。在a(n) > n+1时,数列递增,你会发现根本没有可能出现一个充分大的n再使得 a(n) < n+1
因为 a(n)已经大于n+1,而且a(n)又是递增的,那来的机会反而更大的n使得a(n) < n+1

所以你的这个推导基本上证明了蜗牛爬不到终点。

论坛徽章:
0
48 [报告]
发表于 2007-10-06 18:04 |只看该作者
原帖由 猫匪 于 2007-10-6 17:48 发表
f(1) = 2                    //因为爬一米后,拉伸1倍,相当于爬2米。     
=========================================
按你的始端不动的话,爬行一米,拉伸一倍,实际前进了1+1/1000米
如果是两端同时拉伸 ...


请看我的初始化,我是从第1天拉伸以后循环的,蜗牛位置我初始化为2.0;
你可以在循环中检测以下蜗牛位置和绳子长度,你会发现蜗牛爬到1半是根本不可能的,实际情况是绳长达到10^7后,蜗牛才爬几万米,相差了3个数量级。也就是说绳子的前面变长得比后面快得多。

论坛徽章:
0
49 [报告]
发表于 2007-10-06 18:06 |只看该作者
8楼才是正解
1+1/2+1/3+1/4+......+1/n=1000
就是ln(n+1)+r=1000(r是常量,约为0.56)

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
50 [报告]
发表于 2007-10-06 18:07 |只看该作者
可以爬过去
Sigma(1/(ax+b))级数发散。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP