The following iterative sequence is defined for the set of positive integers:

n → n/2 (n is even)
n → 3n + 1 (n is odd)

Using the rule above and starting with 13, we generate the following sequence:

13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1

It can be seen that this sequence (starting at 13 and finishing at 1) contains 10 terms. Although it has not been proved yet (Collatz Problem), it is thought that all starting numbers finish at 1.

Which starting number, under one million, produces the longest chain?

NOTE: Once the chain starts the terms are allowed to go above one million.

-------------------------------------------------------------------------------------------------------------------------

#!/usr/bin/env python
#创建字典colenth
colenth  =  { 1 : 1 }
#起始数字为n时,对应的长度为collatz(n)
def  collatz(n):
     #如果n这个key不在colenth字典中,则进行以下运算,否则直接返回colength[n]
     if  not  colenth.get(n, 0 ):
         if  %  2 :
             colenth[n]  =  collatz( 3  *  +  1 +  1
         else :
             colenth[n]  =  collatz(n  /  2 +  1
     return  colenth[n]
#字典key从1循环到999999,求得所有对应的value,取最大值。
m,n  =  0 , 0
for  in  xrange ( 1 , 1000000 ):
     =  collatz(i)
     if  c > m:
         m,n  =  c,i
print  m,n
--------------------------------------------------------------------------------------
思路
将序列中出现的每一个数字对应的长度保存在一个字典中,键值对为{起始数字:长度},这样之后再遇到这个数字时可直接得出其长度值而不必重复计算。

比如在序列:

3→10→5→16→8→4→2→1

中,得到了比3大的多个数字的克拉茨序列长度,那么循环到这些数字时就无需再进行计算。

最后求这个字典中最大value对应的key就可以了。

----------------------------------------------

为什么自己写的总是循环不出来。。。。

python实现欧拉计划第十四题相关推荐

  1. 欧拉计划:第53题 Combinatoric selections

    欧拉计划:第53题 Combinatoric selections 无意中知道有这个用编程解决数学题的网站,个人对数学又比较感兴趣,所以打算做个欧拉计划系列,将自己的一些见解分享给大家,第一次写文章, ...

  2. 欧拉计划:第21题计算10000以下所有亲和数之和,22题文件中所有名字的得分之和

    21:计算10000以下所有亲和数之和: Let d(n) be defined as the sum of proper divisors of n (numbers less than n whi ...

  3. 欧拉计划(project euler)最详细中文题解

    欧拉计划是一个在线解题网站,题目以各类数学问题为主,通常需要结合一定的数学与编程知识,写出适当的程序求解问题(详细介绍可以参见我的文章).相比于力扣等刷题网站,欧拉计划上的题目有着更丰富的知识背景,在 ...

  4. 欧拉计划 Project Euler 50-56

    Project Euler 50-56 Project Euler: https://projecteuler.net/ Project Euler | 欧拉计划: https://pe-cn.git ...

  5. [Python从零到壹] 六十四.图像识别及经典案例篇之图像傅里叶变换和傅里叶逆变换详解

    祝大家新年快乐,阖家幸福,健康快乐! 欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所 ...

  6. 欧拉计划 P429 (数论)

    欧拉计划 P429 Sum of squares of unitary divisors(数论) 传送门:https://projecteuler.net/problem=429 题目大意: 定义一个 ...

  7. [Python从零到壹] 五十四.图像增强及运算篇之局部直方图均衡化和自动色彩均衡化处理

    首先,祝大家教师节和中秋节快乐! 欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文 ...

  8. 拉卡拉的十四年和第三次成人礼

    "上市是企业的成人礼."--拉卡拉董事长孙陶然 回望第三方支付市场的2014-2018年,是支付宝和财付通"万丈高楼平地起"的五年,也是中小支付企业夹缝求生的五 ...

  9. 欧拉计划(鱼C论坛)@20161107

    1.10以下的自然数中,属于3或5的倍数的数字有3,5,6,9,它们之和为23找出1000以下的自然数中,属于3或5倍数的所有数字之和. """ 欧拉计划 10以下的自然 ...

  10. 第十四题: 以下代码的输出结果是?

    第十四题: 以下代码的输出结果是? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public class B {     public static B t1 = n ...

最新文章

  1. 英伟达开源行人生成/重识别代码
  2. bioperl 格式化genebank的输出
  3. [云炬创业学笔记]第二章决定成为创业者测试18
  4. Python练习题 001:4个数字求不重复的3位数
  5. 京东数科上市首轮问询「答卷」:与蚂蚁集团有本质区别、信用风险损失有限
  6. Transport Ship【多重背包】
  7. 爬虫-36kr-使用xpath爬取数据-part1-提取接口所需的6开头的数字-拼接下一个接口的路径
  8. linux动态可执行文件,Linux中ELF格式 可执行文件+动态链接器 的加载
  9. H5神兽,优优,牛来了,牛小天,牛欢喜,至尊星空等搭建教程
  10. 泛函分析 04.05 有界线性算子 - 闭算子与闭图像定理
  11. 随机样本,方便样本与资源回应样本
  12. itunes备份文件夹更换
  13. websocket与http优缺点
  14. YOLOv3训练自己的数据详细步骤
  15. ROS服务通信《客户端》 C++向服务端发送信息(乌龟案例,生成第二个乌龟)
  16. B2B、B2C、C2C、O2O分别是什么
  17. ROS学习总结十二:给自己的机器人添加传感器
  18. 企业WiFi解决方案,解决所有后顾之忧
  19. STM32CubeIDE 统计及控制PWM产生个数
  20. ZOJ 3898 Stean (求旋转体体积与面积)

热门文章

  1. 源码编译——root指纹定制和抹除
  2. Lantronix xPico-WIFi + CPR Manager 创建虚拟串口
  3. Stable Diffusion WebUI批量抽卡做漫画
  4. 刚刚,2023第一个诺贝尔奖揭晓!
  5. 职称论文发表期刊权威推荐
  6. 小人地铁猥亵殴打女乘客 网友发现打人者疑似经济学家
  7. html列表线,【html】斑马线表格
  8. 智慧城市智慧灯杆IP网络广播紧急求助系统
  9. lammps模拟“lost atoms”原子原因及解决方法
  10. OpenVINS 代码解读(2) - Feature特征点相关