欧拉计划 61
来源:互联网 发布:华为手机设置4g网络 编辑:程序博客网 时间:2024/05/04 19:10
三角形数,四角形数,五角形数,六角形数,七角形数和八角形数都是定形数,他们分别由以下公式产生:
三角形数 P3,n=n(n+1)/2 1, 3, 6, 10, 15, …
四角形数 P4,n=n**2 1, 4, 9, 16, 25, …
五角形数 P5,n=n(3n−1)/2 1, 5, 12, 22, 35, …
六角形数 P6,n=n(2n−1) 1, 6, 15, 28, 45, …
七角形数 P7,n=n(5n−3)/2 1, 7, 18, 34, 55, …
八角形数 P8,n=n(3n−2) 1, 8, 21, 40, 65, …
三个四位数形成的有序集合: 8128, 2882, 8281,有三个有趣的性质:
这个集合是循环的:每个数的后两位数是下一个数的前两位数,包括第三个和第一个的关系。
三种定形数中的每一种都能被这三个数中的一个不同的数代表:
三角形数 (P3,127=8128), 四角形数 (P4,91=8281), 和五角形数 (P5,44=2882)。
这是唯一具有以上性质的四位数的集合。
找出唯一的一个六个四位数的循环集合,使得从三角形数到八角形数中的每一种都能由该集合中的一个不同的数代表。
求这个集合中元素之和。
def is_cyclic(p, pl): """ 递归 遍历查找,首尾相接 """ if len(pl) == 0: if p[-1][-1] == p[0][0]: return p else: return None for pl_ in pl: for pl_p in pl_: if p[-1][-1] == pl_p[0]: p_copy = p.copy() pl_copy = pl.copy() p_copy.append(pl_p) pl_copy.remove(pl_) ps = is_cyclic(p_copy, pl_copy) if ps: return ps return None# 归纳定形数公式pi_list = []for i in range(3, 9): pi = [] for n in range(150): v = n * ((i - 2) * n + (4 - i)) / 2 if v >= 1000 and v <= 10000 and v % 100 > 9: pi.append((v // 100, v % 100)) pi_list.append(pi)for p8 in pi_list[-1]: s = is_cyclic([p8], pi_list[:-1]) if s is not None: breakprint(sum([i * 100 + j for i, j in s]))
0 0
- 欧拉计划 61
- 欧拉计划 61 题
- 欧拉计划 100
- 欧拉计划
- 欧拉计划
- 欧拉计划是什么?
- 欧拉计划
- 欧拉计划3
- 欧拉计划
- 欧拉计划23
- 欧拉计划20
- 欧拉计划21
- 欧拉计划22
- 欧拉计划
- 欧拉计划 1
- 欧拉计划 2
- 欧拉计划 3
- 欧拉计划 4
- 欧拉计划 59
- 20个电路能懂5个以上,足以证明你在电子行业混过!
- 欧拉计划 60
- 整数中1出现的次数(从1到n整数中1出现的次数)
- Linux文件类型发布啦!
- 欧拉计划 61
- 欧拉计划 62
- Hibernate的generator属性
- 相关函数
- AndroidStudio——Freeline的使用
- 【LeetCode】 384. Shuffle an Array
- 288. Unique Word Abbreviation
- Docker 从入门到精通(一)基本操作
- 解决ecshop jq冲突办法