`
siu23
  • 浏览: 17547 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

序列数字Project Euler 014 & 015 序列数字

阅读更多

每日一贴,今天的内容关键字为序列数字

    

标题14:找出以100万以下的数字开始的最长序列。

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

    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万的。

 

    3n+1问题。

View Code
 1 maxn = 1000000
 2 length = [0 for i in range(maxn + 1)]
 3 length[1] = 1
 4 
 5 def count(k):
 6     counter = 0
 7     und = k
 8     while und >= k:
 9         if und % 2:
10             und = 3*und + 1
11         else:
12             und /= 2
13         counter += 1
14     counter += length[und]
15     return counter
16 
17         
18 
19 def pe014():
20     maxStartNum = 1
21     for i in range(2, maxn+1):
22         length[i] = count(i)
23         if length[i] > length[maxStartNum]:
24             maxStartNum = i
25     print(maxStartNum, max(length))
26 
27 if __name__ == '__main__':
28     pe014()
29     

 

 

    

标题15:从20*20的格网的左上角通往右下角有多少条路?

    从一个2×2格网的左上角开始,有6条(不允许往回走)通往右下角的路。

 

    

    对于20×20的格网,这样的路有多少条?

 

    1.递归的思绪,每一步都成生两子种情况。用下动态编程。

View Code
 1 grid = {}
 2 def routes(x, y):
 3     if grid.get((x,y),0):
 4         return grid[(x,y)]
 5     elif x == 0 or y == 0:
 6         grid[(x,y)] = 1
 7         return 1
 8     else:
 9         grid[(x,y)] = routes(x-1,y) + routes(x,y-1)
10         return grid[(x,y)]
11 
12 if __name__ == '__main__':
13     print(routes(20,20))

 

    2.统共40步,20左20下。用组合列排就是40取20。

from math import factorial
print(factorial(40) / (factorial(20)**2))

 

    标题源来:

    Project Euler: http://projecteuler.net/

    PE中文站:http://pe.spiritzhang.com/index.php

 

 

文章结束给大家分享下程序员的一些笑话语录: 联想——对内高价,补贴对外倾销的伟大“民族”企业。

分享到:
评论

相关推荐

    下载Project Euler题目

    标签 "源码" 和 "工具" 提示我们,这个压缩包内可能有一个名为 "ProjectEuler.java" 的源代码文件,这可能是博主用来解决Project Euler问题的Java程序。这个程序可能包含了解决一系列问题的通用框架,或者是针对特定...

    ProjectEuler1-16代码

    【标题】"ProjectEuler1-16代码"所涉及的知识点主要集中在计算机编程和算法设计上,尤其针对初学者和编程爱好者。Project Euler是一个在线平台,它提供了一系列的数学和计算机科学问题,旨在通过解决这些问题来提升...

    project euler1.rar_ACM_project_project euler

    【项目欧拉(Project Euler)】是一个非常受欢迎的在线数学和计算机编程挑战平台,它吸引着全球的程序员和数学爱好者参与。项目欧拉的问题通常涉及数学、算法和计算机科学,鼓励解决问题并学习新技能。本压缩包...

    project euler2.rar_ACM_project

    《ACM项目:Project Euler问题集解码》 在编程竞赛和算法研究领域,ACM(International Collegiate Programming Contest)项目具有极高的地位,而Project Euler则是其中一道独特的风景线。这个项目旨在挑战参赛者的...

    Project Euler_Eulerproject_fasmg_x86_windows_math_

    《使用汇编语言解决Project Euler问题的探索》 在IT领域,编程挑战是提升技能、锻炼思维的重要方式,其中Project Euler以其独特的数学与计算机科学相结合的特性,深受程序员喜爱。本项目聚焦于"Project Euler",它...

    project euler3.rar_ACM_project

    代码可能涉及到寻找满足特定条件的数字序列,这通常需要高效的数据结构和搜索算法。 接着,265.cpp和268.cpp涉及到动态规划和递归。在Project Euler中,动态规划常用于解决具有重叠子问题和最优子结构的问题,如...

    Euler project(1-5).zip

    Euler项目的问题通常涉及数值计算,例如寻找特定序列的模式、求解方程或优化问题。MATLAB在数值计算方面具有强大功能,例如内置的函数如`exp`, `log`, `sin`, `cos`, `sqrt`等,以及用于数值积分、微分、线性代数和...

    projecteuler:Project Euler 问题的解决方案,请参阅 https

    投影仪Project Euler 问题的解决方案,请参阅地位# 名称秒1 3 和 5 的倍数0.02 甚至斐波那契数列0.03 最大素因数0.94 最大的回文产品0.15 最小倍数2.56 和平方差0.07 第 10001 个素数0.1解决方案8 系列中最大的产品...

    Project_Euler_Problems:Project Euler问题(https:projecteuler.net)

    《Python解构Project Euler问题》 Project Euler是一个著名的在线数学与计算机科学问题集,它旨在挑战和提升读者的编程及问题解决能力。该平台提供的问题通常涉及到数学、算法和计算机科学的基础概念,鼓励用户通过...

    project_euler:我的项目euler文件

    在解决Project Euler问题时,这些结构常常用于遍历序列或满足特定条件的执行。 3. **列表和元组**:这些是Python中的两种序列类型,可以存储多个元素。列表可变,元组不可变,它们在处理多值问题时非常有用。 4. *...

    projecteuler-js:通过解决 Project Euler 问题来练习语言

    "projecteuler-js"项目就是这样一个平台,它鼓励开发者使用JavaScript语言解决Project Euler的问题,以此来锻炼和深化对JavaScript的理解。Project Euler是一系列具有挑战性的数学和计算机科学问题,这些问题通常...

    js.projecteuler

    在js.projecteuler-master项目中,我们可以看到三个具体的Problem实例。这些实例可能涵盖了数字理论、组合数学、序列生成等主题。通过分析这些例子,我们可以学习如何用JavaScript实现高效的解题策略,例如: 1. ...

    ProjectEuler:我的代码解决项目欧拉问题

    在你提供的文件“ProjectEuler-master”中,我们可以预见到包含了一系列用Java编写的解决方案。 以下是关于项目欧拉和Java编程的一些关键知识点: 1. **项目欧拉问题**:每个问题都有一个唯一的ID和一个描述,通常...

    projectEuler:此存储库包含 projectEuler.net 问题的解决方案

    在这个特定的存储库中,开发者使用 Java 语言提供了对 projectEuler.net 上问题的解决方案。 Java 是一种广泛使用的面向对象的编程语言,以其“写一次,到处运行”的特性而闻名。在解决 Project Euler 的问题时,...

    project-euler:projecteuler.net问题的解决方案

    这个压缩包“project-euler-master”很可能是包含了一个使用 Python 解答 Project Euler 问题的代码仓库。以下是关于 Project Euler 和 Python 解决方案的一些关键知识点: 1. **Project Euler 介绍**: - Project...

    Euler:解决Project Euler问题的代码

    标题 "Euler:解决Project Euler问题的代码" 暗示了这个压缩包包含的是用于解答Project Euler问题的Java源代码。Project Euler是一个在线平台,提供了许多数学和计算机科学相关的挑战问题,旨在提升编程技巧和数学...

    project_euler.js::robot: 用 JS 编写的 Project Euler 解决方案

    《JS实现Project Euler问题解决策略详解》 Project Euler是一个在线平台,它提供了一系列数学和计算机科学的挑战问题,旨在激发编程爱好者对算法和数学的兴趣。本项目中的"project_euler.js"是用JavaScript编写的...

    Project-Euler:我使用Python解决的一些Project Euler问题

    2. 数组与列表:Python的列表是动态数组,可用于存储和操作数字序列。 3. 字符串处理:在处理问题描述或结果输出时,字符串的拼接和格式化是常用操作。 4. 函数:将复杂逻辑封装为函数,提高代码复用性。 5. 高级...

    Euler:解决来自 Project Euler 的问题

    【标题】"Euler:解决来自 Project Euler 的问题" 是一个与编程和数学挑战相关的项目,它鼓励开发者和数学爱好者使用编程技能来解决一系列复杂的数学问题。Project Euler 是一个著名的在线平台,它提供了数百个问题,...

    ProjectEuler:ProjectEuler.net上提出的问题的解决方案。 用F#和Rust编程语言!

    《探索ProjectEuler:F#与Rust编程解题之旅》 ProjectEuler是一个深受程序员喜爱的在线平台,它提供了一系列具有挑战性的数学和计算机科学问题,旨在锻炼和提升编程技巧以及逻辑思维能力。本项目集是针对Project...

Global site tag (gtag.js) - Google Analytics