假设我以任何语言运行这段代码,可以在任何计算机上使用c、python或javascript等,假设是在macbook 2011年底(这是我的计算机)上运行的。如果我在无限时间内运行这段代码,我得到错误的概率是多少?
int a=1;
int b=1;
while(true)
{
if(a!=b){
//error occurred
}
}简单地说,
编辑1
假设机器永远不会死,过热,蓝屏什么的。
发布于 2014-02-22 18:04:09
是的,错误可能发生在某些非零概率中,但不太可能导致程序达到无效状态检查。
您可能会让alpha粒子在CPU或内存中碰到一些关键的逻辑来翻转一些位(这可能会导致几乎任何事情),或者您可能会将一些页面交换到一个有故障段的磁盘上。发生这种情况的确切速度取决于以下几点:
请注意,一些关键系统需要更高的可靠性(例如银行),因此它们可能会购买提供更好的RAS功能的CPU。智能手机和桌子通常不那么关键,但我想你可能会看到一些这种东西的表格系统。
无论哪种方式,今天任何合理的CPU都应该有足够的保护来捕获大多数可能的错误,并在“隐藏之下”中修复,这样您甚至都不会知道它们的存在。无法处理的复杂错误仍然最有可能被捕获,可能只会导致机器挂起或重新启动。您可以假设一个简单的程序具有几乎100%概率的确定性行为。
发布于 2014-02-22 19:33:48
所以我的两分钱,(你有权得到全额退款)
这是一个很容易问的问题,但一旦你调查它,事情会变得有点模糊。
如果您将问题定义为具体情况,则a与b不相同。在Python中(据我理解)a是b,因此永远不会失败。(这只是说,如果a变化,b也会发生变化)。现在把变焦旋钮打开一点。现在,'!=‘部分可能会失败,原因是什么?(在python中,您仍然认为)a仍然是b。这是您的问题框架中的失败吗?
把变焦器再放大一点,“正当”会失败吗?这是你问题的一部分吗?操作系统的故障算不算?窗户会重新启动因为..。
然后我们进入Leeor的观点。
当我们不断放大的时候,我们一直在寻找不适合这个问题的案例。如果运行的数据中心被电磁脉冲武器摧毁的话.你知道这是怎么回事。
在我的过去,我不得不在这条路上追逐这个问题。(医学,航空电子,.)
于是出现了一个循环:“我们能检测到有故障吗?”(Leeor关于ECC的观点浮现在脑海中)。如果它失败了,但我们抓住了它,它会失败吗?
量子力学告诉我们,最终'this_rock‘= 'this_rock’。
https://stackoverflow.com/questions/21957113
复制相似问题