対関数(ついかんすう、英: Pairing function)とは、2つの自然数を一意に符号化して1つの自然数を返す関数である。
集合論では、任意の対関数を用いて、有理数全体の集合 Q が可算濃度であることを証明できる。理論計算機科学では、自然数の多変数関数 f : Nk → N を一変数関数 g : N → N に変換するために使われる。
対関数は非可算無限個存在する。したがってその中には計算可能関数でないものが非可算無限個存在する。計算可能性理論や計算複雑性理論の文脈では、ある複雑性クラスの中で対をコード化して扱いたいことがあることから、対関数とその逆関数がともに目的の関数クラスに属するような符号化を見つけることが重要となる。
定義
対関数は次のような全単射関数である。

カントールの対関数
カントールの対関数は、2つの自然数の対に1つの自然数を割り当てる。
カントールの対関数は次のように定義される対関数である。

と
への対関数の適用をするとき、それによって得られる数を
と表記することが多い。
この定義を帰納的に一般化すると、カントールのタプル関数となる。すなわち、

であり、ここで

ゲーデルの対関数
対
を最大値
が小さい順に並べ、最大値が等しいものについては辞書式順序で並べれば、
から
への一意的な順序同型
が存在する。この関数は次のように表せる。

逆関数
は次のように表せる。


ただし
である。
参考文献
- Pigeon, Steven. "Pairing function". mathworld.wolfram.com (英語).
- Nagashima, Takashi (1965), “On a certain class of recursive functions”, Hitotsubashi Journal of Arts and Sciences 16: 72–81