# Théorème de Zeckendorf

* Représentation de Zeckendorf des 89 premiers entiers. Les largeurs des rectangles sont des nombres de Fibonacci F$_i$, et les hauteurs correspondantes ont pour valeur F$_{i-1}$. Les rectangles de même couleur ont mêmes dimensions.
Le théorème de Zeckendorf, dénommé ainsi en référence au mathématicien belge Édouard Zeckendorf, est un théorème de théorie additive des nombres qui garantit que tout entier naturel N peut être représenté, de manière unique, comme somme de nombres de Fibonacci distincts et non consécutifs. Cette représentation est appelée la représentation de Zeckendorf de N.

## Énoncé et exemple

Théorème de Zeckendorf — Pour tout entier naturel N, il existe une unique suite d’entiers c$_0$, ... , c$_k$, avec $c_{0}\geqslant 2$ et c$_{i+1}$ > c$_i$ + 1, tels que
    $N=\sum _{i=0}^{k}F_{c_{i}}$,
où F$_n$ est le nombre de Fibonacci d'indice n.
Par exemple, 0 est représenté par la somme vide. La représentation de Zeckendorf du nombre 100 est
    $100=89+8+3=F_{11}+F_{6}+F_{4}$.
Le nombre 100 possède d'autres représentations comme somme de nombres de Fibonacci. Ainsi :
    $100=89+8+2+1$
    $100=89+5+3+2+1$
    $100=55+34+8+3$
    $100=55+34+8+2+1$
    $100=55+34+5+3+2+1$
    $100=55+21+13+8+3$
mais ces représentations contiennent des nombres de Fibonacci consécutifs. À toute représentation d'un entier N, on associe un mot binaire, dont la n-ième lettre en partant de la droite est 1 si $F_{n+1}$ figure dans la représentation de N et 0 sinon. Ainsi, aux représentations de 100 ci-dessus sont associés les mots :
    $F_{11}+F_{6}+F_{4}=1000010100_{Zeck}$
    $1000010011$
    $1000001111$
    $110010100$
    $110010011$
    $110001111$
    $101110100$.
Les entiers de 0 à 4 ont pour représentations de Zeckendorf : $0=0_{\text{Zeck}},1=F_{2}=1_{\text{Zeck}},2=F_{3}=10_{\text{Zeck}},3=F_{4}=100_{\text{Zeck}},4=F_{4}+F_{2}=101_{\text{Zeck}}$.
Les mots binaires de Zeckendorf associés aux entiers successifs, lus en base 10 : 0, 1, 10, 100, 101, 1000, 1001, etc forment la suite A014417 de l'OEIS.
L'ensemble de ces mots binaires forme un langage rationnel : ce sont le mot vide et les mots commençant par 1 et ne contenant pas deux 1 consécutifs. Une expression rationnelle de ce langage est
    $0+1(0+01)^{*}$.
Le codage de Fibonacci d'un entier est, par définition, le mot binaire associé à sa représentation, retourné et suivi d'un symbole 1. Ainsi, le codage de Fibonacci du nombre 100 est 00101000011.

### Note historique

Zeckendorf a publié sa démonstration du théorème en 1972, alors que l'énoncé était connu, sous le nom de « théorème de Zeckendorf », depuis longtemps. Ce paradoxe est expliqué dans l'introduction de l'article de Zeckendorf : un autre mathématicien, Gerrit Lekkerkerker (en), a rédigé la preuve du théorème (et d'autres résultats) à la suite d'un exposé de Zeckendorf, et l'a publié en 1952, tout en en attribuant la paternité à Zeckendorf. D'après Clark Kimberling, c'est un article de David E. Daykin, publié dans un journal prestigieux, qui a contribué à faire connaître le résultat et son auteur.

## Démonstration

La démonstration du théorème est en deux parties :
1. Existence : L'existence de la représentation se démontre par l'emploi de l'algorithme glouton ou par récurrence sur N, ce qui revient strictement au même.

### Première démonstration

    On raisonne par récurrence forte sur l'entier naturel N. Si N est nul, il est représenté par la somme vide. Sinon, soit F$_k$, avec $k\geqslant 2$, le plus grand nombre de Fibonacci inférieur ou égal à N et soit $M=N-F_{k}<N$. Par hypothèse de récurrence forte, M possède une représentation. Alors, pour tout nombre $F_{\ell }$ de cette représentation, $F_{k}+F_{\ell }\leqslant F_{k}+M=N<F_{k+1}=F_{k}+F_{k-1}$ donc $F_{\ell }<F_{k-1}$. La représentation de M, augmentée de F$_k$, est donc bien une représentation de N.

### Seconde démonstration

    On raisonne par récurrence simple sur l'entier N considéré. L'existence est facilement vérifiable pour les petites valeurs de N. Supposons qu'elle soit vraie pour un entier N donné et décomposons cet entier en rangeant les nombres de Fibonacci par ordre croissant. Plusieurs cas sont à considérer :
   * Si $N=F_{i_{1}}+F_{i_{2}}+\cdots +F_{i_{s}}$ avec $4\leqslant i_{1}$ et $\forall j,i_{j+1}\geqslant i_{j}+2$, alors :
       $N+1=F_{2}+F_{i_{1}}+F_{i_{2}}+\cdots +F_{i_{s}}$
   * Si $N=F_{3}+F_{5}+\cdots +F_{2r-1}+F_{i_{r}}+F_{i_{r+1}}+\cdots +F_{i_{s}}$ avec $i_{r}\geqslant 2r+2$ et $\forall j,i_{j+1}\geqslant i_{j}+2$ (et éventuellement $i_{s}=2r-1$ auquel cas les termes $F_{i_{r}}+F_{i_{r+1}}+\cdots +F_{i_{s}}$ n'existent pas). Alors :
       $N+1=F_{2r}+F_{i_{r}}+F_{i_{r+1}}+\cdots +F_{i_{s}}$
   * Si $N=F_{2}+F_{4}+\cdots +F_{2r-2}+F_{i_{r}}+F_{i_{r+1}}+\cdots +F_{i_{s}}$ avec $i_{r}\geqslant 2r+1$ et $\forall j,i_{j+1}\geqslant i_{j}+2$ (et éventuellement $i_{s}=2r-2$ auquel cas les termes $F_{i_{r}}+F_{i_{r+1}}+\cdots +F_{i_{s}}$ n'existent pas). Alors :
       $N+1=F_{2r-1}+F_{i_{r}}+F_{i_{r+1}}+\cdots +F_{i_{s}}$
    Ainsi, $N+1$ admet aussi une décomposition.
2. Unicité : Pour cette partie, on utilise le lemme suivant :
Lemme — La somme de tout ensemble non vide de nombres de Fibonacci distincts et non consécutifs, dont le plus grand élément est F$_j$, est strictement inférieure à F$_{j+1}$.

### Première démonstration

    On raisonne par récurrence simple sur le nombre d'éléments d'un tel ensemble S. L'initialisation est immédiate. Pour l'hérédité, si S a plus d'un élément, enlevons F$_j$. Par hypothèse de récurrence, la somme des éléments restants est strictement inférieure à F$_{j-1}$, donc la somme totale est strictement inférieure à F$_{j-1}$ + F$_j$ = F$_{j+1}$.

### Seconde démonstration

    Si $n=F_{i_{1}}+F_{i_{2}}+\cdots +F_{i_{s}}$ avec $\forall j,i_{j+1}\geqslant i_{j}+2$. Alors :
   * si i$_s$ est pair :
          $F_{i_{1}}+F_{i_{2}}+\cdots +F_{i_{s-1}}\leqslant F_{i_{s}-2}+F_{i_{s}-4}+\cdots +F_{2}$
       donc :
          $F_{i_{1}}+F_{i_{2}}+\cdots +F_{i_{s-1}}<F_{i_{s}-2}+F_{i_{s}-4}+\cdots +F_{2}+1=F_{i_{s}-1}$
   * si i$_s$ est impair :
          $F_{i_{1}}+F_{i_{2}}+\cdots +F_{i_{s-1}}\leqslant F_{i_{s}-2}+F_{i_{s}-4}+\cdots +F_{3}$
       donc :
          $F_{i_{1}}+F_{i_{2}}+\cdots +F_{i_{s-1}}<F_{i_{s}-2}+F_{i_{s}-4}+\cdots +F_{3}+1=F_{i_{s}-1}$
    Donc, dans tous les cas, $F_{i_{s}}\leqslant n<F_{i_{s}}+F_{i_{s}-1}=F_{i_{s}+1}$
On raisonne par récurrence forte sur l'entier naturel N. D'après le lemme, dans une décomposition de N, le plus grand indice $k$ pour lequel F$_k$ apparaît (si la décomposition est non vide, c.-à-d. si $N\neq 0$) est entièrement déterminé par $F_{k}\leqslant N<F_{k+1}$. Par hypothèse de récurrence, la décomposition de N - F$_k$ (donc le reste de la décomposition de N) est également unique.

### Représentation des premiers entiers

Dans la table, R(N) dénote la représentation de N sous forme de mot binaire.
| N | R(N) |
| 0 | 0 |
| 1 | 1 |
| 2 | 10 |
| 3 | 100 |
| 4 | 101 |
| 5 | 1000 |
| 6 | 1001 |
| 7 | 1010 |
| 8 | 10000 |
| 9 | 10001 |
| 10 | 10010 |
| 11 | 10100 |
L'alternance des 0 et 1 dans chacune des colonnes correspond à l'absence ou la présence d'un rectangle dans la figure en tête de la page. La suite des derniers chiffres est
$010010100100\cdots$
C'est le début du mot de Fibonacci. En effet, le N-ième symbole du mot de Fibonacci est 0 ou 1 selon que $N$ est « Fibonacci pair » (R(N) se termine par 0) ou « Fibonacci impair ».

## Addition et multiplication en numération de Zeckendorf

Christiane Frougny, de l’Institut de recherche en informatique fondamentale, à Paris, a découvert en 1991 un algorithme permettant d’additionner deux nombres en numération de Zeckendorf sans passer par une autre représentation$^,$$^,$.
De même, Tomasz Idziaszek a proposé un algorithme similaire pour la multiplication$^,$.

## Variations
### Représentation par des nombres de Fibonacci d'indices négatifs

La suite des nombres de Fibonacci peut être étendue aux indices négatifs, puisque la relation
    $F_{n}=F_{n-1}+F_{n-2}$
permet de calculer $F_{n-2}$ à partir de F$_n$ et de $F_{n-1}$. On a (voir la section correspondante de l'article sur les nombres de Fibonacci) :
    $F_{-n}=(-1)^{n+1}F_{n}.$
La suite complète est $\ldots ,-8,5,-3,2,-1,1,0,1,1,2,3,5,8,\ldots$ Donald Knuth a remarqué que tout entier relatif est somme de nombres de Fibonacci d'indices strictement négatifs qu'il appelle « Negafibonacci », la représentation étant unique si deux nombres utilisés ne sont pas consécutifs. Par exemple :
* $-11=F_{-4}+F_{-6}=(-3)+(-8)$ ;
* $12=F_{-2}+F_{-7}=(-1)+13$ ;
* $24=F_{-1}+F_{-4}+F_{-6}+F_{-9}=1+(-3)+(-8)+34$ ;
* $-43=F_{-2}+F_{-7}+F_{-10}=(-1)+13+(-55).$
Comme plus haut, on associe à la représentation d'un entier N un mot binaire, dont la n-ième lettre est 1 si F$_n$ figure dans la représentation de N et 0 sinon. Ainsi, 24 est représenté par le mot 100101001. On observe que l'entier N est positif si et seulement si la longueur du mot associé est impaire.

### Multiplication de Fibonacci

Donald Knuth considère une opération de multiplication $a\circ b$ d'entiers naturels $a$ et $b$ définie comme suit : étant donné les représentations $a=\sum _{i=0}^{k}F_{c_{i}}\;(c_{i}\geq 2)$ et $b=\sum _{j=0}^{l}F_{d_{j}}\;(d_{j}\geq 2)$ le produit de Fibonacci est l'entier $a\circ b=\sum _{i=0}^{k}\sum _{j=0}^{l}F_{c_{i}+d_{j}}.$
Par exemple, comme 2 = F$_3$ et 4 = F$_4$ + F$_2$, on a $2\circ 4=F_{3+4}+F_{3+2}=13+5=18$.
Knuth a prouvé le fait surprenant que cette opération est associative.

### Autres suites

Zeckendorf prouve l'existence et l'unicité, sous condition, pour la représentation par les nombres de Lucas.
Knuth mentionne que le théorème de Zeckendorf reste vrai pour les suites de k-bonacci, sous réserve que l'on n'utilise pas k nombres consécutifs d'une telle suite.
Aviezri Fraenkel a donné un énoncé général qui étend les théorèmes précédents : Soit $1=u_{0}<u_{1}<u_{2}<\cdots$ une suite d'entiers. Tout entier naturel N a exactement une représentation de la forme
    $N=d_{k}u_{k}+d_{k-1}u_{k-1}+\cdots +d_{1}u_{1}+d_{0}u_{0},$
où $d_{k},\ldots ,d_{0}$ sont des entiers naturels, pourvu que
    $d_{i}u_{i}+d_{i-1}u_{i-1}+\cdots +d_{0}u_{0}<u_{i+1}$
pour $i\geq 0.$

### Système d'Ostrowski

Tout nombre irrationnel α admet un développement en fraction continue $\alpha =[a_{0},a_{1},a_{2},\ldots ]$. Si l'on pose $p_{-2}=0$, $p_{-1}=1$, $q_{-2}=1$, $q_{-1}=0$ et $p_{n}=a_{n}p_{n-1}+p_{n-2}$, $q_{n}=a_{n}q_{n-1}+q_{n-2}$, on a $p_{n}/q_{n}=[a_{0},\ldots ,a_{n}]$. La suite $(q_{n})$ forme une base pour un système de numération :
Théorème d'Ostrowski — Soit α un nombre irrationnel, et soit (q$_n$) la suite des dénominateurs des convergents de la fraction continue de α. Tout entier positif N s'écrit de manière unique sous la forme
    $N=b_{k}q_{k}+\cdots +b_{0}q_{0}$
où les b$_i$ sont des entiers satisfaisant les trois conditions suivantes :
* $0\leq b_{0}<a_{1}$ ;
* $0\leq b_{i}\leq a_{i+1}$ pour $i>0$ ;
* Pour $i>0$, si $b_{i}=a_{i+1}$, alors $b_{i-1}=0$.
Pour le nombre d'or, les a$_i$ valent tous 1, les q$_n$ sont les nombres de Fibonacci et les trois conditions signifient que les termes de la somme sont distincts et non consécutifs.