鱼C论坛

 找回密码
 立即注册
查看: 4672|回复: 21

[技术交流] 小练习:20160509 找出以100万以下的数字开始的最长序列

[复制链接]
发表于 2016-5-9 10:04:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 冬雪雪冬 于 2016-5-16 13:39 编辑

从现在开始我们要开展一批欧拉计划的习题练习。
其实在我们论坛中已有欧拉计划的板块,可能有些鱼油还没注意到。
什么是欧拉计划:http://bbs.fishc.com/thread-60405-1-1.html
我们欧拉板块现已给出了81道题,这批练习将从欧拉计划中选题。其实用python语言完成有很多的优势,可以更简洁更方便的实现。
如果大家有兴趣也可浏览欧拉的英文网站:https://projecteuler.net/archives
这里已经有了500余题,并且你每做对一题,就可以下载到参考答案的pdf文件,看看你的实现方法与参考答案有什么不同,以利于迅速提高自己的水平。


                               
登录/注册后可看大图

好了言归正传,我们开始做小练习。




题目要求:
以python语言完成,如果是python2请注明。
程序以代码文字格式发帖。
题目比较简单,注重程序效率和创意。
答题在一周内完成,即5.16 10:00之前,其后将公开大家的答案,并评比成绩。

另程序和答案可以在网上搜到,希望大家独立完成。


题目:

以下迭代序列定义在整数集合上:

n → n/2 (当 n 是偶数时)
n → 3n + 1 (当 n 是奇数时)

应用以上规则,并且以数字 13 开始,我们得到以下序列:

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

可以看出这个以 13 开始以 1 结束的序列包含 10 个项。虽然还没有被证明(Collatz 问题),但是人们认为在这个规则下,以任何数字开始都会以 1 结束。

以哪个不超过 100 万的数字开始,能给得到最长的序列?

注意: 一旦序列开始之后,也就是从第二项开始,项是可以超过 100 万的。


附加题:



找出以下 100 个 50 位数之和的前十位数字。

37107287533902102798797998220837590246510135740250
46376937677490009712648124896970078050417018260538
74324986199524741059474233309513058123726617309629
91942213363574161572522430563301811072406154908250
23067588207539346171171980310421047513778063246676
89261670696623633820136378418383684178734361726757
28112879812849979408065481931592621691275889832738
44274228917432520321923589422876796487670272189318
47451445736001306439091167216856844588711603153276
70386486105843025439939619828917593665686757934951
62176457141856560629502157223196586755079324193331
64906352462741904929101432445813822663347944758178
92575867718337217661963751590579239728245598838407
58203565325359399008402633568948830189458628227828
80181199384826282014278194139940567587151170094390
35398664372827112653829987240784473053190104293586
86515506006295864861532075273371959191420517255829
71693888707715466499115593487603532921714970056938
54370070576826684624621495650076471787294438377604
53282654108756828443191190634694037855217779295145
36123272525000296071075082563815656710885258350721
45876576172410976447339110607218265236877223636045
17423706905851860660448207621209813287860733969412
81142660418086830619328460811191061556940512689692
51934325451728388641918047049293215058642563049483
62467221648435076201727918039944693004732956340691
15732444386908125794514089057706229429197107928209
55037687525678773091862540744969844508330393682126
18336384825330154686196124348767681297534375946515
80386287592878490201521685554828717201219257766954
78182833757993103614740356856449095527097864797581
16726320100436897842553539920931837441497806860984
48403098129077791799088218795327364475675590848030
87086987551392711854517078544161852424320693150332
59959406895756536782107074926966537676326235447210
69793950679652694742597709739166693763042633987085
41052684708299085211399427365734116182760315001271
65378607361501080857009149939512557028198746004375
35829035317434717326932123578154982629742552737307
94953759765105305946966067683156574377167401875275
88902802571733229619176668713819931811048770190271
25267680276078003013678680992525463401061632866526
36270218540497705585629946580636237993140746255962
24074486908231174977792365466257246923322810917141
91430288197103288597806669760892938638285025333403
34413065578016127815921815005561868836468420090470
23053081172816430487623791969842487255036638784583
11487696932154902810424020138335124462181441773470
63783299490636259666498587618221225225512486764533
67720186971698544312419572409913959008952310058822
95548255300263520781532296796249481641953868218774
76085327132285723110424803456124867697064507995236
37774242535411291684276865538926205024910326572967
23701913275725675285653248258265463092207058596522
29798860272258331913126375147341994889534765745501
18495701454879288984856827726077713721403798879715
38298203783031473527721580348144513491373226651381
34829543829199918180278916522431027392251122869539
40957953066405232632538044100059654939159879593635
29746152185502371307642255121183693803580388584903
41698116222072977186158236678424689157993532961922
62467957194401269043877107275048102390895523597457
23189706772547915061505504953922979530901129967519
86188088225875314529584099251203829009407770775672
11306739708304724483816533873502340845647058077308
82959174767140363198008187129011875491310547126581
97623331044818386269515456334926366572897563400500
42846280183517070527831839425882145521227251250327
55121603546981200581762165212827652751691296897789
32238195734329339946437501907836945765883352399886
75506164965184775180738168837861091527357929701337
62177842752192623401942399639168044983993173312731
32924185707147349566916674687634660915035914677504
99518671430235219628894890102423325116913619626622
73267460800591547471830798392868535206946944540724
76841822524674417161514036427982273348055556214818
97142617910342598647204516893989422179826088076852
87783646182799346313767754307809363333018982642090
10848802521674670883215120185883543223812876952786
71329612474782464538636993009049310363619763878039
62184073572399794223406235393808339651327408011116
66627891981488087797941876876144230030984490851411
60661826293682836764744779239180335110989069790714
85786944089552990653640447425576083659976645795096
66024396409905389607120198219976047599490197230297
64913982680032973156037120041377903785566085089252
16730939319872750275468906903707539413042652315011
94809377245048795150954100921645863754710598436791
78639167021187492431995700641917969777599028300699
15368713711936614952811305876380278410754449733078
40789923115535562561142322423255033685442488917353
44889911501440648020369068063960672322193204149535
41503128880339536053299340368006977710650566631954
81234880673210146739058568557934581403627822703280
82616570773948327592232845941706525094512325230608
22918802058777319719839450180888072429661980811197
77158542502016545090413245809786882778948721859617
72107838435069186155435662884062257473692284509516
20849603980134001723930671666823555245252804609722
53503534226472524250874054075591789781264330331690


题目对于python这种擅长大数运算的语言太容易了,因此本题只作为附加题。



奖励:
对所有完成程序并得出正确答案的将给予加分奖励,优秀的将额外加分。
在完成一批题目后,将根据每期的完成情况总评评出最佳,会有神秘大奖。


本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-5-9 14:17:46 | 显示全部楼层
本帖最后由 bacon6581 于 2016-5-9 15:23 编辑

用迭代解:
  1. from time import time
  2. start=time()
  3. num_max=0
  4. num=1
  5. n_max=0
  6. def qiu(m,n=1):
  7.     if m==1:
  8.         return n
  9.     if m%2==0:
  10.         return qiu(m/2,n+1)
  11.     else:
  12.         return qiu(m*3+1,n+1)
  13. while num<=1000000:
  14.     num+=1
  15.     l=qiu(num)
  16.     if l>n_max:
  17.         num_max=num
  18.         n_max=l
  19. print('num_max:{0};n_max:{1}'.format(num_max,n_max))
  20. print(time()-start)
复制代码

无标题.jpg
运行了近16分钟.....
换成循环的,也要近15分钟,反正是渣渣,懒得贴代码了...

附加题:
  1. num='''37107287533902102798797998220837590246510135740250
  2. 46376937677490009712648124896970078050417018260538
  3. 74324986199524741059474233309513058123726617309629
  4. 91942213363574161572522430563301811072406154908250
  5. 23067588207539346171171980310421047513778063246676
  6. 89261670696623633820136378418383684178734361726757
  7. 28112879812849979408065481931592621691275889832738
  8. 44274228917432520321923589422876796487670272189318
  9. 47451445736001306439091167216856844588711603153276
  10. 70386486105843025439939619828917593665686757934951
  11. 62176457141856560629502157223196586755079324193331
  12. 64906352462741904929101432445813822663347944758178
  13. 92575867718337217661963751590579239728245598838407
  14. 58203565325359399008402633568948830189458628227828
  15. 80181199384826282014278194139940567587151170094390
  16. 35398664372827112653829987240784473053190104293586
  17. 86515506006295864861532075273371959191420517255829
  18. 71693888707715466499115593487603532921714970056938
  19. 54370070576826684624621495650076471787294438377604
  20. 53282654108756828443191190634694037855217779295145
  21. 36123272525000296071075082563815656710885258350721
  22. 45876576172410976447339110607218265236877223636045
  23. 17423706905851860660448207621209813287860733969412
  24. 81142660418086830619328460811191061556940512689692
  25. 51934325451728388641918047049293215058642563049483
  26. 62467221648435076201727918039944693004732956340691
  27. 15732444386908125794514089057706229429197107928209
  28. 55037687525678773091862540744969844508330393682126
  29. 18336384825330154686196124348767681297534375946515
  30. 80386287592878490201521685554828717201219257766954
  31. 78182833757993103614740356856449095527097864797581
  32. 16726320100436897842553539920931837441497806860984
  33. 48403098129077791799088218795327364475675590848030
  34. 87086987551392711854517078544161852424320693150332
  35. 59959406895756536782107074926966537676326235447210
  36. 69793950679652694742597709739166693763042633987085
  37. 41052684708299085211399427365734116182760315001271
  38. 65378607361501080857009149939512557028198746004375
  39. 35829035317434717326932123578154982629742552737307
  40. 94953759765105305946966067683156574377167401875275
  41. 88902802571733229619176668713819931811048770190271
  42. 25267680276078003013678680992525463401061632866526
  43. 36270218540497705585629946580636237993140746255962
  44. 24074486908231174977792365466257246923322810917141
  45. 91430288197103288597806669760892938638285025333403
  46. 34413065578016127815921815005561868836468420090470
  47. 23053081172816430487623791969842487255036638784583
  48. 11487696932154902810424020138335124462181441773470
  49. 63783299490636259666498587618221225225512486764533
  50. 67720186971698544312419572409913959008952310058822
  51. 95548255300263520781532296796249481641953868218774
  52. 76085327132285723110424803456124867697064507995236
  53. 37774242535411291684276865538926205024910326572967
  54. 23701913275725675285653248258265463092207058596522
  55. 29798860272258331913126375147341994889534765745501
  56. 18495701454879288984856827726077713721403798879715
  57. 38298203783031473527721580348144513491373226651381
  58. 34829543829199918180278916522431027392251122869539
  59. 40957953066405232632538044100059654939159879593635
  60. 29746152185502371307642255121183693803580388584903
  61. 41698116222072977186158236678424689157993532961922
  62. 62467957194401269043877107275048102390895523597457
  63. 23189706772547915061505504953922979530901129967519
  64. 86188088225875314529584099251203829009407770775672
  65. 11306739708304724483816533873502340845647058077308
  66. 82959174767140363198008187129011875491310547126581
  67. 97623331044818386269515456334926366572897563400500
  68. 42846280183517070527831839425882145521227251250327
  69. 55121603546981200581762165212827652751691296897789
  70. 32238195734329339946437501907836945765883352399886
  71. 75506164965184775180738168837861091527357929701337
  72. 62177842752192623401942399639168044983993173312731
  73. 32924185707147349566916674687634660915035914677504
  74. 99518671430235219628894890102423325116913619626622
  75. 73267460800591547471830798392868535206946944540724
  76. 76841822524674417161514036427982273348055556214818
  77. 97142617910342598647204516893989422179826088076852
  78. 87783646182799346313767754307809363333018982642090
  79. 10848802521674670883215120185883543223812876952786
  80. 71329612474782464538636993009049310363619763878039
  81. 62184073572399794223406235393808339651327408011116
  82. 66627891981488087797941876876144230030984490851411
  83. 60661826293682836764744779239180335110989069790714
  84. 85786944089552990653640447425576083659976645795096
  85. 66024396409905389607120198219976047599490197230297
  86. 64913982680032973156037120041377903785566085089252
  87. 16730939319872750275468906903707539413042652315011
  88. 94809377245048795150954100921645863754710598436791
  89. 78639167021187492431995700641917969777599028300699
  90. 15368713711936614952811305876380278410754449733078
  91. 40789923115535562561142322423255033685442488917353
  92. 44889911501440648020369068063960672322193204149535
  93. 41503128880339536053299340368006977710650566631954
  94. 81234880673210146739058568557934581403627822703280
  95. 82616570773948327592232845941706525094512325230608
  96. 22918802058777319719839450180888072429661980811197
  97. 77158542502016545090413245809786882778948721859617
  98. 72107838435069186155435662884062257473692284509516
  99. 20849603980134001723930671666823555245252804609722
  100. 53503534226472524250874054075591789781264330331690'''
  101. a=num.split()
  102. b=[]
  103. total=0
  104. for i in a:
  105.     b.append(int(i))
  106. for i in b:
  107.     total+=i
  108. total_str=str(total)
  109. print(total_str[0:10])
复制代码

结果如图
无标题.jpg

评分

参与人数 1荣誉 +7 鱼币 +7 收起 理由
冬雪雪冬 + 7 + 7 热爱鱼C^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-9 21:10:50 | 显示全部楼层
本帖最后由 挥舞乾坤 于 2016-5-11 09:26 编辑
  1. def seq(n):
  2.     '''根据规则生成以n开始的序列'''
  3.     while True:
  4.         yield n
  5.         if n == 1:
  6.             break
  7.         if n % 2 == 0:
  8.             n //= 2
  9.         else:
  10.             n = (3*n+1)

  11. def fun(n=1000000):
  12.     result = {}
  13.     for i in range(n,0,-1):
  14.         if i not in result:
  15.             r = dict.fromkeys(seq(i),0)
  16.             result.update(r)
  17.             result[i] = len(r)
  18.     return max(result, key=lambda x:result[x])

  19. r = fun()
  20. print(r)
  21. # r_list = list(seq(r))
  22. # r_len = len(r_list)
  23. # print(r_len)
  24. # print(r_list)
复制代码


附加题:
  1. data = '''
  2. 37107287533902102798797998220837590246510135740250
  3. 46376937677490009712648124896970078050417018260538
  4. 74324986199524741059474233309513058123726617309629
  5. 91942213363574161572522430563301811072406154908250
  6. 23067588207539346171171980310421047513778063246676
  7. 89261670696623633820136378418383684178734361726757
  8. 28112879812849979408065481931592621691275889832738
  9. 44274228917432520321923589422876796487670272189318
  10. 47451445736001306439091167216856844588711603153276
  11. 70386486105843025439939619828917593665686757934951
  12. 62176457141856560629502157223196586755079324193331
  13. 64906352462741904929101432445813822663347944758178
  14. 92575867718337217661963751590579239728245598838407
  15. 58203565325359399008402633568948830189458628227828
  16. 80181199384826282014278194139940567587151170094390
  17. 35398664372827112653829987240784473053190104293586
  18. 86515506006295864861532075273371959191420517255829
  19. 71693888707715466499115593487603532921714970056938
  20. 54370070576826684624621495650076471787294438377604
  21. 53282654108756828443191190634694037855217779295145
  22. 36123272525000296071075082563815656710885258350721
  23. 45876576172410976447339110607218265236877223636045
  24. 17423706905851860660448207621209813287860733969412
  25. 81142660418086830619328460811191061556940512689692
  26. 51934325451728388641918047049293215058642563049483
  27. 62467221648435076201727918039944693004732956340691
  28. 15732444386908125794514089057706229429197107928209
  29. 55037687525678773091862540744969844508330393682126
  30. 18336384825330154686196124348767681297534375946515
  31. 80386287592878490201521685554828717201219257766954
  32. 78182833757993103614740356856449095527097864797581
  33. 16726320100436897842553539920931837441497806860984
  34. 48403098129077791799088218795327364475675590848030
  35. 87086987551392711854517078544161852424320693150332
  36. 59959406895756536782107074926966537676326235447210
  37. 69793950679652694742597709739166693763042633987085
  38. 41052684708299085211399427365734116182760315001271
  39. 65378607361501080857009149939512557028198746004375
  40. 35829035317434717326932123578154982629742552737307
  41. 94953759765105305946966067683156574377167401875275
  42. 88902802571733229619176668713819931811048770190271
  43. 25267680276078003013678680992525463401061632866526
  44. 36270218540497705585629946580636237993140746255962
  45. 24074486908231174977792365466257246923322810917141
  46. 91430288197103288597806669760892938638285025333403
  47. 34413065578016127815921815005561868836468420090470
  48. 23053081172816430487623791969842487255036638784583
  49. 11487696932154902810424020138335124462181441773470
  50. 63783299490636259666498587618221225225512486764533
  51. 67720186971698544312419572409913959008952310058822
  52. 95548255300263520781532296796249481641953868218774
  53. 76085327132285723110424803456124867697064507995236
  54. 37774242535411291684276865538926205024910326572967
  55. 23701913275725675285653248258265463092207058596522
  56. 29798860272258331913126375147341994889534765745501
  57. 18495701454879288984856827726077713721403798879715
  58. 38298203783031473527721580348144513491373226651381
  59. 34829543829199918180278916522431027392251122869539
  60. 40957953066405232632538044100059654939159879593635
  61. 29746152185502371307642255121183693803580388584903
  62. 41698116222072977186158236678424689157993532961922
  63. 62467957194401269043877107275048102390895523597457
  64. 23189706772547915061505504953922979530901129967519
  65. 86188088225875314529584099251203829009407770775672
  66. 11306739708304724483816533873502340845647058077308
  67. 82959174767140363198008187129011875491310547126581
  68. 97623331044818386269515456334926366572897563400500
  69. 42846280183517070527831839425882145521227251250327
  70. 55121603546981200581762165212827652751691296897789
  71. 32238195734329339946437501907836945765883352399886
  72. 75506164965184775180738168837861091527357929701337
  73. 62177842752192623401942399639168044983993173312731
  74. 32924185707147349566916674687634660915035914677504
  75. 99518671430235219628894890102423325116913619626622
  76. 73267460800591547471830798392868535206946944540724
  77. 76841822524674417161514036427982273348055556214818
  78. 97142617910342598647204516893989422179826088076852
  79. 87783646182799346313767754307809363333018982642090
  80. 10848802521674670883215120185883543223812876952786
  81. 71329612474782464538636993009049310363619763878039
  82. 62184073572399794223406235393808339651327408011116
  83. 66627891981488087797941876876144230030984490851411
  84. 60661826293682836764744779239180335110989069790714
  85. 85786944089552990653640447425576083659976645795096
  86. 66024396409905389607120198219976047599490197230297
  87. 64913982680032973156037120041377903785566085089252
  88. 16730939319872750275468906903707539413042652315011
  89. 94809377245048795150954100921645863754710598436791
  90. 78639167021187492431995700641917969777599028300699
  91. 15368713711936614952811305876380278410754449733078
  92. 40789923115535562561142322423255033685442488917353
  93. 44889911501440648020369068063960672322193204149535
  94. 41503128880339536053299340368006977710650566631954
  95. 81234880673210146739058568557934581403627822703280
  96. 82616570773948327592232845941706525094512325230608
  97. 22918802058777319719839450180888072429661980811197
  98. 77158542502016545090413245809786882778948721859617
  99. 72107838435069186155435662884062257473692284509516
  100. 20849603980134001723930671666823555245252804609722
  101. 53503534226472524250874054075591789781264330331690
  102. '''
  103. print(int(str(sum(map(int,data.split())))[:10]))
复制代码

评分

参与人数 1荣誉 +7 鱼币 +7 收起 理由
冬雪雪冬 + 7 + 7 热爱鱼C^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-10 07:58:40 | 显示全部楼层
  1. #837799
  2. n=0
  3. m=0
  4. l=0
  5. o=0
  6. for i in range(500001,1000001):
  7.     l=i
  8.     n=0
  9.     while i!=16:
  10.         if i&1:
  11.             i=i*3+1
  12.         else:
  13.             i//=2
  14.         n+=1
  15.     if m<n:
  16.         m=n
  17.         o=l

  18. a='''37107287533902102798797998220837590246510135740250
  19. 46376937677490009712648124896970078050417018260538
  20. 74324986199524741059474233309513058123726617309629
  21. 91942213363574161572522430563301811072406154908250
  22. 23067588207539346171171980310421047513778063246676
  23. 89261670696623633820136378418383684178734361726757
  24. 28112879812849979408065481931592621691275889832738
  25. 44274228917432520321923589422876796487670272189318
  26. 47451445736001306439091167216856844588711603153276
  27. 70386486105843025439939619828917593665686757934951
  28. 62176457141856560629502157223196586755079324193331
  29. 64906352462741904929101432445813822663347944758178
  30. 92575867718337217661963751590579239728245598838407
  31. 58203565325359399008402633568948830189458628227828
  32. 80181199384826282014278194139940567587151170094390
  33. 35398664372827112653829987240784473053190104293586
  34. 86515506006295864861532075273371959191420517255829
  35. 71693888707715466499115593487603532921714970056938
  36. 54370070576826684624621495650076471787294438377604
  37. 53282654108756828443191190634694037855217779295145
  38. 36123272525000296071075082563815656710885258350721
  39. 45876576172410976447339110607218265236877223636045
  40. 17423706905851860660448207621209813287860733969412
  41. 81142660418086830619328460811191061556940512689692
  42. 51934325451728388641918047049293215058642563049483
  43. 62467221648435076201727918039944693004732956340691
  44. 15732444386908125794514089057706229429197107928209
  45. 55037687525678773091862540744969844508330393682126
  46. 18336384825330154686196124348767681297534375946515
  47. 80386287592878490201521685554828717201219257766954
  48. 78182833757993103614740356856449095527097864797581
  49. 16726320100436897842553539920931837441497806860984
  50. 48403098129077791799088218795327364475675590848030
  51. 87086987551392711854517078544161852424320693150332
  52. 59959406895756536782107074926966537676326235447210
  53. 69793950679652694742597709739166693763042633987085
  54. 41052684708299085211399427365734116182760315001271
  55. 65378607361501080857009149939512557028198746004375
  56. 35829035317434717326932123578154982629742552737307
  57. 94953759765105305946966067683156574377167401875275
  58. 88902802571733229619176668713819931811048770190271
  59. 25267680276078003013678680992525463401061632866526
  60. 36270218540497705585629946580636237993140746255962
  61. 24074486908231174977792365466257246923322810917141
  62. 91430288197103288597806669760892938638285025333403
  63. 34413065578016127815921815005561868836468420090470
  64. 23053081172816430487623791969842487255036638784583
  65. 11487696932154902810424020138335124462181441773470
  66. 63783299490636259666498587618221225225512486764533
  67. 67720186971698544312419572409913959008952310058822
  68. 95548255300263520781532296796249481641953868218774
  69. 76085327132285723110424803456124867697064507995236
  70. 37774242535411291684276865538926205024910326572967
  71. 23701913275725675285653248258265463092207058596522
  72. 29798860272258331913126375147341994889534765745501
  73. 18495701454879288984856827726077713721403798879715
  74. 38298203783031473527721580348144513491373226651381
  75. 34829543829199918180278916522431027392251122869539
  76. 40957953066405232632538044100059654939159879593635
  77. 29746152185502371307642255121183693803580388584903
  78. 41698116222072977186158236678424689157993532961922
  79. 62467957194401269043877107275048102390895523597457
  80. 23189706772547915061505504953922979530901129967519
  81. 86188088225875314529584099251203829009407770775672
  82. 11306739708304724483816533873502340845647058077308
  83. 82959174767140363198008187129011875491310547126581
  84. 97623331044818386269515456334926366572897563400500
  85. 42846280183517070527831839425882145521227251250327
  86. 55121603546981200581762165212827652751691296897789
  87. 32238195734329339946437501907836945765883352399886
  88. 75506164965184775180738168837861091527357929701337
  89. 62177842752192623401942399639168044983993173312731
  90. 32924185707147349566916674687634660915035914677504
  91. 99518671430235219628894890102423325116913619626622
  92. 73267460800591547471830798392868535206946944540724
  93. 76841822524674417161514036427982273348055556214818
  94. 97142617910342598647204516893989422179826088076852
  95. 87783646182799346313767754307809363333018982642090
  96. 10848802521674670883215120185883543223812876952786
  97. 71329612474782464538636993009049310363619763878039
  98. 62184073572399794223406235393808339651327408011116
  99. 66627891981488087797941876876144230030984490851411
  100. 60661826293682836764744779239180335110989069790714
  101. 85786944089552990653640447425576083659976645795096
  102. 66024396409905389607120198219976047599490197230297
  103. 64913982680032973156037120041377903785566085089252
  104. 16730939319872750275468906903707539413042652315011
  105. 94809377245048795150954100921645863754710598436791
  106. 78639167021187492431995700641917969777599028300699
  107. 15368713711936614952811305876380278410754449733078
  108. 40789923115535562561142322423255033685442488917353
  109. 44889911501440648020369068063960672322193204149535
  110. 41503128880339536053299340368006977710650566631954
  111. 81234880673210146739058568557934581403627822703280
  112. 82616570773948327592232845941706525094512325230608
  113. 22918802058777319719839450180888072429661980811197
  114. 77158542502016545090413245809786882778948721859617
  115. 72107838435069186155435662884062257473692284509516
  116. 20849603980134001723930671666823555245252804609722
  117. 53503534226472524250874054075591789781264330331690'''
  118. a=a.split('\n ')
  119. su=0
  120. for i in a:
  121.     su+=int(i)
  122. print(str(su)[-10:])

复制代码


第一题的答案是837799
第二题是9831892672
第一题不知道怎么优化,运行时间长得可怕

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
冬雪雪冬 + 5 + 5 热爱鱼C^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-10 10:27:59 | 显示全部楼层
  1. def test():
  2.     intit = 1
  3.     before = 0
  4.     result = 0
  5.     while intit <= 1000000:
  6.         r = intit
  7.         count = 1
  8.         while r != 1:
  9.             r = r/2 if r%2==0 else 3*r+1
  10.             count += 1
  11.             
  12.         if count > before:
  13.             before = count
  14.             result = intit
  15.         intit += 1
  16.     print ("%d : %d项"%(result, before))

  17. if __name__ == '__main__':
  18.     from timeit import Timer
  19.     t = Timer("test()", "from __main__ import test")
  20.     print (t.timeit(1))
复制代码

感觉好慢

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
冬雪雪冬 + 5 + 5 热爱鱼C^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-10 11:49:33 | 显示全部楼层
本帖最后由 DingRan 于 2016-5-10 11:51 编辑

严重支持
  1. def func(n):
  2.     if n%2==0:
  3.         return n/2
  4.     if n%2==1:
  5.         return 3*n+1

  6. def func_time(n):
  7.     i = 1
  8.     while n!=1:
  9.         n = func(n)
  10.         i += 1
  11.     return i

  12. m = 1
  13. for num in range(1,1000001):
  14.     if func_time(num)>m:
  15.         m = func_time(num)
  16.         m_num = num

  17. print(m_num)
复制代码

运行结果
  1. >>>
  2. 837799
  3. >>>
复制代码

附加题
  1. a = '''37107287533902102798797998220837590246510135740250
  2. 46376937677490009712648124896970078050417018260538
  3. 74324986199524741059474233309513058123726617309629
  4. 91942213363574161572522430563301811072406154908250
  5. 23067588207539346171171980310421047513778063246676
  6. 89261670696623633820136378418383684178734361726757
  7. 28112879812849979408065481931592621691275889832738
  8. 44274228917432520321923589422876796487670272189318
  9. 47451445736001306439091167216856844588711603153276
  10. 70386486105843025439939619828917593665686757934951
  11. 62176457141856560629502157223196586755079324193331
  12. 64906352462741904929101432445813822663347944758178
  13. 92575867718337217661963751590579239728245598838407
  14. 58203565325359399008402633568948830189458628227828
  15. 80181199384826282014278194139940567587151170094390
  16. 35398664372827112653829987240784473053190104293586
  17. 86515506006295864861532075273371959191420517255829
  18. 71693888707715466499115593487603532921714970056938
  19. 54370070576826684624621495650076471787294438377604
  20. 53282654108756828443191190634694037855217779295145
  21. 36123272525000296071075082563815656710885258350721
  22. 45876576172410976447339110607218265236877223636045
  23. 17423706905851860660448207621209813287860733969412
  24. 81142660418086830619328460811191061556940512689692
  25. 51934325451728388641918047049293215058642563049483
  26. 62467221648435076201727918039944693004732956340691
  27. 15732444386908125794514089057706229429197107928209
  28. 55037687525678773091862540744969844508330393682126
  29. 18336384825330154686196124348767681297534375946515
  30. 80386287592878490201521685554828717201219257766954
  31. 78182833757993103614740356856449095527097864797581
  32. 16726320100436897842553539920931837441497806860984
  33. 48403098129077791799088218795327364475675590848030
  34. 87086987551392711854517078544161852424320693150332
  35. 59959406895756536782107074926966537676326235447210
  36. 69793950679652694742597709739166693763042633987085
  37. 41052684708299085211399427365734116182760315001271
  38. 65378607361501080857009149939512557028198746004375
  39. 35829035317434717326932123578154982629742552737307
  40. 94953759765105305946966067683156574377167401875275
  41. 88902802571733229619176668713819931811048770190271
  42. 25267680276078003013678680992525463401061632866526
  43. 36270218540497705585629946580636237993140746255962
  44. 24074486908231174977792365466257246923322810917141
  45. 91430288197103288597806669760892938638285025333403
  46. 34413065578016127815921815005561868836468420090470
  47. 23053081172816430487623791969842487255036638784583
  48. 11487696932154902810424020138335124462181441773470
  49. 63783299490636259666498587618221225225512486764533
  50. 67720186971698544312419572409913959008952310058822
  51. 95548255300263520781532296796249481641953868218774
  52. 76085327132285723110424803456124867697064507995236
  53. 37774242535411291684276865538926205024910326572967
  54. 23701913275725675285653248258265463092207058596522
  55. 29798860272258331913126375147341994889534765745501
  56. 18495701454879288984856827726077713721403798879715
  57. 38298203783031473527721580348144513491373226651381
  58. 34829543829199918180278916522431027392251122869539
  59. 40957953066405232632538044100059654939159879593635
  60. 29746152185502371307642255121183693803580388584903
  61. 41698116222072977186158236678424689157993532961922
  62. 62467957194401269043877107275048102390895523597457
  63. 23189706772547915061505504953922979530901129967519
  64. 86188088225875314529584099251203829009407770775672
  65. 11306739708304724483816533873502340845647058077308
  66. 82959174767140363198008187129011875491310547126581
  67. 97623331044818386269515456334926366572897563400500
  68. 42846280183517070527831839425882145521227251250327
  69. 55121603546981200581762165212827652751691296897789
  70. 32238195734329339946437501907836945765883352399886
  71. 75506164965184775180738168837861091527357929701337
  72. 62177842752192623401942399639168044983993173312731
  73. 32924185707147349566916674687634660915035914677504
  74. 99518671430235219628894890102423325116913619626622
  75. 73267460800591547471830798392868535206946944540724
  76. 76841822524674417161514036427982273348055556214818
  77. 97142617910342598647204516893989422179826088076852
  78. 87783646182799346313767754307809363333018982642090
  79. 10848802521674670883215120185883543223812876952786
  80. 71329612474782464538636993009049310363619763878039
  81. 62184073572399794223406235393808339651327408011116
  82. 66627891981488087797941876876144230030984490851411
  83. 60661826293682836764744779239180335110989069790714
  84. 85786944089552990653640447425576083659976645795096
  85. 66024396409905389607120198219976047599490197230297
  86. 64913982680032973156037120041377903785566085089252
  87. 16730939319872750275468906903707539413042652315011
  88. 94809377245048795150954100921645863754710598436791
  89. 78639167021187492431995700641917969777599028300699
  90. 15368713711936614952811305876380278410754449733078
  91. 40789923115535562561142322423255033685442488917353
  92. 44889911501440648020369068063960672322193204149535
  93. 41503128880339536053299340368006977710650566631954
  94. 81234880673210146739058568557934581403627822703280
  95. 82616570773948327592232845941706525094512325230608
  96. 22918802058777319719839450180888072429661980811197
  97. 77158542502016545090413245809786882778948721859617
  98. 72107838435069186155435662884062257473692284509516
  99. 20849603980134001723930671666823555245252804609722
  100. 53503534226472524250874054075591789781264330331690'''

  101. print(str(sum(int(each) for each in a.split('\n')))[:10])
复制代码

运行结果
  1. >>>
  2. 5537376230
  3. >>>
复制代码

评分

参与人数 1荣誉 +7 鱼币 +7 收起 理由
冬雪雪冬 + 7 + 7 热爱鱼C^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-10 13:44:53 | 显示全部楼层
本帖最后由 holdme 于 2016-5-13 16:08 编辑
  1. import time

  2. start = time.clock()

  3. def find_long_chain():
  4.     '''思路是在迭代过程中,记录下出现的每个1000000内的数字对应的长度,下次计算过程中进行搜索,如果已有记录则直接跳出'''
  5.     limit = 1000000
  6.     chain_length = [0]*limit
  7.     rec = [0, 0] # 记录最大值
  8.     for i in range(2,limit):
  9.         trace_num = []
  10.         n, cou = i, 1 # 计数器
  11.         while n>1:
  12.             if n<limit:
  13.                 if chain_length[n]>0:
  14.                     cou += chain_length[n] - 1
  15.                     break
  16.             trace_num.append(n)
  17.             if n%2 == 0:
  18.                 n = int(n/2)
  19.             else:
  20.                 n = 3*n + 1
  21.             cou += 1
  22.         if cou>rec[1]: rec = [i, cou] # 更新最大值
  23.         for j in range(len(trace_num)):
  24.             if trace_num[j]<limit: chain_length[trace_num[j]] = cou - j
  25.     return rec

  26. print('1000000以内能得到最长序列的数字是 %d, 序列长度为 %d'%(find_long_chain()[0],find_long_chain()[1]))
  27. print('计算用时%s秒'%str(time.clock()-start))
复制代码


结果是:
  1. 1000000以内能得到最长序列的数字是 837799, 序列长度为 525
  2. 计算用时3.8111777087706287秒
复制代码


附加题:
  1. data= '''37107287533902102798797998220837590246510135740250
  2. 46376937677490009712648124896970078050417018260538
  3. 74324986199524741059474233309513058123726617309629
  4. 91942213363574161572522430563301811072406154908250
  5. 23067588207539346171171980310421047513778063246676
  6. 89261670696623633820136378418383684178734361726757
  7. 28112879812849979408065481931592621691275889832738
  8. 44274228917432520321923589422876796487670272189318
  9. 47451445736001306439091167216856844588711603153276
  10. 70386486105843025439939619828917593665686757934951
  11. 62176457141856560629502157223196586755079324193331
  12. 64906352462741904929101432445813822663347944758178
  13. 92575867718337217661963751590579239728245598838407
  14. 58203565325359399008402633568948830189458628227828
  15. 80181199384826282014278194139940567587151170094390
  16. 35398664372827112653829987240784473053190104293586
  17. 86515506006295864861532075273371959191420517255829
  18. 71693888707715466499115593487603532921714970056938
  19. 54370070576826684624621495650076471787294438377604
  20. 53282654108756828443191190634694037855217779295145
  21. 36123272525000296071075082563815656710885258350721
  22. 45876576172410976447339110607218265236877223636045
  23. 17423706905851860660448207621209813287860733969412
  24. 81142660418086830619328460811191061556940512689692
  25. 51934325451728388641918047049293215058642563049483
  26. 62467221648435076201727918039944693004732956340691
  27. 15732444386908125794514089057706229429197107928209
  28. 55037687525678773091862540744969844508330393682126
  29. 18336384825330154686196124348767681297534375946515
  30. 80386287592878490201521685554828717201219257766954
  31. 78182833757993103614740356856449095527097864797581
  32. 16726320100436897842553539920931837441497806860984
  33. 48403098129077791799088218795327364475675590848030
  34. 87086987551392711854517078544161852424320693150332
  35. 59959406895756536782107074926966537676326235447210
  36. 69793950679652694742597709739166693763042633987085
  37. 41052684708299085211399427365734116182760315001271
  38. 65378607361501080857009149939512557028198746004375
  39. 35829035317434717326932123578154982629742552737307
  40. 94953759765105305946966067683156574377167401875275
  41. 88902802571733229619176668713819931811048770190271
  42. 25267680276078003013678680992525463401061632866526
  43. 36270218540497705585629946580636237993140746255962
  44. 24074486908231174977792365466257246923322810917141
  45. 91430288197103288597806669760892938638285025333403
  46. 34413065578016127815921815005561868836468420090470
  47. 23053081172816430487623791969842487255036638784583
  48. 11487696932154902810424020138335124462181441773470
  49. 63783299490636259666498587618221225225512486764533
  50. 67720186971698544312419572409913959008952310058822
  51. 95548255300263520781532296796249481641953868218774
  52. 76085327132285723110424803456124867697064507995236
  53. 37774242535411291684276865538926205024910326572967
  54. 23701913275725675285653248258265463092207058596522
  55. 29798860272258331913126375147341994889534765745501
  56. 18495701454879288984856827726077713721403798879715
  57. 38298203783031473527721580348144513491373226651381
  58. 34829543829199918180278916522431027392251122869539
  59. 40957953066405232632538044100059654939159879593635
  60. 29746152185502371307642255121183693803580388584903
  61. 41698116222072977186158236678424689157993532961922
  62. 62467957194401269043877107275048102390895523597457
  63. 23189706772547915061505504953922979530901129967519
  64. 86188088225875314529584099251203829009407770775672
  65. 11306739708304724483816533873502340845647058077308
  66. 82959174767140363198008187129011875491310547126581
  67. 97623331044818386269515456334926366572897563400500
  68. 42846280183517070527831839425882145521227251250327
  69. 55121603546981200581762165212827652751691296897789
  70. 32238195734329339946437501907836945765883352399886
  71. 75506164965184775180738168837861091527357929701337
  72. 62177842752192623401942399639168044983993173312731
  73. 32924185707147349566916674687634660915035914677504
  74. 99518671430235219628894890102423325116913619626622
  75. 73267460800591547471830798392868535206946944540724
  76. 76841822524674417161514036427982273348055556214818
  77. 97142617910342598647204516893989422179826088076852
  78. 87783646182799346313767754307809363333018982642090
  79. 10848802521674670883215120185883543223812876952786
  80. 71329612474782464538636993009049310363619763878039
  81. 62184073572399794223406235393808339651327408011116
  82. 66627891981488087797941876876144230030984490851411
  83. 60661826293682836764744779239180335110989069790714
  84. 85786944089552990653640447425576083659976645795096
  85. 66024396409905389607120198219976047599490197230297
  86. 64913982680032973156037120041377903785566085089252
  87. 16730939319872750275468906903707539413042652315011
  88. 94809377245048795150954100921645863754710598436791
  89. 78639167021187492431995700641917969777599028300699
  90. 15368713711936614952811305876380278410754449733078
  91. 40789923115535562561142322423255033685442488917353
  92. 44889911501440648020369068063960672322193204149535
  93. 41503128880339536053299340368006977710650566631954
  94. 81234880673210146739058568557934581403627822703280
  95. 82616570773948327592232845941706525094512325230608
  96. 22918802058777319719839450180888072429661980811197
  97. 77158542502016545090413245809786882778948721859617
  98. 72107838435069186155435662884062257473692284509516
  99. 20849603980134001723930671666823555245252804609722
  100. 53503534226472524250874054075591789781264330331690'''.split('\n')
  101. print(str(sum([int(i) for i in data]))[:10])
复制代码

答案是:
  1. 55373762303
复制代码

评分

参与人数 1荣誉 +10 鱼币 +10 贡献 +5 收起 理由
冬雪雪冬 + 10 + 10 + 5 热爱鱼C^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-5-10 20:27:25 | 显示全部楼层
第一个结果为:525
第二个结果为:5537376230

程序在附件···

demo.zip

533 Bytes, 下载次数: 1

评分

参与人数 1荣誉 +2 鱼币 +2 收起 理由
冬雪雪冬 + 2 + 2 热爱鱼C^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-10 22:07:14 | 显示全部楼层
本帖最后由 老忘 于 2016-5-14 07:01 编辑

思路:1、定义一个字典,里面存放每个数字及对应的项的个数。
         2、从1开始至100万依次求每个数对应的项的个数。
         3、项的个数的按单、双数进行处理,当处理到字典中有的数时,则直接加上该数对应的项的个数,以减少循环次数。最后将该数及对应项的个数加入字典中。
         4、打印出字典中最大的值。

  1. #-*- coding: UTF-8 -*-

  2. def num_split(i):
  3.     i_bak=i
  4.     int_num=0
  5.     while i != 1:
  6.         if i in list_result:
  7.             int_num += list_result[i]
  8.             break
  9.         elif i % 2 == 0:
  10.             i = i / 2
  11.             int_num += 1
  12.         else:
  13.             i = 3 * i + 1
  14.             int_num += 1
  15.     list_result[i_bak] = int_num


  16. list_result={2:2}
  17. for i in range(1,1000000):
  18.     num_split(i)

  19. print(max(list_result.items(),key=lambda x: x[1])[0])
复制代码

评分

参与人数 1荣誉 +8 鱼币 +8 贡献 +5 收起 理由
冬雪雪冬 + 8 + 8 + 5 热爱鱼C^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-10 22:20:23 | 显示全部楼层
  1. import time
  2. def num(n):
  3.     t=0
  4.     while n!=1:
  5.         if n%2==0:
  6.             n//=2
  7.         else:
  8.             n=3*n+1
  9.         t+=1
  10.     return t

  11. t1=time.clock ()

  12. result=list(map(num,range(1,1000001,2)))
  13. n=max(result)
  14. print('1百万以内%d的迭代序列最长,为%d' %(result.index(n)*2+1,n))

  15. t2=time.clock ()
  16. print(t2-t1)
  17.         
复制代码

评分

参与人数 1荣誉 +7 鱼币 +7 收起 理由
冬雪雪冬 + 7 + 7 热爱鱼C^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-10 22:38:43 | 显示全部楼层
  1. temp='''37107287533902102798797998220837590246510135740250
  2. 46376937677490009712648124896970078050417018260538
  3. 74324986199524741059474233309513058123726617309629
  4. 91942213363574161572522430563301811072406154908250
  5. 23067588207539346171171980310421047513778063246676
  6. 89261670696623633820136378418383684178734361726757
  7. 28112879812849979408065481931592621691275889832738
  8. 44274228917432520321923589422876796487670272189318
  9. 47451445736001306439091167216856844588711603153276
  10. 70386486105843025439939619828917593665686757934951
  11. 62176457141856560629502157223196586755079324193331
  12. 64906352462741904929101432445813822663347944758178
  13. 92575867718337217661963751590579239728245598838407
  14. 58203565325359399008402633568948830189458628227828
  15. 80181199384826282014278194139940567587151170094390
  16. 35398664372827112653829987240784473053190104293586
  17. 86515506006295864861532075273371959191420517255829
  18. 71693888707715466499115593487603532921714970056938
  19. 54370070576826684624621495650076471787294438377604
  20. 53282654108756828443191190634694037855217779295145
  21. 36123272525000296071075082563815656710885258350721
  22. 45876576172410976447339110607218265236877223636045
  23. 17423706905851860660448207621209813287860733969412
  24. 81142660418086830619328460811191061556940512689692
  25. 51934325451728388641918047049293215058642563049483
  26. 62467221648435076201727918039944693004732956340691
  27. 15732444386908125794514089057706229429197107928209
  28. 55037687525678773091862540744969844508330393682126
  29. 18336384825330154686196124348767681297534375946515
  30. 80386287592878490201521685554828717201219257766954
  31. 78182833757993103614740356856449095527097864797581
  32. 16726320100436897842553539920931837441497806860984
  33. 48403098129077791799088218795327364475675590848030
  34. 87086987551392711854517078544161852424320693150332
  35. 59959406895756536782107074926966537676326235447210
  36. 69793950679652694742597709739166693763042633987085
  37. 41052684708299085211399427365734116182760315001271
  38. 65378607361501080857009149939512557028198746004375
  39. 35829035317434717326932123578154982629742552737307
  40. 94953759765105305946966067683156574377167401875275
  41. 88902802571733229619176668713819931811048770190271
  42. 25267680276078003013678680992525463401061632866526
  43. 36270218540497705585629946580636237993140746255962
  44. 24074486908231174977792365466257246923322810917141
  45. 91430288197103288597806669760892938638285025333403
  46. 34413065578016127815921815005561868836468420090470
  47. 23053081172816430487623791969842487255036638784583
  48. 11487696932154902810424020138335124462181441773470
  49. 63783299490636259666498587618221225225512486764533
  50. 67720186971698544312419572409913959008952310058822
  51. 95548255300263520781532296796249481641953868218774
  52. 76085327132285723110424803456124867697064507995236
  53. 37774242535411291684276865538926205024910326572967
  54. 23701913275725675285653248258265463092207058596522
  55. 29798860272258331913126375147341994889534765745501
  56. 18495701454879288984856827726077713721403798879715
  57. 38298203783031473527721580348144513491373226651381
  58. 34829543829199918180278916522431027392251122869539
  59. 40957953066405232632538044100059654939159879593635
  60. 29746152185502371307642255121183693803580388584903
  61. 41698116222072977186158236678424689157993532961922
  62. 62467957194401269043877107275048102390895523597457
  63. 23189706772547915061505504953922979530901129967519
  64. 86188088225875314529584099251203829009407770775672
  65. 11306739708304724483816533873502340845647058077308
  66. 82959174767140363198008187129011875491310547126581
  67. 97623331044818386269515456334926366572897563400500
  68. 42846280183517070527831839425882145521227251250327
  69. 55121603546981200581762165212827652751691296897789
  70. 32238195734329339946437501907836945765883352399886
  71. 75506164965184775180738168837861091527357929701337
  72. 62177842752192623401942399639168044983993173312731
  73. 32924185707147349566916674687634660915035914677504
  74. 99518671430235219628894890102423325116913619626622
  75. 73267460800591547471830798392868535206946944540724
  76. 76841822524674417161514036427982273348055556214818
  77. 97142617910342598647204516893989422179826088076852
  78. 87783646182799346313767754307809363333018982642090
  79. 10848802521674670883215120185883543223812876952786
  80. 71329612474782464538636993009049310363619763878039
  81. 62184073572399794223406235393808339651327408011116
  82. 66627891981488087797941876876144230030984490851411
  83. 60661826293682836764744779239180335110989069790714
  84. 85786944089552990653640447425576083659976645795096
  85. 66024396409905389607120198219976047599490197230297
  86. 64913982680032973156037120041377903785566085089252
  87. 16730939319872750275468906903707539413042652315011
  88. 94809377245048795150954100921645863754710598436791
  89. 78639167021187492431995700641917969777599028300699
  90. 15368713711936614952811305876380278410754449733078
  91. 40789923115535562561142322423255033685442488917353
  92. 44889911501440648020369068063960672322193204149535
  93. 41503128880339536053299340368006977710650566631954
  94. 81234880673210146739058568557934581403627822703280
  95. 82616570773948327592232845941706525094512325230608
  96. 22918802058777319719839450180888072429661980811197
  97. 77158542502016545090413245809786882778948721859617
  98. 72107838435069186155435662884062257473692284509516
  99. 20849603980134001723930671666823555245252804609722
  100. 53503534226472524250874054075591789781264330331690'''


  101. result=sum(list(map(int,temp.split())))
  102. print('和的前十位数字是:\n%s'%str(result)[:10])
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-11 13:52:16 | 显示全部楼层
  1. import time
  2. def fun(n):
  3.     m=1
  4.     if n==1:
  5.         m+=1
  6.         return m
  7.     while n>1:
  8.         m+=1
  9.         if n%2==0:
  10.             n/=2
  11.         else:
  12.             n=3*n+1
  13.         if n==1:
  14.             return m
  15. begTime = time.clock()
  16. x=1
  17. for i in range(1,1000001,2):
  18.     b=fun(i)
  19.     if x <=b:
  20.         x=b
  21.         k=i
  22. print('以%d开始的序列一共包含%d项' %(k,x))
  23. print(time.clock() - begTime)
复制代码
  1. 这个以837799开始的序列一共包含525项
  2. 43.475621928525285
复制代码

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
冬雪雪冬 + 5 + 5 热爱鱼C^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-11 14:25:53 | 显示全部楼层
  1. result = []
  2. for num in range(1, 1000001):
  3.     x = num
  4.     n = 1
  5.     while(x > 1):
  6.         if x < num:
  7.             n = n + result[int(x-1)]-1
  8.             break
  9.         elif x%2 == 0:
  10.             n = n + 1
  11.             x = x/2
  12.         elif x%2 == 1:
  13.             n = n + 1
  14.             x = 3*x + 1
  15.     result.append(n)
  16. nresult = max(result)
  17. print(nresult)
  18. print(result.index(nresult)+1)
复制代码

评分

参与人数 1荣誉 +8 鱼币 +8 贡献 +5 收起 理由
冬雪雪冬 + 8 + 8 + 5 热爱鱼C^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-12 09:21:11 | 显示全部楼层
顶贴!!!!!!!!!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-5-12 10:05:11 | 显示全部楼层
def collatz_list(n):
    seq = []
    while (n > 1):
        seq.append(n)
        if (n % 2 == 0):
            n /= 2
        else:
            n = n * 3 + 1
    return seq

for m in range(0, 1000000, 1):
    m=m-1
    temp=collatz_list(m)

b=0
a=len(temp)
if a>b:
    b=a
else:
    b=b
print(b)
print(temp)
print(m)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-12 10:17:52 | 显示全部楼层
刚开始学习,弄了半天。
QQ20160512-0@2x.png

结果:837799 运行525次。

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
冬雪雪冬 + 5 + 5 热爱鱼C^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-13 15:59:14 | 显示全部楼层
zan
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-5-13 17:43:47 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-5-13 21:09:32 | 显示全部楼层
  1. a='''37107287533902102798797998220837590246510135740250
  2. 46376937677490009712648124896970078050417018260538
  3. 74324986199524741059474233309513058123726617309629
  4. 91942213363574161572522430563301811072406154908250
  5. 23067588207539346171171980310421047513778063246676
  6. 89261670696623633820136378418383684178734361726757
  7. 28112879812849979408065481931592621691275889832738
  8. 44274228917432520321923589422876796487670272189318
  9. 47451445736001306439091167216856844588711603153276
  10. 70386486105843025439939619828917593665686757934951
  11. 62176457141856560629502157223196586755079324193331
  12. 64906352462741904929101432445813822663347944758178
  13. 92575867718337217661963751590579239728245598838407
  14. 58203565325359399008402633568948830189458628227828
  15. 80181199384826282014278194139940567587151170094390
  16. 35398664372827112653829987240784473053190104293586
  17. 86515506006295864861532075273371959191420517255829
  18. 71693888707715466499115593487603532921714970056938
  19. 54370070576826684624621495650076471787294438377604
  20. 53282654108756828443191190634694037855217779295145
  21. 36123272525000296071075082563815656710885258350721
  22. 45876576172410976447339110607218265236877223636045
  23. 17423706905851860660448207621209813287860733969412
  24. 81142660418086830619328460811191061556940512689692
  25. 51934325451728388641918047049293215058642563049483
  26. 62467221648435076201727918039944693004732956340691
  27. 15732444386908125794514089057706229429197107928209
  28. 55037687525678773091862540744969844508330393682126
  29. 18336384825330154686196124348767681297534375946515
  30. 80386287592878490201521685554828717201219257766954
  31. 78182833757993103614740356856449095527097864797581
  32. 16726320100436897842553539920931837441497806860984
  33. 48403098129077791799088218795327364475675590848030
  34. 87086987551392711854517078544161852424320693150332
  35. 59959406895756536782107074926966537676326235447210
  36. 69793950679652694742597709739166693763042633987085
  37. 41052684708299085211399427365734116182760315001271
  38. 65378607361501080857009149939512557028198746004375
  39. 35829035317434717326932123578154982629742552737307
  40. 94953759765105305946966067683156574377167401875275
  41. 88902802571733229619176668713819931811048770190271
  42. 25267680276078003013678680992525463401061632866526
  43. 36270218540497705585629946580636237993140746255962
  44. 24074486908231174977792365466257246923322810917141
  45. 91430288197103288597806669760892938638285025333403
  46. 34413065578016127815921815005561868836468420090470
  47. 23053081172816430487623791969842487255036638784583
  48. 11487696932154902810424020138335124462181441773470
  49. 63783299490636259666498587618221225225512486764533
  50. 67720186971698544312419572409913959008952310058822
  51. 95548255300263520781532296796249481641953868218774
  52. 76085327132285723110424803456124867697064507995236
  53. 37774242535411291684276865538926205024910326572967
  54. 23701913275725675285653248258265463092207058596522
  55. 29798860272258331913126375147341994889534765745501
  56. 18495701454879288984856827726077713721403798879715
  57. 38298203783031473527721580348144513491373226651381
  58. 34829543829199918180278916522431027392251122869539
  59. 40957953066405232632538044100059654939159879593635
  60. 29746152185502371307642255121183693803580388584903
  61. 41698116222072977186158236678424689157993532961922
  62. 62467957194401269043877107275048102390895523597457
  63. 23189706772547915061505504953922979530901129967519
  64. 86188088225875314529584099251203829009407770775672
  65. 11306739708304724483816533873502340845647058077308
  66. 82959174767140363198008187129011875491310547126581
  67. 97623331044818386269515456334926366572897563400500
  68. 42846280183517070527831839425882145521227251250327
  69. 55121603546981200581762165212827652751691296897789
  70. 32238195734329339946437501907836945765883352399886
  71. 75506164965184775180738168837861091527357929701337
  72. 62177842752192623401942399639168044983993173312731
  73. 32924185707147349566916674687634660915035914677504
  74. 99518671430235219628894890102423325116913619626622
  75. 73267460800591547471830798392868535206946944540724
  76. 76841822524674417161514036427982273348055556214818
  77. 97142617910342598647204516893989422179826088076852
  78. 87783646182799346313767754307809363333018982642090
  79. 10848802521674670883215120185883543223812876952786
  80. 71329612474782464538636993009049310363619763878039
  81. 62184073572399794223406235393808339651327408011116
  82. 66627891981488087797941876876144230030984490851411
  83. 60661826293682836764744779239180335110989069790714
  84. 85786944089552990653640447425576083659976645795096
  85. 66024396409905389607120198219976047599490197230297
  86. 64913982680032973156037120041377903785566085089252
  87. 16730939319872750275468906903707539413042652315011
  88. 94809377245048795150954100921645863754710598436791
  89. 78639167021187492431995700641917969777599028300699
  90. 15368713711936614952811305876380278410754449733078
  91. 40789923115535562561142322423255033685442488917353
  92. 44889911501440648020369068063960672322193204149535
  93. 41503128880339536053299340368006977710650566631954
  94. 81234880673210146739058568557934581403627822703280
  95. 82616570773948327592232845941706525094512325230608
  96. 22918802058777319719839450180888072429661980811197
  97. 77158542502016545090413245809786882778948721859617
  98. 72107838435069186155435662884062257473692284509516
  99. 20849603980134001723930671666823555245252804609722
  100. 53503534226472524250874054075591789781264330331690'''
  101. s=0
  102. for each in a.split():
  103.     s+=int(each)
  104. b=str(s)
  105. print(b[0:11])
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-14 12:57:12 | 显示全部楼层
精华帖啊,受教了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-21 15:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表