【问题标题】:what is exactly the reason of halting停止的确切原因是什么
【发布时间】:2016-02-14 14:53:15
【问题描述】:

停机问题表明,给定一个输入和一个程序,没有 可以决定程序将停止的天气的算法。这使得这个问题无法确定。 我对停机问题的误解是,我们不能 只需创建另一个程序来检查该程序是否有 无限循环。我只是说有可能检查案件 循环不会停止的地方,并据此决定程序是否停止 或不。请你让我知道我对这个问题的理解有什么问题吗?

【问题讨论】:

    标签: algorithm theory computation-theory halting-problem


    【解决方案1】:

    嗯,你知道,停止问题的证明非常简单。 假设您有一个程序可以告诉您给定程序是否会停止(为简单起见,请忽略输入)。我们称这个程序为dosHalt(program)。 现在让我们编写一个名为

    的新程序
    myHalt() 
      if doesHalt(myHalt):
         infinite loop
      else 
         return
    

    的返回值应该是多少
    doesHalt(myHalt)
    

    回答您的具体问题:您的程序检查循环如何知道给定循环是否停止? 是否循环

    for (i = 1; i += 10; ) {
       if (i == 7) break;
    }
    

    是否永远循环?你的程序是怎么发现的?

    【讨论】:

    • 太好了,您的意思是检查 myHalt 程序的程序本身可能不会停止!我明白了,我认为我的程序永远无法评估第 7 个 i。非常感谢
    • 不,在这个证明中,我们采用了一个所谓的工作程序 doHalt() 并表明我们可以使用它来构建一个新程序,这将导致逻辑​​悖论/矛盾,从而证明我们的假设 doHalt 存在错了。
    猜你喜欢
    • 2016-04-01
    • 2023-01-22
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多