![](/img/trans.png)
[英]how to write a python program that can tell whether the numbers entered can form a triangle or not?
[英]Can a program decide whether an arbitrary program halts for SOME input?
是否有一個程序(可以暫停嗎?p)可以判斷是否存在一個輸入,以便(p個輸入)暫停?
我嘗試了簡單的對角化,但它只告訴我(may-halt?diag-may-halt)必須為真。 這無助於證明程序是否存在。
是否存在這樣的程序?
不, may-halt?
不存在。
(我不認為通過對角線化的直接證明比停止問題無法確定的證明要簡單;否則,這將是標准示例。相反,讓我們將問題簡化為停止問題:)
假設有一個程序may-halt? p
may-halt? p
,它決定程序p
暫停某些輸入。 然后定義:
halt? p x := may-halt? (\y -> if y==x then p x else ⊥)
花括號中的東西是派生程序。 讓我們分解一下:
halt? p x := may-halt? p'
其中p'
是程序(i)在輸入x
計算px
,(ii)在任何其他輸入上只是循環而不終止:
p' y := if y==x then p x else ⊥
那may-halt? p'
當且僅當px
終止時, may-halt? p'
輸出true。
因此,對於任何程序p
和輸入x
, halt? px
halt? px
將決定px
終止。 但是我們知道這是不可能的,所以may-halt?
不存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.