回答:
意思決定の問題と言語は、同じコインの裏表にすぎません。すべての問題は、いくつかの言語のメンバーシップの問題と言い換えることができます。たとえば、ある数が素数かどうかを判断するという問題は、まさに素数の言語のメンバーシップ問題です。
正式には、言語はいくつかの固定された有限のアルファベットに対する有限の文字列のセットです(文字列が無限であることを許可される場合があります。これは異なるが関連するシナリオです)。文字列に関する直接の質問ではない問題は、文字列としてエンコードする必要があるため、たとえば、前の段落の最後の文を「アルファベットと自然数のエンコードを修正した場合」のように書く方がより正確になります。そのアルファベットの文字列として、たとえば、数が素数かどうかを決定する問題は、素数をエンコードする文字列の言語のメンバーシップの問題です。」
サブ質問をすばやく実行するには、
私たちはすべての言語のセットが数え切れないことを知っています。問題のセットも数え切れないですか?
はい、問題と言語は本質的に同じものだからです。
すべての問題を言語で定義できますか?
はい、決定の問題です。最適化の問題(プロパティYの最小Xは何ですか)およびカウントの問題(プロパティYを持つXの数)は、決定問題(ZはプロパティYの最小Xですか?;プロパティYのNXはありますか?)と言い換えることができます。それは通常それらを扱う最も自然な方法ではありません。
言語は複数の問題を解決できますか?
はい、そうです。問題と言語を変換するにはエンコーディングを使用する必要があるためです。たとえば、言語とどちらも素数問題をエンコードします(それぞれ2進数と10進数)。逆に、恐らく少し人工も、言語進数の形式であるかどうかを決定する問題コード、いくつかのために と決定する問題を1と0の文字列が、最後の文字である1つの0を持っているかどうか。(おそらく、誰かが2つの問題を自然にエンコードする言語のより良い例を思い付くことができます。
問題と言語は1対1で対応していますか?
いいえ、この質問は前の質問の補足にすぎません。:-)