袋鼠数学一题多解 | 遍历算法的优化
已知是给出序列中在[a,b]范围内的数字(两个值是左右边界都包括在内),a和b总是正整数,并且 a < b。
例如100到1000之间的偶数方阵:[400,484]
输出应该是排序的 1000到4000之间的偶数方阵:[]
随机测试的特点:
测试次数=167
a的最大值=1e10 #大数对算法的效率提出要求
b的最大值=1e12 #大数对算法的效率提出要求
def even_digit_squares(a, b):
# 时间复杂度考虑
# 遍历的长度缩小
ans = []
for n in range(int(a**0.5)+1,int(b**0.5)+1):
if all([int(i)%2==0 for i in str(n**2)]):
ans.append(n**2)
return ans
2、中等难度 棋盘挑战—算法优化
编写一个函数,该函数需要一个参数,代表棋盘的尺寸。棋盘总是方形的,所以5意味着你需要一个5x5的棋盘。
每行末尾不应有尾部的白色空间,也不应有字符串末尾的新行字符。
备注方块是字符,■是\u25A0
和 □是\u25A1
下面的 3任务适合编程和数学挑战一题两解
- 分享苏菲-杰曼所表现出的对抗困难的决心,苏菲-杰曼质数
- 在学习幂数时使用自恋的数字 153, 370 , 371, 407, 1634, 8208, 9474, 54748, ...),也称Armstrong数,按着下面的规则反复,在有限的次数内即陷入循环,重复自己,不可自拔 ——自恋数的来由?
自恋数
python的集合 set 充分发挥去重复的威力,极大的降低了运算次数!
同时,不该放弃如何运用数论知识判别自恋数?
附录1. 参考七年级的袋鼠math课程提纲
- 学生发现弗洛伦斯-南丁格尔其实是一位统计学家
全部 0条评论