我最近对运行一个代码感到惊讶,这个代码需要花费数小时来运行许多进程,并且每次都能得到完全相同的数值结果。也许只是我把电脑拟人化了,但这似乎令人印象深刻
我所说的错误是指一个程序的结果,它不是基于初始条件和语言规则的。这一定是由随机误差引起的,可能是宇宙辐射噪声或其他什么。我说的是2+2=5,而不是一个编写糟糕代码的人。如果您使用相同的代码和初始条件再次运行它,它将给出正确的结果(假设错误不太可能,但并非不可能)
我知道这类事情在计算机中是可能的,但听起来不太可能。那么,Python本身是否内置了某种冗余,或者这种冗余是在更深层次上内置的呢?在你认为一个浮点运算不正确之前,你可以做多少个浮点运算
奖励:其他语言呢?在这个意义上,有没有比其他人更可靠的
计算机语言不担心这个不太可能的问题(CPU中的位被一些外力随机改变)。其他形式的错误也不属于应用程序的责任范围,例如,更容易损坏的网络数据通常在协议中进行内部检查以检测错误(例如校验和)。某些存储也是如此
在极少数情况下,这一点非常重要(据我所知,航天器是主要的航天器),它们运行着冗余应用程序,并比较两者的结果,看它们是否匹配
因此,在回答您的问题时,这些问题不是语言所关心的,它们要么在较低级别(网络数据包上的校验和等)处理,要么在较高级别(冗余)处理。一般来说,这类问题只在极少数情况下才令人担忧,如航天器、核能等
相关问题 更多 >
编程相关推荐