考拉兹猜想
2013-09-02 19:54
363 查看
考拉兹猜想是1927年提出的猜想,至今仍然未解。考拉兹猜想的内容是:对于每一个正整数,如果他是奇数,则对它乘3再加1,如果它是偶数,则对他除2,。这样循环,最终结果都能得到1
第一次见到这个猜想是在《The Pratice of Computing Using Python》(中文版《Python入门经典-已解决计算问题为导向的Python编程实践》)。对于这个猜想,作者设计了如下程序(验证一个数是否符合猜想):
修改后的程序,需要加载numpy,和scipy。
# Generating a Hailstone sequence numString = raw_input("Enter a positive integrate:") num = int(numString) count = 0 print "Starting wiht number:", num print "Sequence is: ", while num > 1: # stop when the sequence reaches 1 if num%2: # num is odd num = num*3 + 1 else: # num is even num = num/2 print num, ",", # add num to sequence count += 1 # add num to count else: print # blank line fo nicer output print "Sequence is ", count, " numbers long"为了能够用图直观的表示出数列的收敛趋势,我对程序进行了如下的修改:
# -*- coding:utf-8 -*- # Filename: collatz_guess.py # 获得输入 numString = raw_input("输入一个数:") num = int(numString) # 建立一个计数列表和结果计算过程列表 count = 0 count_list = [0] sequence_list = [] sequence_list.append(num) while num != 1: if num%2: num = num*3 + 1 # 如果是奇数,乘以3,再加1 else: num = num/2 # 如果是偶数,除以2 count += 1 count_list.append(count) # 把计数添加到计数序列 sequence_list.append(num) # 把结果添加到计算过程序列 else: print print sequence_list # 绘图 import numpy as np import pylab as pl from scipy import interpolate x = np.linspace(0, count, count*10+1) # 根据count设置差值变量的范围 count_array = np.array(count_list) sequence_array = np.array(sequence_list) # 把数组转换为array pl.plot(count_array, sequence_array, 'ro') # 绘制count, num的散点图 f = interpolate.interp1d(count_array, sequence_array, kind="slinear") y = f(x) pl.plot(x, y, label = "collatz guess") # 插值并绘图 pl.legend(loc='hight right') pl.show()
修改后的程序,需要加载numpy,和scipy。
相关文章推荐
- Java实例5 - 考拉兹猜想 Collatz Conjecture
- Java实例5 - 考拉兹猜想 Collatz Conjecture
- Q06考拉兹猜想
- Java数据结构及算法实例:考拉兹猜想 Collatz Conjecture
- 17.4.8.3n+1猜想、考拉兹猜想
- 微软迎娶Skype的三大猜想
- 开心网(kaixin001.com)服务器架构的一点猜想
- 2011年最后的科学猜想-人脑中有微博么?
- 新浪&腾讯微博:MySQL数据库主表设计猜想
- 几个有意思的数学猜想
- 论欧洲列强争霸霸主——欧洲杯冠军猜想
- 可视化角谷猜想
- HDU 1279 验证角谷猜想
- Jsoup 抓取购物网站之(etao)—淘 ——数据来源猜想
- PAT中文版1005.继续(3n+1)猜想
- 杭电 1279 验证角谷猜想
- 果壳、英特尔“手游神器”的三大猜想
- 双四核1080P高清屏 魅族MX3配置猜想
- 关于实时 Ambient Occlusion 一点猜想
- 新浪微博,腾讯微博mysql数据库主表猜想 __转