これは我慢してください。最初に本の例を説明し、最後に質問をします。
プログラミング言語パラダイムのテキストによると:
帰納的仕様は、値のセットを指定する強力な方法です。この方法を説明するために、これを使用して 、自然数N = {0、1、2 、.の特定のサブセットSを記述します。。。}。
トップダウン定義:
自然数nは、次の場合にのみSに含まれます。
- n = 0、または
- n −3∈S。
0∈Sであることがわかります。したがって、(3 − 3)= 0および0∈Sであるため、3∈Sです。同様に、(6−3)= 3および3∈Sであるため、6∈Sです。このように続けると、次のことができます。 3の倍数はすべてSにあると結論付けます。
他の自然数はどうですか?1∈Sですか?1!= 0であることがわかっているため、最初の条件は満たされていません。さらに、(1−3)= −2であり、これは自然数ではないため、Sのメンバーではありません。したがって、2番目の条件は満たされません。
ボトムアップの定義:
セットSを、Nに含まれ、次の2つのプロパティを満たす最小のセットとして定義します。
- 0∈S、および
- n∈Sの場合、n+3∈S。
「最小のセット」とは、プロパティ1と2を満たすセットであり、プロパティ1と2を満たす他のセットのサブセットです。S1とS2の両方がプロパティを満たす場合、そのようなセットは1つだけであることがわかります。 1と2であり、両方が最小である場合、S1⊆S2(S1が最小であるため)、およびS2⊆S1(S2が最小であるため)、したがってS1=S2です。残りの2つの条件を満たすセットが多数あるため、この追加の条件が必要です。
推論規則:
_____
0 ∈ S
n ∈ S
---------
(n+3) ∈ S
これは、前のバージョンの定義の省略表記にすぎません。各エントリは、推論規則または単なる規則と呼ばれます。水平線は「if-then」として読み取られます。線より上の部分は、仮説 または先行詞と呼ばれます。線より下の部分は、結論または後件と呼ばれます。2つ以上の仮説がリストされている場合、それらは暗黙の「and」によって接続されます</ p>
ここに質問があります。
- おそらく最も重要な質問は、なぜこれらの帰納的定義を知る必要があるのか、そしてそれらが実際のケースでどのように役立つのかということです。
- Googleが帰納的定義でほとんど結果を返さないのはなぜですか?
- トップダウン、ボトムアップ、および推論規則が本質的に同じものを表示する場合、なぜ同じものを書く3つの方法が必要なのですか?
- 次のような本の例よりも少し複雑な問題の帰納的定義を見つけるのが難しいのはなぜですか。
以下の2つの問題について、トップダウン、ボトムアップ、および推論の定義を見つけたいと思います。あなたは私に答えを与える必要はありませんが、私は帰納的定義を導き出すためにどのように行くのか知りたいです。どこから始めればいいですか?これらのタイプの問題を実行するための体系的なアプローチ(レシピ)はありますか?
1. {2n+3m +1 | n,m ∈ N}
2. {(n, 2n+1) | n ∈ N}