show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次研究了颜色的规律输出
- 其实在规律的基础上加上random就是紊乱
- 有序和无序其实是相生的
- 二重循环是否可以优化呢?🤔
- 我们来看这个问题
- 我们想计算200以内所有的完全平方数
- 什么是完全平方数呢?
- 这个怎么计算呢?
- 不要翻页尝试自己做出来
- 我们可以尝试
- 从1-200
- 每个数字测试一下
- 判断他是不是一个完全平方数
- 那怎么进行判断呢?
- 这个运行结果正确么?
-
结果是正确的
-
可以优化么?
-
能否更合理呢?
- 这样子确实效率更高
for num in range(28):
print(num**2)
- 但是为什么是range(28)呢?
- 需要寻找更合适的边界
-
导入math函数
- 计算200的平方根
-
然后编写代码
- 可以再优化吗?
- 不用math包可以吗?
- 原来是
- 穷举所有的数
- 分析数字是否为平方数
-
现在是
- 遍历基础数字
- 分析平方是否小于200
-
显然现在的这个一重循环效率更高
-
从时间上空间上都更合理
-
这让我想到一句python之禅
- 最长的这句
- (解决问题)应该有,最好只有,一种明显的方法。
- 这次我们算了完全平方数
- 有两种方法
- 遍历平方数
- 遍历平方根
- 经过比较
- 一重循环不一定比二重循环差
- 算法确实是可以优化的
- 优化之后
- 时间和空间都能节省
- 是很有意思的
- 那还有比二重循环更复杂的循环么?🤔
- 下次再说!👋