求证(100分)

  • 主题发起人 主题发起人 zhaishenming812
  • 开始时间 开始时间
Z

zhaishenming812

Unregistered / Unconfirmed
GUEST, unregistred user!
请证:当输入x位正整数时,程序中止
while(x!=1)
{if(x%2)
x=3*x+1;
else
x=x/2;
}
 
啥意思?? x=2的时候不就中止了么。。。
 
那x为任意正整数,怎么证明它会变成2
 
while(x!=1) and (x>=1)
{
if(x%2)
x=3*x+1;
else
x=x/2;
}
 
有些数不会终止,比如67就会经过循环
33,16,...,81,40,...,135,67,33
死循环,看看是不是公式错了
 
沒證過。
不過只要經過上面的運算到了2的N方就行了。
所以上面的33是不會循環的,
33,100,50,25,76,。。。。40,5,16,8,4,2,1
 
恩,公式看错了。
昨天看着这题眼熟,今天翻了下书,在一本算法书中讲递归的一节里找到,可惜,书中说无法证明。。。
 
我晕,如果没记错,这好像是歌德巴赫猜想的变形,楼主整人啊?
 
后退
顶部