[问与答] 在不同机器/操作系统上运行相同 Python 程序,可能得到不同结果

from math import *
def a(n): return sin(n+sqrt(2*n+3/n)*pi)+cos((n-(3*n-n/5)**3)*e)
def sum_a(m,n): return sum([a(i) for i in range(m,n+1)])
m = 100;n = 9000
print("%.6f"%sum_a(m,n))

这样一段代码,在不同的机器或者操作系统运行上会出现不同的结果。

起因是胡乱捣鼓,然后发现这串代码在自己的笔记本电脑(Windows10)和虚拟机(Ubuntu)上结果不同,然后继续做了几项测试,发现确实不一样。原因猜想可能与操作系统有关(最开始考虑过可能和 CPU 架构有关,但在同一台电脑安装的两个不同操作系统的虚拟机上得到的结果一致,让我消除了这个想法)。下面的表格是粗略的几项统计。

image.png

不知道大家能不能给出奇妙的见解。或者说在自己的电脑 /服务器上也跑出来奇奇怪怪的答案(笑)

发表评论

您的电子邮箱地址不会被公开。