計算可能性、複雑さ、言語の小さな間違い?


7

本の中で計算可能性、複雑性、および言語(2 回目版)、マーティン・デイビスは、(予選)第1章に書いセクション2(機能):

セット上の部分関数 S ドメインがそのサブセットである関数です S上の部分的な関数の例N によって与えられます g(n)=n、のドメイン g 完全な正方形のセットです。

これまでのところ簡単です。しかし、彼は先に進み、セクションの最後に数行書きます。

閉鎖の考え方を時々参照します。もしS セットです f の部分関数です S、その後 Sの下で閉じ f の範囲の場合 f のサブセットです S。例えば、N 下に閉じています f(n)=n2、ただし下で閉じられていません h(n)=nどこh関数ですN)。

だから最初の引用で n オン N部分関数の例ですが、2番目の引用では、同じ関数が合計関数の例です。

両方の例は互いに矛盾しているようです。または、ここでの閉鎖に関して何か不足していますか?


1
ドメインは任意の定義によってのみ制限されるため、これは教育的に部分関数の悪い例です。一部の機能のより良い例は、F(X)= 1 / X X = 0定義されていない、
ワイルドカード

1
@ワイルドカード:これはどのように恣意的ですか? N の範囲で奇妙な選択ではありません g(n)..
MSalters 2016

@MSalters、それにもかかわらず、恣意的な場合と同様に選択です。
おやすみオタクプライド

1
@GoodNightNerdPride:そのロジックを使用する場合、 1/xこれも良い例ではありません。それも定義されている範囲(たとえば、射影的に拡張された実線)があるためです。
MSalters 2016

@ワイルドカードそれはまったく恣意的ではありません。 g からの関数として定義 NN、これは完全に自然なオブジェクトです。たとえば、自然数がないため、関数は特定の場所で未定義です。y そのような y2=2。それはあなたの例と同じです:関数を持っているのは非常に自然ですRR、そしてあなたが選択した関数はいくつかの場所で未定義です、例えば、実数がないからです。 y そのような y0=1
David Richerby 16

回答:


12

ここに矛盾はありません。最初のケースは部分関数を定義しますg:NN によって与えられた

g(n)={xif xN and x2=nundefinedif no such x exists.
テキストが言うように、「のドメイン g 完全な正方形のセットです。」

2番目のケースは、合計関数を定義します h:NR によって与えられた

h(n)=xif xR0 and x2=n.
のドメイン h すべての自然数のセットです。

これらは同じ機能だとおっしゃっていますが、違います。 g(2) 未定義ですが h(2) 定義されている(かつ 2)。 h 平方根をすべての自然数に関連付けますが、 g 平方根を完全な平方である自然数に関連付けるだけです。

N 下に閉じています g なぜなら、いつでも g 定義されている、 g(n)NN 閉鎖されていません h たとえば、 2N だが h(2)N


+1、ただし、この本は「f の部分関数です S" 意味する "f からの部分関数です S「いくつかのセットに。
ruakh

@ruakhどうしたの?
David Richerby 16

私の経験では、「実数値」などの修飾子を明示的に追加しない限り(コドメインが明確になるように)、関数 上のセットは、そのセットから自身への関数である(同様のセット上の関係は関係がどのようにそのセットからそれ自体に)。しかし、それは間違いではなく、単に異なる用語の伝統ですか?
ruakh 2016

6

2番目の例では、 h(n) すべての自然数に対して定義されています n; いつn 正方形ではありません、 h(n) は不合理な量であり、特に自然数ではありません。

言い換えると、自然数のセットは平方根をとっても閉じていません。たとえば、 2 は自然数ではありません。


すみません、はっきりしていなかったと思います。質問に追加した最後から2番目から2番目の段落をご覧ください。
おやすみオタクプライド

4
@GoodNightNerdPrideユヴァルはまさに正しいと思います。最初の例では、平方根関数は、NN; 2番目の例では、それはからの合計関数ですNR
David Richerby 2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.