strings 是不可变的 e.g. s = 'abc' s[0] = 'y' 就会报错。

1. 穷举

2. 二分法 

why float maybe 存储跟我们想要的不一样:因为数据都是以二进制形式存在电脑里

e.g.  当你输入 x = 0.1 + 0.2 时 你得到的不是 0.3  而是0.30000000000000004

打个比方  我们知道 1/3 = 0.333333333....   假设现在电脑就是10进制的  不过他存储数据的位数有限,假设就是4位 那么1/3  就是 0.3333  那么  1/3+1/3+1/3   在电脑看来就是 0.9999   当然跟1 不一样。

这就是为什么 你在电脑里输入 0.1+0.2 不等于 0.3 的原因 因为 0.1 被电脑弄成一个有限长的二进制数,给近似了  0.2也是 

不过为什么 当我们单单输入  x= 0.1 时  电脑返回的还是 0.1 呢  因为python 的设计者 在这里自动给他近似了 请看下图最后一句和 黑色的图  (当然 近似不包括计算  x = 0.1 +0.2   你得到的是0.300000000004)所以当你问  0.1+0.2 == 0.3  你得到的是False 。所以浮点数据比较 推荐用 abs(x-y)< 一个很小的数   而不是 x==y  不能有可能在你用if while 什么的时候 可能会得到 不是你想要的结果。

MIT 6.001X 2016 (3)simple algothms 简单算法



MIT 6.001X 2016 (3)simple algothms 简单算法



牛顿拉夫逊算法求多项式的根:

MIT 6.001X 2016 (3)simple algothms 简单算法


相关文章:

  • 2021-10-03
  • 2022-12-23
  • 2022-12-23
  • 2021-06-25
  • 2022-12-23
  • 2022-12-23
  • 2021-04-05
  • 2022-12-23
猜你喜欢
  • 2021-11-26
  • 2021-06-15
  • 2021-06-09
  • 2021-05-12
  • 2021-04-04
  • 2021-10-19
  • 2021-07-21
相关资源
相似解决方案