计算E在Python的极限10 ** 12处变得混乱?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了计算E在Python的极限10 ** 12处变得混乱?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含826字,纯文字阅读大概需要2分钟。
内容图文
![计算E在Python的极限10 ** 12处变得混乱?](/upload/InfoBanner/zyjiaocheng/723/1a2851e1371d4556a7f2fac656dcee0b.jpg)
我编写了一个程序,使用以下众所周知的公式计算自然对数的基数(在数学中称为e):
e =(1 1.0 / n)** n
代码是:
def e_formula(lim):
n = lim
e = (1 + 1.0/n) **n
return e
我设置了一个从101到10100迭代的测试:
if __name__ == "__main__":
for i in range(1,100):
print e_formula(10**i)
然而以下结果在10 ** 11左右爆炸.
shell的实际结果:
2.5937424601
2.70481382942
2.71692393224
2.71814592682
2.71826823719
2.7182804691
2.71828169413
2.71828179835
2.71828205201
2.71828205323
2.71828205336
2.71852349604
2.71611003409
2.71611003409
3.03503520655
1.0
我正在寻找一个原因,要么是在32位机器中超过浮点数限制的结果,要么是因为Python本身计算浮点数的方式.我不是在寻找更好的解决方案;我只是想明白为什么会爆炸.
解决方法:
这仅仅是由于浮点数的精度有限.你得到15位有效数字.
你正在服用(1 very_small_number). very_small_number的大部分数字在此阶段被截断.
** n只是乘以这个错误
内容总结
以上是互联网集市为您收集整理的计算E在Python的极限10 ** 12处变得混乱?全部内容,希望文章能够帮你解决计算E在Python的极限10 ** 12处变得混乱?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。