对一个自然数作如下步骤:如果是偶数,折除以2,如果是奇数,则加1进行,直到结果为1时

2024-08-14 21:55:26
推荐回答(3个)
回答1:

对一个自然数做如下操作:如果是偶数则除以2;如果是奇数,对一个自然数做如下操作:如果是偶数则除以2;如果是奇数则加1,如此进行直到1,操罩辩作停止。求经过9次操作变为1的数有多少个?
解:记这个笑隐操作为函数:
f(n)=
n/2 (当n偶);#1
n+1 (当n奇);#2)

将得到的结果记为k,考虑其逆操作g(k)
#1得到k=n/2,k可能偶也可能奇,得到n的逆操作是n=2k;
#2提到k=n+1,k只能为偶,得到n的逆操作是n=k-1
于是
g(k)=2k(k为奇或偶);k-1(k为偶)
也就是说,从奇数开始,只得一个偶数的g(k)=2k值;从偶数开始,可以得到两个,一个偶值为2k,一个奇值为k-1。

以下从k=1为起始,用操作g(k)进行逆推,按步骤写出得到的结果:
#1# 2;(注:第1步,得到2)
#2# 4,1;
#3# (8,3),(2 注:由#1#可见出现循环,下面记成#1#)
#4# (16,7),(6),(#2#)
#5# ((32,15),(14)),(12,5),(#3#)
#6# (((64,31),30),(28,13)),((24,11),10),(#4#)
由此看出步数与对应的数的个数的规律是:
#1# 1
#2# 2
#3# 2+1=3
#4# 3+2=5
#5# 5+3=8
#6# 8+5=13
易见出现了fibonacci(斐波拉契)数列。下面的个数我们接着写下去:
7# 21
8# 34
9# 55
也就是说,经过9步操作而能变为1的数的个数是55.
严格的证明不难作出。暂略。

外一则: fibonacci数列:
f0=0,f1=f2=1,f(n+2)=f(n+1)+f(n){n>=0自然数}
下面的#9#对应于物升缺f(10)

回答2:

直到结果为1时怎么样?
你到底想问啥?再急也得把事情说清楚再急嘛

回答3:

问题是什么?