首页 > 解决方案 > Python 多久会出错一次?

问题描述

我最近对运行一个代码感到惊讶,该代码需要数小时才能运行许多进程,并且每次都得到完全相同的数值结果。也许只是我将计算机拟人化,但这似乎令人印象深刻。

错误地,我的意思是程序的结果不是基于初始条件和语言规则的程序。这必须是由随机错误引起的,可能是宇宙辐射噪声或其他原因。我说的是 2+2=5,而不是人类编写糟糕的代码。如果你再次运行它,使用相同的代码和初始条件,它会给出正确的结果(假设错误不太可能但并非不可能)。

我知道这种事情在计算机中是可能的(计算机多久出错一次?),但听起来不太可能。那么,Python 本身是否内置了某种冗余,还是在更深层次上内置了冗余?在您期望一个错误之前可以完成多少次浮点运算?

奖励:其他语言呢?从这个意义上说,是否有一些比其他更可靠?

标签: pythonarchitecture

解决方案


计算机语言不担心这个不太可能出现的问题(CPU 中的位会被一些外力随机更改)。其他形式的错误也不属于应用程序的责任范围,例如,更有可能损坏的网络数据通常在协议中进行内部检查以检测错误(例如校验和)。对于某些存储也是如此。

在这非常重要的罕见环境中(我所知道的主要是航天器),他们运行着冗余应用程序,并比较两者的结果以查看它们是否匹配。

因此,在回答您的问题时,这些问题不是语言所关心的,它们要么在较低级别(网络数据包的校验和等)处理,要么在较高级别(冗余)处理。一般来说,这类问题只在非常罕见的情况下才会担心,比如太空飞行器、核能等……


推荐阅读