目录
前面完成两个黑洞的程序演示,下面用python实现冰雹猜想的演示,如果对前面的两个黑洞的程序演示有想法,可以参考我以前的两篇博文。
一、冰雹猜想的来由
1976年的一天,《华盛顿邮报》于头版头条报道了一条数学新闻。文中记叙了这样一个故事:
70年代中期,美国各所名牌大学校园内,人们都像发疯一般,夜以继日,废寝忘食地玩弄一种数学游戏。这个游戏十分简单:任意写出一个正整数N,并且按照以下的规律进行变换:
如果是个奇数,则下一步变成3N+1。
如果是个偶数,则下一步变成N/2。
不单单是学生,甚至连教师、研究员、教授与学究都纷纷加入 。为什么这种游戏的魅力经久不衰?因为人们发现,无论N是怎样一个数字,最终都无法逃脱回到谷底1。准确地说,是无法逃出落入底部的4-2-1循环,永远也逃不出这样的宿命。
这就是著名的“冰雹猜想”
冰雹猜想又称角谷猜想,因为是一个名叫角谷的日本人把它传到中国。
二、实现方法
1、定义根据规则生成新数的函数
#生成新数
def generate_new_number(number):
if number % 2 == 0:
number = number / 2
else:
number = number * 3 + 1
return int(number)
输入正整数,根据奇偶性进行相应的运算,并返回新数
2、定义生成列表的函数
#定义计算生成列表的函数
def cal_to_list(input_number):
number_list =[] #用于存放过程中的数值
new_number = generate_new_number(input_number)
number_list.extend([input_number,new_number])
#符合条件循环,并将产生的数存入列表,以便查阅统计
while new_number > 1:
new_number = generate_new_number(new_number)


1016

被折叠的 条评论
为什么被折叠?



