冰雹(3n+1)猜想一个不太成熟的小思路

问题描述
下面的算法段用于确定n的初始值。试分析该算法段所需计算时间的上界和下界。
————————————————————
while(n>1)
if(odd(n))
n=3*n+1;
else
n=n/2;
————————————————————

解题思路
考虑到整个代码段中的主体是一个while循环并且循环中只有一个if-else语句。我们假定这里n的值都大于1,于是我们以这个if判断语句为突破口,把n分成两种情况来解题。分别是:
1、n为奇数时;
2、n为偶数时。

解题步骤
(一)、n(n>1)为奇数时:
(1)n>1,进入while循环。n为奇数,则执行if语句后的代码即:n=n*3+1。一个奇数乘3还为奇数,再加1,变为偶数。
(2)偶数执行else语句,除以2,这个时候的结果就不确定了。
(二)、n(n>1)为偶数时:
一、(1)当n为2的整数次幂时,则一直执行else语句知道n变为1。在此情况中,设n=2k,则T(n)=logn,这是最好的情况。
二、(1)当n不是2的整数次幂时,则把所有的因子2除完之后就变为奇数,又变到n为奇数的情况。

比较坏的情况(不一定是最坏)
我们把n是奇数的情况再做分析:
1、我们要让循环停止,就要在经过几轮循环之后得到一个奇数t,使得3t+1=2k(k为整数),则之后只需要循环k次一直执行else语句即可。
2、比较坏的情况是奇数偶数一直交替变换直到变成得到第一步中所要求的t。因为如果奇数变为偶数偶数再变为偶数的话n就会变小,这样就不是最坏的情况。我们要的是
3、如果奇偶一直交替变化,则n的变化为:
n->3n+1->(3/2)n+1/2->(9/2)n+5/2……->(3/2)mn+(2m-1)/2m=2k
奇-> 偶 -> 奇 -> 偶 ……-> 3t+1=2k
4、当m->无穷大时,(2m-1)/2m->0,即(3/2)mn=2k,解得:m+k=log23mn
5、从刚开始的n变为t执行了m步,再到后面一直执行k次else语句进行了k次,每执行一步时间为1,则这个比较坏的时间为T(n)=m+k=log23mn

冰雹猜想
猜想来历
1976年的一天,《华盛顿邮报》于头版头条报道了一条数学新闻。文中记叙了这样一个故事:
70年代中期,美国各所名牌大学校园内,人们都像发疯一般,夜以继日,废寝忘食地玩弄一种数学游戏。这个游戏十分简单:任意写出一个自然数N,并且按照以下的规律进行变换:
如果是个奇数,则下一步变成3N+1。
如果是个偶数,则下一步变成N/2。
不单单是学生,甚至连教师、研究员、教授与学究都纷纷加入 [9] 。为什么这种游戏的魅力经久不衰?因为人们发现,无论N是怎样一个数字,最终都无法逃脱回到谷底1。准确地说,是无法逃出落入底部的4-2-1循环,永远也逃不出这样的宿命。
这就是著名的“冰雹猜想” [10] 。
*强悍的27
冰雹的最大魅力在于不可预知性。英国剑桥大学教授John Conway找到了一个自然数27。虽然27是一个貌不惊人的自然数,但是如果按照上述方法进行运算,则它的上浮下沉异常剧烈:首先,27要经过77步骤的变换到达顶峰值9232,然后又经过34步骤到达谷底值1。全部的变换过程(称作“雹程”)需要111步,其顶峰值9232,达到了原有数字27的342倍多,如果以瀑布般的直线下落(2的N次方)来比较,则具有同样雹程的数字N要达到2的111次方。其对比何其惊人!
但是在1到100的范围内,像27这样的剧烈波动是没有的(54等27的2的次方倍数的数除外。)

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值