対関数

提供: testwiki
2023年10月12日 (木) 12:12時点におけるimported>ARAKI Satoruによる版 (+Fueter–Pólya theorem)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

対関数(ついかんすう、: Pairing function)とは、2つの自然数を一意に符号化して1つの自然数を返す関数である。

集合論では、任意の対関数を用いて、有理数全体の集合 Q可算濃度であることを証明できる。理論計算機科学では、自然数の多変数関数 f : NkN を一変数関数 g : NN に変換するために使われる。

対関数は非可算無限個存在する。したがってその中には計算可能関数でないものが非可算無限個存在する。計算可能性理論や計算複雑性理論の文脈では、ある複雑性クラスの中で対をコード化して扱いたいことがあることから、対関数とその逆関数がともに目的の関数クラスに属するような符号化を見つけることが重要となる。

定義

対関数は次のような全単射関数である。

π:×.

カントールの対関数

カントールの対関数は、2つの自然数の対に1つの自然数を割り当てる。

カントールの対関数は次のように定義される対関数である。

π(k1,k2):=12(k1+k2)(k1+k2+1)+k2

k1k2 への対関数の適用をするとき、それによって得られる数を k1,k2 と表記することが多い。

この定義を帰納的に一般化すると、カントールのタプル関数となる。すなわち、

π(n):n

であり、ここで

π(n)(k1,,kn1,kn):=π(π(n1)(k1,,kn1),kn)

カントールの対関数の逆関数

ここで z を次のように定義する。

z=x,y=(x+y)(x+y+1)2+y

このときの xy を求めたい。そのために中間的な値を定義する。

w=x+y
t=w(w+1)2=w2+w2
z=t+y

ここで tw三角数である。そこで次の二次方程式を解く。

w2+w2t=0

wt の関数で表すと、次のようになる。

w=8t+112

t が非負実数であれば、これは単調増加する連続関数である。ここで

tz=t+y<t+(w+1)=(w+1)2+(w+1)2

が成り立つので、次が得られる。

w8z+112<w+1

従って

w=8z+112.

以上から z から xy を計算すると次のようになる。

w=8z+112
t=w2+w2
y=zt
x=wy

以上のようにカントールの対関数には逆関数が存在し、一対一対応している。

順序の言葉で述べるならば、(x,y)を和x+yが小さい順に並べ、和が等しいものについてはyが小さい順に並べたとき、2からへの一意的な順序同型がカントールの対関数である。

ゲーデルの対関数

(x,y) を最大値 max(x,y) が小さい順に並べ、最大値が等しいものについては辞書式順序で並べれば、 2 から への一意的な順序同型 P:2 が存在する。この関数は次のように表せる。

P(x,y)={x+y2x<yx2+x+yxy

逆関数 Q,R: は次のように表せる。

Q(z)=min(z,E(z))
R(z)={zE(z)<zE(z)zE(z)z

ただし E(z)=zz2 である。

参考文献

関連項目

外部リンク

動画