Fonction de couplage

En mathématiques, une fonction de couplage, est une méthode permettant d’attribuer de manière unique un entier naturel à un couple d'entiers naturels.

En théorie des ensembles, on peut utiliser n'importe quelle fonction de couplage pour prouver que l'ensemble des entiers relatifs et celui des nombres rationnels ont la même cardinalité que l'ensemble des entiers naturels. En théorie de la calculabilité, la fonction de couplage de Cantor est utilisée pour coder les k-uplets, ainsi une fonction de NkN peut être représentée par une fonction de NN.

Définition

Une fonction de couplage est une bijection calculable de N × N dans N.

Fonction de couplage de Cantor

Numérotation des éléments de N x N par la fonction de couplage de Cantor.

La fonction de couplage de Cantor π : N × N N {\displaystyle \pi :\mathbb {N} \times \mathbb {N} \to \mathbb {N} } est définie par

π ( x , y ) := ( x + y + 1 ) ( x + y ) 2 + y . {\displaystyle \pi (x,y):={\frac {(x+y+1)(x+y)}{2}}+y.}

Le théorème de Fueter-Pólya énonce que cette fonction est, avec la fonction ( x , y ) π ( y , x ) {\displaystyle (x,y)\mapsto \pi (y,x)} , la seule fonction de couplage quadratique. En revanche, savoir s'il s'agit de la seule fonction polynomiale de couplage est encore une question ouverte. On note parfois x , y {\displaystyle \langle x,y\rangle } le résultat de la fonction de couplage sur les entrées x {\displaystyle x} et y {\displaystyle y} .

La fonction de Cantor peut être généralisée de la manière suivante :

π ( n ) : N n N {\displaystyle \pi ^{(n)}:\mathbb {N} ^{n}\to \mathbb {N} }

avec

π ( n ) ( k 1 , , k n 1 , k n ) := π ( π ( n 1 ) ( k 1 , , k n 1 ) , k n ) . {\displaystyle \pi ^{(n)}(k_{1},\ldots ,k_{n-1},k_{n}):=\pi (\pi ^{(n-1)}(k_{1},\ldots ,k_{n-1}),k_{n}).}

Construction graphique

Cette autre progression en diagonale, analogue mais différente de celle de la fonction de Cantor, fournit une autre fonction de couplage. Ici elle est utilisée pour prouver la dénombrabilité des nombres rationnels.

La fonction de couplage de Cantor est définie en parcourant N 2 {\displaystyle \mathbb {N} ^{2}} par diagonales successives.

En suivant l'énumération diagonale par diagonale La fonction de couplage de Cantor vérifie :

π ( 0 , 0 ) = 0 {\displaystyle \pi (0,0)=0}  ;
π ( x + 1 , 0 ) = π ( 0 , x ) + 1 {\displaystyle \pi (x+1,0)=\pi (0,x)+1}  ;
π ( x , y + 1 ) = π ( x + 1 , y ) + 1 {\displaystyle \pi (x,y+1)=\pi (x+1,y)+1}  ;

ce qui fournit une définition récursive de la fonction (le couple (x + y, x) décroît strictement à chaque appel récursif pour l'ordre lexicographique ).

Pour tout t N {\displaystyle t\in \mathbb {N} } , la diagonale d'équation x + y = t {\displaystyle x+y=t} contient t + 1 {\displaystyle t+1} points (de ( t , 0 ) {\displaystyle (t,0)} à ( 0 , t ) {\displaystyle (0,t)} ). Le nombre de points des diagonales qui précèdent celle du couple ( x , y ) {\displaystyle (x,y)} est donc égal à 0 t < x + y ( t + 1 ) = 1 s x + y s = ( x + y ) ( x + y + 1 ) 2 {\displaystyle \sum _{0\leq t<x+y}(t+1)=\sum _{1\leq s\leq x+y}s={\frac {(x+y)(x+y+1)}{2}}} (le ( x + y ) {\displaystyle (x+y)} -ième nombre triangulaire). Par conséquent l'image du couple ( x , y ) {\displaystyle (x,y)} est donnée par :

π ( x , y ) = ( x + y ) ( x + y + 1 ) 2 + y {\displaystyle \pi (x,y)={\frac {(x+y)(x+y+1)}{2}}+y} .

Bijection réciproque

Cette section peut contenir un travail inédit ou des déclarations non vérifiées (octobre 2017). Vous pouvez aider en ajoutant des références ou en supprimant le contenu inédit.

D'après la construction ci-dessus, π {\displaystyle \pi } est bijective, c'est-à-dire que pour tout z N {\displaystyle z\in \mathbb {N} } , il existe un unique couple ( x , y ) N 2 {\displaystyle (x,y)\in \mathbb {N} ^{2}} tel que z = π ( x , y ) {\displaystyle z=\pi (x,y)} .

Retrouvons-le par analyse-synthèse en cherchant ( x , y , w ) N 3 {\displaystyle (x,y,w)\in \mathbb {N} ^{3}} tel que w = x + y {\displaystyle w=x+y} et w ( w + 1 ) 2 + y = z {\displaystyle {\frac {w(w+1)}{2}}+y=z} .

Ces deux équations impliquent

w ( w + 1 ) 2 z < w ( w + 1 ) 2 + w + 1 = w ( w + 3 ) 2 + 1 = ( w + 1 ) ( w + 2 ) 2 {\displaystyle {\frac {w(w+1)}{2}}\leq z<{\frac {w(w+1)}{2}}+w+1={\frac {w(w+3)}{2}}+1={\frac {(w+1)(w+2)}{2}}} ,

donc w {\displaystyle w} est nécessairement l'unique entier naturel tel que

z [ w ( w + 1 ) 2 , ( w + 1 ) ( w + 2 ) 2 [ {\displaystyle z\in \left[{\frac {w(w+1)}{2}},{\frac {(w+1)(w+2)}{2}}\right[} ,

puis y = z w ( w + 1 ) 2 {\displaystyle y=z-{\frac {w(w+1)}{2}}} et x = w y {\displaystyle x=w-y} , ce qui prouve l'injectivité.

Réciproquement, le triplet ( x , y , w ) N 3 {\displaystyle (x,y,w)\in \mathbb {N} ^{3}} ainsi construit à partir de z {\displaystyle z} vérifie bien les deux équations, ce qui prouve la surjectivité.

La bijection réciproque de π {\displaystyle \pi } est donc donnée par :

π 1 ( z ) = ( w ( w + 3 ) 2 z , z w ( w + 1 ) 2 ) {\displaystyle \pi ^{-1}(z)=\left({\frac {w(w+3)}{2}}-z,z-{\frac {w(w+1)}{2}}\right)} avec w {\displaystyle w} égal à la partie entière du réel w := 1 + 1 + 8 z 2 {\displaystyle w':={\frac {-1+{\sqrt {1+8z}}}{2}}} (solution de l'équation du second degré z = w ( w + 1 ) 2 {\displaystyle z={\frac {w'(w'+1)}{2}}} ).

Autres fonctions de couplage

Via le bon ordre canonique sur ℕ×ℕ

Bon ordre sur ℕ² et bijection ℕ²→ℕ

On rencontre fréquemment[1] la méthode suivante pour démontrer que κ 2 = κ {\displaystyle \kappa ^{2}=\kappa } (où κ {\displaystyle \kappa } est un cardinal infini : un bon ordre est défini sur κ × κ {\displaystyle \kappa \times \kappa } dont chaque éléments possède < κ {\displaystyle {}<\kappa } prédécesseurs, de sorte que κ × κ {\displaystyle \kappa \times \kappa } et κ {\displaystyle \kappa } sont isomorphes comme ensembles ordonnés et sont donc équipotents. Dans le cas plus simple où κ = N {\displaystyle \kappa =\mathbb {N} } cette méthode conduit à une bijection N 2 N {\displaystyle \mathbb {N} ^{2}\to \mathbb {N} } .

Définissons sur N × N {\displaystyle \mathbb {N} \times \mathbb {N} } la relation binaire

( k , ) ( m , n ) {\displaystyle (k,\ell )\preccurlyeq (m,n)} si { ou bien   ( k , ) = ( m , n ) , ou bien   max ( k , ) < max ( m , n ) , ou bien   max ( k , ) = max ( m , n )   et   k < m , ou bien   max ( k , ) = max ( m , n )   et   k = m   et   l < n . {\displaystyle {\begin{cases}{\text{ou bien}}\ (k,\ell )=(m,n),\\[3pt]{\text{ou bien}}\ \max(k,\ell )<\max(m,n),\\[3pt]{\text{ou bien}}\ \max(k,\ell )=\max(m,n)\ {\text{et}}\ k<m,\\[3pt]{\text{ou bien}}\ \max(k,\ell )=\max(m,n)\ {\text{et}}\ k=m\ {\text{et}}\ l<n.\end{cases}}}

Alors {\displaystyle \preccurlyeq } est une relation de bon ordre pour laquelle chaque élément possède un nombre fini de minorants. On définit une bijection N N 2 {\displaystyle \mathbb {N} \to \mathbb {N} ^{2}} par récurrence :

  • c 0 = min ( N 2 ) = ( 0 , 0 ) {\displaystyle c_{0}=\min \nolimits _{\preccurlyeq }(\mathbb {N} ^{2})=(0,0)}  ;
  • c λ + 1 {\displaystyle c_{\lambda +1}} est le {\displaystyle \preccurlyeq } -successeur de c λ {\displaystyle c_{\lambda }} , c'est-à-dire min ( N 2 { c i i λ } ) {\displaystyle \min \nolimits _{\preccurlyeq }{\bigl (}\mathbb {N} ^{2}\smallsetminus \{c_{i}\mid i\leqslant \lambda \}{\bigr )}} .
Démonstration

Donnons un nom aux « lignes de niveau » de la fonction max ( , ) {\displaystyle \max({}\mathbin {\cdot } {},{}\mathbin {\cdot } {})}  : pour a N {\displaystyle a\in \mathbb {N} } , soit L a = { ( m , n ) max ( m , n ) = a } {\displaystyle L_{a}=\{(m,n)\mid \max(m,n)=a\}} .
On a les faits suivants :
– la suite ( L a ) a N {\displaystyle (L_{a})_{a\in \mathbb {N} }} est une partition de N {\displaystyle \mathbb {N} }  ;
– on a la partition L a = H a V a {\displaystyle L_{a}=H_{a}\cup V_{a}} , où H a = { ( 0 , a ) , , ( a 1 , a ) } {\displaystyle H_{a}=\{(0,a),\dots ,(a-1,a)\}} et V a = { ( a , 0 ) , , ( a , a ) } {\displaystyle V_{a}=\{(a,0),\ldots ,(a,a)\}}  ;
–  L a {\displaystyle L_{a}} est un ensemble fini de cardinal 2 a + 1 {\displaystyle 2a+1}  ;
– la restriction de {\displaystyle \preccurlyeq } à L a {\displaystyle L_{a}} est une relation d'ordre total : les éléments de H a {\displaystyle H_{a}} sont rangés par abscisse croissante, ceux de V a {\displaystyle V_{a}} par ordonnée croissante et chaque élément de H a {\displaystyle H_{a}} est inférieur à chaque élément de V a {\displaystyle V_{a}}  ;
– par ailleurs si a < a {\displaystyle a<a'} et ( c , c ) L a × L a {\displaystyle (c,c')\in L_{a}\times L_{a'}} alors c c {\displaystyle c\prec c'} .

  1. La relation {\displaystyle \preccurlyeq } est réflexive par définition.
  2. Supposons c c {\displaystyle c\preccurlyeq c'} et c c {\displaystyle c'\preccurlyeq c} . On a ( c , c ) L a × L a {\displaystyle (c,c')\in L_{a}\times L_{a'}} (où a , a N {\displaystyle a,a'\in \mathbb {N} } ). Si on avait par exemple a < a {\displaystyle a<a'} alors aucune des quatre conditions définissant c c {\displaystyle c'\preccurlyeq c} ne serait satisfaite : il faut donc que a a {\displaystyle a'\leqslant a} et, par symétrie, a a {\displaystyle a\leqslant a'} donc a = a {\displaystyle a=a'} . Mais alors L a {\displaystyle \preccurlyeq _{\upharpoonright L_{a}}} étant un ordre total, son antisymétrie implique c = c {\displaystyle c=c'} . La relation {\displaystyle \preccurlyeq } est donc antisymétrique.
  3. Supposons c c {\displaystyle c\preccurlyeq c'} et c c {\displaystyle c'\preccurlyeq c''} . On a ( c , c , c ) L a × L a × L a {\displaystyle (c,c',c'')\in L_{a}\times L_{a'}\times L_{a''}} (où a , a , a N {\displaystyle a,a',a''\in \mathbb {N} } ). Sans perdre en généralité on peut supposer que a a a {\displaystyle a\leqslant a'\leqslant a''} et on conclut, en examinant les quatre cas possibles d'inégalités ( , ) = ( < , < ) {\displaystyle (\leqslant ,\leqslant )=(<,<)} ou ( = , < ) {\displaystyle (=,<)} ou ( < , = ) {\displaystyle (<,=)} ou ( = , = ) {\displaystyle (=,=)} , que c c {\displaystyle c\preccurlyeq c''} . La relation {\displaystyle \preccurlyeq } est donc transitive.
  4. La relation {\displaystyle \preccurlyeq } est donc bien un ordre. Si X N 2 {\displaystyle X\subset \mathbb {N} ^{2}} est non vide alors l'ensemble { a N X L a } {\displaystyle \{a\in \mathbb {N} \mid X\cap L_{a}\neq \varnothing \}} est non vide et admet un plus petit élément a 0 {\displaystyle a_{0}}  ; mais alors le plus petit élément de X L a 0 {\displaystyle X\cap L_{a_{0}}} minore tous les éléments de X {\displaystyle X} , de sorte que ( N 2 , ) {\displaystyle (\mathbb {N} ^{2},\preccurlyeq )} est bien ordonné.
  5. Si c L a {\displaystyle c\in L_{a}} l'ensemble des minorants de c {\displaystyle c} est inclus dans la réunion 0 i a L i {\displaystyle \textstyle \bigcup _{0\leqslant i\leqslant a}L_{i}} , qui est finie.

La définition par récurrence donnée plus haut fournit donc une suite ( c λ ) λ N {\displaystyle (c_{\lambda })_{\lambda \in \mathbb {N} }} qui est une énumération strictement croissante de N 2 {\displaystyle \mathbb {N} ^{2}} .

On observe que, pour a > 0 {\displaystyle a>0} , l'ensemble des minorants stricts de ( 0 , a ) {\displaystyle (0,a)} est exactement [ 0 , a 1 ] × [ 0 , a 1 ] {\displaystyle [0,a-1]\times [0,a-1]} , qui est de cardinal a 2 {\displaystyle a^{2}} , de sorte que ( 0 , a ) = c a 2 {\displaystyle (0,a)=c_{a^{2}}} .
Ensuite, pour ( b , a ) H a {\displaystyle (b,a)\in H_{a}} on a ( b , a ) = c a 2 + b {\displaystyle (b,a)=c_{a^{2}+b}} (par récurrence sur b [ 0 , a 1 ] {\displaystyle b\in [0,a-1]} ) ; notamment ( a 1 , a ) = c a 2 + a 1 {\displaystyle (a-1,a)=c_{a^{2}+a-1}} , lequel a pour successeur c a 2 + a = ( a , 0 ) V a {\displaystyle c_{a^{2}+a}=(a,0)\in V_{a}} .
Enfin pour ( a , b ) V a {\displaystyle (a,b)\in V_{a}} , on a ( a , b ) = c a 2 + a + b {\displaystyle (a,b)=c_{a^{2}+a+b}} (par récurrence sur b [ 0 , a ] {\displaystyle b\in [0,a]} ).

Ceci se résume en ( a , b ) N 2 ( a , b ) = { c a + b 2 si   a < b , c a 2 + a + b si   a b . {\displaystyle \forall (a,b)\in \mathbb {N} ^{2}\quad (a,b)={\begin{cases}c_{a+b^{2}}&{\text{si}}\ a<b,\\[3pt]c_{a^{2}+a+b}&{\text{si}}\ a\geqslant b.\end{cases}}}

Via une propriété arithmétique élémentaire

Une autre méthode consiste à utiliser la propriété arithmétique suivante : tout entier n 1 {\displaystyle n\geqslant 1} peut s'écrire d'une façon unique sous la forme du produit d'une puissance de 2 par un nombre impair, soit n = 2 a ( 2 b + 1 ) {\displaystyle n=2^{a}(2b+1)} , où a , b N {\displaystyle a,b\in \mathbb {N} } . L'application f : N 2 N {\displaystyle f\colon \mathbb {N} ^{2}\longrightarrow \mathbb {N} } définie par f ( a , b ) = 2 a ( 2 b + 1 ) 1 {\displaystyle f(a,b)=2^{a}(2b+1)-1} est ainsi une bijection.

Via l'écriture d'un nombre entier en base 2

Bourbaki utilise une injection N × N N {\displaystyle \mathbb {N} \times \mathbb {N} \to \mathbb {N} } , afin de prouver l'équipotence de ces deux ensembles, dans le volume I des Éléments de mathématiques (III §6). Il s'avère que c'est une bijection.
Tout n N {\displaystyle n\in \mathbb {N} } possède une unique écriture en base 2 n = a r a 0 ¯ {\displaystyle n={\overline {a_{r}\ldots a_{0}}}} (où a r , , a 0 { 0 , 1 } {\displaystyle a_{r},\ldots ,a_{0}\in \{0,1\}} sont les chiffres de l'écriture de n {\displaystyle n} ), c'est-à-dire : n = k = 0 r a k 2 k {\displaystyle \textstyle n=\sum _{k=0}^{r}a_{k}2^{k}} . On observe que si n > 0 {\displaystyle n>0} alors a r = 1 {\displaystyle a_{r}=1} , et si n = 0 {\displaystyle n=0} alors r = 0 {\displaystyle r=0} et n = 0 ¯ {\displaystyle n={\overline {0}}} .
À l'entier n {\displaystyle n} on fait correspondre la suite φ ( n ) = ( ϕ i ) i N {\displaystyle \varphi (n)=(\phi _{i})_{i\in \mathbb {N} }} définie par ϕ i = { a i si   i r , 0 si   i > r . {\displaystyle \phi _{i}={\begin{cases}a_{i}&{\text{si}}\ i\leqslant r,\\[3pt]0&{\text{si}}\ i>r.\end{cases}}}
Dit autrement φ ( n ) {\displaystyle \varphi (n)} est la suite infinie de 0 et de 1 qui commence par énumérer les chiffres de n {\displaystyle n} dans l'ordre inverse de leur écriture puis se poursuit par une infinité de 0, soit ( a 0 , , a r , 0 , ) {\displaystyle (a_{0},\ldots ,a_{r},\mathbf {0} ,\dots )} . L'application φ {\displaystyle \varphi } est une bijection N : N {\displaystyle \mathbb {N} \colon \to {\mathfrak {N}}} := le sous-ensemble de { 0 , 1 } N {\displaystyle \{0,1\}^{\mathbb {N} }} constitué des suites presque nulles (et φ 1 ( ( a i ) i N ) = i a i 2 i {\displaystyle \textstyle \varphi ^{-1}{\bigl (}(a_{i})_{i\in \mathbb {N} }{\bigr )}=\sum _{i}a_{i}2^{i}} ).

Par ailleurs, si x = ( x i ) i N , y = ( y i ) i N N {\displaystyle \mathbf {x} =(x_{i})_{i\in \mathbb {N} },\;\mathbf {y} =(y_{i})_{i\in \mathbb {N} }\in {\mathfrak {N}}} on définit z = ψ [ x , y ] {\displaystyle \mathbf {z} =\psi [\mathbf {x} ,\mathbf {y} ]} par z 2 i = x i {\displaystyle z_{2i}=x_{i}} et z 2 i + 1 = y i {\displaystyle z_{2i+1}=y_{i}} pour tout i N {\displaystyle i\in \mathbb {N} } .
L'application ψ {\displaystyle \psi } est évidemment une bijection N 2 N {\displaystyle {\mathfrak {N}}^{2}\to {\mathfrak {N}}} .

En conclusion f : ( m , n ) φ 1 ( ψ [ φ ( m ) , φ ( n ) ] ) {\displaystyle f\colon (m,n)\longmapsto \varphi ^{-1}{\bigl (}\psi [\varphi (m),\varphi (n)]{\bigr )}} est une bijection N 2 N {\displaystyle \mathbb {N} ^{2}\to \mathbb {N} } .

Donnons un exemple : ( m , n ) = ( 13 , 18 ) {\displaystyle (m,n)=(13,18)} . On a m = 1101 ¯ ,   n = 10010 ¯ {\displaystyle m={\overline {1101}},\ n={\overline {\color {RoyalBlue}10010}}}  ; alors

ψ [ φ ( m ) , φ ( n ) ] = ( 1 , 0 , 0 , 1 , 1 , 0 , 1 , 0 , 0 , 1 , 0 , ) = φ ( 2 0 + 2 3 + 2 4 + 2 6 + 2 9 ) = φ ( 601 ) . {\displaystyle \psi [\varphi (m),\varphi (n)]=(1,{\color {RoyalBlue}0},0,{\color {RoyalBlue}1},1,{\color {RoyalBlue}0},1,{\color {RoyalBlue}0},0,{\color {RoyalBlue}1},\mathbf {0} ,\ldots )=\varphi (2^{0}+2^{3}+2^{4}+2^{6}+2^{9})=\varphi (601).}

Donc f ( 13 , 18 ) = 601 {\displaystyle f(13,18)=601} .

Inversement, partant de = 347 = 1 0 1 0 1 1 0 1 1 ¯ {\displaystyle \ell =347={\overline {1{\color {RoyalBlue}0}1{\color {RoyalBlue}0}1{\color {RoyalBlue}1}0{\color {RoyalBlue}1}1}}} , on a

φ ( ) = ( 1 , 1 , 0 , 1 , 1 , 0 , 1 , 0 , 1 , 0 , ) = ψ [ ( 1 , 0 , 1 , 1 , 1 , 0 , ) , ( 1 , 1 , 0 , 0 , 0 , ) ] = ψ [ φ ( 29 ) , φ ( 3 ) ] . {\displaystyle \varphi (\ell )=(1,{\color {RoyalBlue}1},0,{\color {RoyalBlue}1},1,{\color {RoyalBlue}0},1,{\color {RoyalBlue}0},1,\mathbf {0} ,\ldots )=\psi [(1,0,1,1,1,\mathbf {0} ,\ldots )\mathbin {,} ({\color {RoyalBlue}1},{\color {RoyalBlue}1},{\color {RoyalBlue}0},{\color {RoyalBlue}0},\mathbf {0} ,\ldots )]=\psi [\varphi (29),\varphi (3)].}

Donc 347 = f ( 29 , 3 ) {\displaystyle 347=f(29,3)} .

L'analogue de la fonction f {\displaystyle f} en base 10 — notons-la g {\displaystyle g}  — est plus maniable puisqu'elle évite les allers-retours entre les bases 2 et 10.

Par exemple g ( 68 042 , 59 713 ) = 5 6 9 8 7 0 1 4 3 2 {\displaystyle \definecolor {rouge}{rgb}{0.5,0,0}g(68\,042\mathbin {,} {\color {rouge}59\,713})={\color {rouge}5}\,6{\color {rouge}9}8\,{\color {rouge}7}0{\color {rouge}1}\,4{\color {rouge}3}2}  ; inversement g 1 ( 1 0 3 5 7 ) = ( 137 , 5 ) {\displaystyle \definecolor {rouge}{rgb}{0.5,0,0}g^{-1}(1{\color {rouge}0}\,3{\color {rouge}5}7)=(137\mathbin {,} {\color {rouge}5})} .

Notes et références

(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Pairing function » (voir la liste des auteurs).
  1. Voir par exemple (en) Kenneth Kunen, Set theory : An Introduction to Independence Proofs, vol. 102, North-Holland, coll. « Studies in Logic and the Foundations of Mathematics », (réimpr. 1983, 1988 et 1990) (ISBN 0444868399), p. 29.

Bibliographie

Nicolas Bourbaki, Théorie des ensembles, vol. 1, Hermann, (ISBN 978-3-540-34034-8)Voir et modifier les données sur Wikidata

Voir aussi

Article connexe

Déployeur universel

Liens externes

  • (en) Steven Pigeon, « Pairing function », sur MathWorld
  • (en) Matthew Szudzik, « An Elegant Pairing Function », Wolfram Research,
  • icône décorative Portail des mathématiques