python - Python 多久会出错一次?
问题描述
我最近对运行一个代码感到惊讶,该代码需要数小时才能运行许多进程,并且每次都得到完全相同的数值结果。也许只是我将计算机拟人化,但这似乎令人印象深刻。
错误地,我的意思是程序的结果不是基于初始条件和语言规则的程序。这必须是由随机错误引起的,可能是宇宙辐射噪声或其他原因。我说的是 2+2=5,而不是人类编写糟糕的代码。如果你再次运行它,使用相同的代码和初始条件,它会给出正确的结果(假设错误不太可能但并非不可能)。
我知道这种事情在计算机中是可能的(计算机多久出错一次?),但听起来不太可能。那么,Python 本身是否内置了某种冗余,还是在更深层次上内置了冗余?在您期望一个错误之前可以完成多少次浮点运算?
奖励:其他语言呢?从这个意义上说,是否有一些比其他更可靠?
解决方案
计算机语言不担心这个不太可能出现的问题(CPU 中的位会被一些外力随机更改)。其他形式的错误也不属于应用程序的责任范围,例如,更有可能损坏的网络数据通常在协议中进行内部检查以检测错误(例如校验和)。对于某些存储也是如此。
在这非常重要的罕见环境中(我所知道的主要是航天器),他们运行着冗余应用程序,并比较两者的结果以查看它们是否匹配。
因此,在回答您的问题时,这些问题不是语言所关心的,它们要么在较低级别(网络数据包的校验和等)处理,要么在较高级别(冗余)处理。一般来说,这类问题只在非常罕见的情况下才会担心,比如太空飞行器、核能等……
推荐阅读
- python - 多项式回归中的多项式系数
- node.js - 如何使路由同步
- azure - 如何禁用 AKS LoadBalancer 的端口探测?
- html - 在最小化窗口上显示侧面板内联
- java - Mockito 测试 - getHeaders() 不能返回 SimpMessageHeaderAccessor getHeaders() 应该返回 MessageHeaders
- ios - 卸载iOS应用程序时是否删除了领域文件
- javascript - 如何捕获 ENTER 事件并将其转换为 TAB 事件?
- google-sheets - 如何在 Google 表格中为每月库存列创建查询公式
- ruby-on-rails - 检测到使用急切加载[子弹宝石]
- mysql - MySQL - Where IN 查询中的匹配和不匹配结果