[英]How do you prove whether a simple unmeaningful code is computable or not?
可計算問題的特征是:
如果我錯了,請糾正我,我發現通過研究,除了deterministic之外,我並不完全知道它的實際含義。
所以,我試圖證明一個簡單的代碼,例如:
int i = 0;
do{
int j = 0;
do{
printf("Hello\n");
j++;
}while (j < n);
printf("Hello\n");
i++;
}while (i < n);
是可計算的。
我知道如何證明它是確定性的,因為它相當明顯,但我不確定如何證明它是機械的或完整的。
Complete特征,據我了解,它更像是“有沒有什么方法可以使代碼無法執行或作為錯誤返回?” 例如打開一個文本文件有可能文件不存在,因為輸入了錯誤的文件名或輸入了錯誤的位置等。
但是對於上面的代碼片段,我應該如何證明它是完整的呢?
至於機械論“是否 1 + 1 = 2 而不是 3?”。
同樣,對於上面的代碼片段,我如何證明它是精確的,因為代碼本身並沒有解決任何問題,它只是根據 n 值打印“hello”? 在這種情況下,n^2 + n 個“你好”。
你混淆了一些東西。
首先,你提供了一段代碼,問如何證明它是可計算的。 但這沒有任何意義 - 一段代碼無法計算或不可計算。
一個(數學)集合可以是可計算的,也可以是不可計算的。 基於此,其他所有內容也是一個集合:例如語言(一組字符串)、決策問題(一組接受的輸入)或function (一組鍵值對)。
其次,您提到的“特征”沒有定義可計算的問題。 我不知道你從哪里得到它們,但它們充其量只是對用於解決可計算問題的算法的某些方面的非常非正式的描述。 所以我認為你不是在談論可計算的問題,而是在談論算法。 但鑒於您的特征是非正式的,您無法證明它們。
因此,這里有一些可能會有所幫助的稍微更精確(但仍不正式)的陳述:
現在這些特征足夠精確,您可以實際使用它們來證明問題是可計算的,或者算法可以解決特定問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.