Base d'or

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

En mathématiques, le nombre d'or, à savoir

\varphi=\frac{1+\sqrt5}2

peut être utilisé comme une base de numération. Ce système est connu sous le nom base d'or, ou accessoirement, phinaire (car le symbole pour le nombre d'or est la lettre grecque « phi »). Tout nombre réel non-négatif possède une représentation standard en base \varphi où seuls les chiffres 0 et 1 sont utilisés, et où la suite « 11 » est évitée. Une base \varphi non standard avec cette suite de chiffre (ou avec d'autres chiffres) peut toujours être réécrite en forme standard, la reliant aux propriétés algébriques du nombre \varphi — c’est-à-dire que \varphi + 1 = \varphi^2. Par exemple 11_{\varphi} = 100_{\varphi}. Malgré l'usage d'une base irrationnelle, c'est un fait remarquable que tous les entiers naturels possèdent une représentation unique en développement fini dans la base \varphi. Tous les nombres qui possèdent une représentation finie (avec une quantité finie des 1) dans la base phinaire sont les entiers de Q(√5) non-négatifs.

Les autres nombres possèdent des représentations standard en base \varphi, les nombres rationnels non-négatifs ayant des représentations récurrentes. Ces représentations sont uniques, excepté celles des nombres qui ont un développement fini ainsi qu'un développement non fini (de la même manière qu'en base 10 : 2,2 = 2,199999…)

Ramener un nombre en base φ à sa forme standard[modifier | modifier le code]

Écritures en base φ[modifier | modifier le code]

Décomposition (standard) des neuf premiers entiers
Entier Puissances de \varphi\, Base \varphi\,
1 \varphi^0\, 1
2 \varphi^1 + \varphi^{-2}\, 10,01
3 \varphi^2 + \varphi^{-2}\, 100,01
4 \varphi^2 + \varphi^0 + \varphi^{-2}\, 101,01
5 \varphi^3 + \varphi^{-1} + \varphi^{-4}\, 1000,1001
6 \varphi^3 + \varphi^1 + \varphi^{-4}\, 1010,0001
7 \varphi^4 + \varphi^{-4}\, 10000,0001
8 \varphi^4 + \varphi^0 + \varphi^{-4}\, 10001,0001
9 \varphi^4 + \varphi^1 + \varphi^{-2} + \varphi^{-4}\, 10010,0101

En s'inspirant de l'écriture décimale positionnelle, la notation x = 211,01φ désignera le nombre

x=2 \varphi^2+1\varphi^1+1\varphi^0 +0\varphi^{-1}+1\varphi^{-2} =2 \varphi^2+\varphi+1 +\varphi^{-2}

Avec cette convention, le nombre d'or lui-même est noté 10φ, son carré est 100φ, son inverse 0,1φ.

Le nombre d'or vérifie par définition la relation algébrique φ2=φ+1, ce qui permet de réécrire le nombre x sous d'autres formes, comme

x= \varphi^2+(\varphi^2+\varphi)+1 +\varphi^{-2} =\varphi^3+\varphi^2+1 +\varphi^{-2} = 1101,01_\varphi

Le même nombre peut donc avoir plusieurs écritures phinaires : la première écriture de x a fait intervenir les chiffres 0,1,2 ; la seconde n'utilise plus que 0 et 1. Il n'y a pas de raison a priori de se limiter à des chiffres allant de 0 à 9, on pourrait noter par exemple

y=23[18]5,0[12]_\varphi pour
y=2\varphi^3+3\varphi^2+18\varphi+5+ 12\varphi^{-2}

Avec 12 et 18 vus comme des chiffres dans l'écriture phinaire de y.

Principe de la standardisation[modifier | modifier le code]

Tout nombre réel possède une représentation standard en base \varphi où seuls les chiffres 0 et 1 sont utilisés, et où on ne trouve jamais la séquence de chiffres « 11 ». Le tableau ci-contre donne des représentations standard pour les premiers nombres entiers.

Un nombre écrit sous forme phinaire non standard peut toujours être réécrit sous forme standard, en usant judicieusement de la formule φ + 1 = φ2. Par exemple le nombre φ2 lui-même peut être écrit 11φ sous forme non standard, 100φ sous forme standard.

Le nombre 211,01φ n'est pas une écriture standard, puisqu'il contient le chiffre « 2 », et il contient en outre une séquence de chiffres « 11 ». Pour standardiser ce chiffre, nous pouvons utiliser les substitutions suivantes :

  • la séquence de chiffres « 011 » peut être réécrite « 100 », ce qui exprime la relation φ + 1 = φ2
  • la séquence « 0200 » peut se réécrire « 1001 », par application de la relation 2φ2 = φ3+1

À chaque fois qu'on décèle dans l'écriture de x un motif interdit (011 ou 0200), on applique une de ces substitutions, et on répète l'opération jusqu'à disparition de ces motifs. Quel que soit l'ordre dans lequel on procède, le résultat sera le même : le nombre x écrit sous forme standard. La recherche des motifs est à comprendre au sens large : ainsi le motif « 0410 » contient à la fois le motif « 011 » (0410 = 0300 + 0110) et le motif « 0200 » (0410 = 0200 + 0210).

Voici avec l'exemple du nombre x = 211,01φ les substitutions utilisées (à droite), et les écritures phinaires successives de ce nombre

  211,01φ
  300,01φ     011φ → 100φ
 1101,01φ     0200φ → 1001φ
10001,01φ     011φ → 100φ 

Prise en compte des entiers négatifs[modifier | modifier le code]

Il est possible de prendre pour chiffres d'une écriture phinaire des entiers négatifs. Ainsi le nombre 211,0[−1]φ n'est pas une écriture standard, puisqu'il contient les chiffres « −1 » et « 2 », qui ne sont pas « 0 » ou « 1 » ; il contient en outre une séquence de chiffres « 11 ».

Pour standardiser ce chiffre, nous pouvons ajouter aux substitutions précédentes une nouvelle opération : 0[−1]0φ → [−1]01φ issue de −φ = −φ2+1. Pour alléger l'écriture le signe « − » sera porté au-dessous du chiffre auquel il s'applique : cette substitution sera ainsi notée

010φ101φ.

Voici le résultat de l'application de l'algorithme pour le nombre considéré

  211,01φ
  300,01φ     011φ → 100φ
 1101,01φ     0200φ → 1001φ
10001,01φ     011φ → 100φ (de nouveau)
10001,101φ    010φ101φ
10000,011φ    010φ101φ (de nouveau)
10000,1φ      011φ → 100φ (de nouveau)

À la fin de l'algorithme, le seul chiffre pouvant encore valoir « −1 » est le premier terme. Précisément, le signe du nombre x est justement le signe de son premier chiffre.

Tout nombre positif représenté en base \varphi non standard peut être standardisé de manière unique de cette façon. Si le nombre est négatif, on peut à la fin de cette première standardisation mettre le signe moins en facteur, ce qui revient à changer chaque chiffre en son opposé, et réappliquer l'algorithme au résultat. On aura alors l'opposé d'un nombre positif écrit sous forme standardisée.

Si cette arithmétique est exécutée par un ordinateur, un message d'erreur peut apparaître.

Représenter les entiers sous forme de nombres en base d'or[modifier | modifier le code]

Nous pouvons, soit considérer nos entiers comme étant les (seuls) chiffres d'une base \varphi non standard, et les standardiser, soit faire ce qui suit :

Notez que :

1 \times 1 = 1\,
\varphi \times \varphi = 1 + \varphi\,
\frac{1}{\varphi} = -1 + \varphi.

Par conséquent, nous pouvons calculer

(a + b \varphi) + (c + d \varphi) = ((a + c) + (b + d)\varphi), (a + b\varphi) - (c + d\varphi) = ((a - c) + (b - d)\varphi)\,.

et

(a + b\varphi) \times (c + d\varphi) = ((a \times c + b \times d) + (a \times d + b \times c + b \times d)\varphi)\, .

Ainsi, en utilisant les valeurs entières seulement, nous pouvons ajouter, soustraire et multiplier des nombres de la forme (a + b \varphi), et même représenter des puissances entières positives et négatives de \varphi.

(a + b \varphi) > (c + d \varphi) si et seulement si 2(a - c) - (d - b) > (d - b) \times \sqrt 5. Si un côté est négatif, l'autre côté est positif, la comparaison est triviale. Autrement, élever au carré les deux côtés, pour obtenir une comparaison entière, renverser la comparaison si les deux côtés étaient négatifs. Lors de l'élévation au carré des deux côtés, 5 est remplacé par l'entier 5.

Ainsi, en utilisant les valeurs entières seulement, nous pouvons aussi comparer les nombres de la forme a + b \varphi.

  1. Pour convertir un entier x en un nombre en base- \varphi, notez que x = (x + 0 \varphi).
  2. Soustraire la plus haute puissance de \varphi, laquelle est encore plus petite que le nombre que nous avons, pour extraire un nouveau nombre, et placer un « 1 » dans la place appropriée dans le nombre en base-\varphi.
  3. Jusqu'à ce que notre nombre soit 0, aller à l'étape 2.
  4. Fini.

La procédure ci-dessus ne donnera jamais la suite « 11 », puisque 11_{\varphi} = 100_{\varphi} , donc obtenir un « 11 » voudrait dire que nous avons manqué un « 1 ».

C’est-à-dire : démarrons avec l'entier 5, le résultat étant \ldots 00000,00000 \ldots_{\varphi}

La plus haute puissance de \varphi \le 5 est \varphi^3 = 1 + 2 \varphi \approx 4,236067977

En soustrayant ceci de 5, nous avons 5 - (1 + 2 \varphi) = 4 - 2 \varphi \approx 0,763932023 \ldots, le résultat étant alors 1000,00000100_{\varphi}

La plus haute puissance de \varphi \le 4 - 2 \varphi \approx 0,763932023 \ldots est \varphi^{-1} = -1 + 1 \varphi \approx 0,618033989 \ldots

En soustrayant ceci de 4 - 2 \varphi \approx 0,763932023 \ldots, nous avons 4 - 2 \varphi - (-1 + 1 \varphi) = 5 - 3 \varphi \approx 0,145898034 \ldots , le résultat étant alors 1000,10000 \ldots_\varphi

La plus haute puissance de \varphi \le 5 - 3 \varphi \approx  0,145898034 \ldots est \varphi^{-4} = 5 - 3 \varphi \approx 0,145898034 \ldots

En soustrayant ceci de 5 - 3 \varphi \approx 0,145898034 \ldots, nous avons 5 - 3 \varphi - (5 - 3 \varphi) = 0 + 0 \varphi = 0 , avec le résultat final :

1000,1001_\varphi.~

Non-unicité[modifier | modifier le code]

Comme avec tout système de numération de base n, les nombres dont le développement est fini peuvent s'écrire de plusieurs façons. En base 10, cela est relié à l'observation suivante : si x = 0,9999… alors 10x = 9,99999… donc 9x = 9 et x = 1. En base \varphi, le nombre 0,1010101… peut être vu comme égal à 1 de plusieurs manières :

\sum_{k=0}^\infty \varphi^{-2k}=\frac{1}{1-\varphi^{-2}} = \varphi
  • Différence entre deux « déplacements » : \varphi^2 x - x = 10,101010 \ldots_{\varphi} - 0,101010 \ldots_{\varphi} = 10_{\varphi} = \varphi c'est-à-dire x = \varphi/(\varphi^2-1) = 1

Cette non-unicité est une spécificité du système de numération, puisque 1,0000 et 0,101010… sont tous les deux dans la forme standard.

Représenter les rationnels sous forme de nombres en base d'or[modifier | modifier le code]

Chaque nombre rationnel peut être représenté sous forme de développement en base \varphi, puisque tout élément du corps ℚ[5] = ℚ + ℚ 5, le corps engendré par les nombres rationnels et 5. Réciproquement, tout développement fini ou répétitif en base \varphi est un élément de ℚ[5]. En voici quelques exemples :

  • \frac12 = 0,010 010 010… φ
  • \frac13 = 0,001 010 000 010 100 000 101 000… φ
  • \sqrt5 = 10,100 000φ
  • 2 + \frac1{13}\sqrt5 = 10,010 100 010 001 010 100 010 001 000 000 010 001 000 101 010 001 000 100 000 001 000 100 010 101 000 100 010 000 000 …φ

La justification qu'un rationnel donne un développement répétitif est analogue à la démonstration équivalente pour un système de numération en base n (n = 2, 3, 4,…). Essentiellement pour les longues divisions en base \varphi, il existe seulement un nombre fini de restes possibles, et donc, ils doivent être dans un motif répétitif. Par exemple avec 1/2 = 1/10,01φ = 100φ/1001φ une longue division ressemble à ceci (notez que cette soustraction est un peu capricieuse)

               .0 1 0 0 1
        ------------------------
1 0 0 1 ) 1 0 0.0 0 0 0 0 0 0 0
            1 0 0 1                      échange : 10000 = 1100 = 1011
            -------                          donc 10000 − 1001 = 1011 − 1001 = 10
                1 0 0 0 0
                  1 0 0 1
                  -------
                      etc.


La réciproque est également vraie, vu qu'un nombre représenté en base \varphi est un élément du corps ℚ[5]. Il découle de l'observation qu'une représentation récurrente avec une période k implique une série géométrique avec le rapport \varphi^k, qui sera la somme d'un élément de ℚ[5].

Addition, soustraction et multiplication[modifier | modifier le code]

Il est possible d'adapter tous les algorithmes standards de l'arithmétique de la base 10 pour l'arithmétique de la base \varphi. Il y a deux approches pour cela :

Calculer puis convertir en forme standard[modifier | modifier le code]

Pour l'addition de deux nombres en base \varphi, ajouter chaque paire de chiffres, sans retenue, puis convertir le nombre en forme standard. Pour la soustraction, déduire chaque paire de chiffres sans retenue, puis convertir le nombre en forme standard. Pour la multiplication, multiplier de façon habituelle, sans retenue, puis convertir le nombre en forme standard.

Par exemple

  • 2 + 3 = 10,01 + 100,01 = 110,02 = 110,1001 = 1000,1001
  • 2 × 3 = 10,01 × 100,01 = 1000,1 + 1,0001 = 1001,1001 = 1010,0001
  • 7 − 2 = 10000,0001 − 10,01 = 10010,0101 = 1110,0101 = 1001,0101 = 1000,1001

Éviter les chiffres autres que 0 et 1[modifier | modifier le code]

Une approche plus « naïve » est d'éviter d'avoir à ajouter les chiffres 1+1 ou soustraire 0−1. Ceci est réalisé en réorganisant les opérandes en forme non standard pour que ces combinaisons n'apparaissent pas. Par exemple

  • 2 + 3 = 10,01 + 100,01 = 10,01 + 100,0011 = 110,0111 = 1000,1001
  • 7 − 2 = 10000,0001 - 10,01 = 1100,0001 − 10,01 = 1011,0001 − 10,01 = 1010,1101 - 10,01 = 1000,1001

La soustraction vue ici utilise une forme modifiée de l'algorithme d'échange standard pour la soustraction.

Division[modifier | modifier le code]

Aucune fraction a/b (où a et b sont des nombres entiers, a non divisible par b) ne peut être représentée comme un nombre fini en base \varphi, en d'autres mots, tous les nombres en base \varphi finis représentables sont soit des entiers ou plus précisément un irrationnel dans le corps ℚ[5]. Puisque les longues divisions ont seulement un nombre fini de restes possibles, une division de deux entiers (ou d'autres nombres avec une représentation finie en base \varphi) aura un développement répétitif, comme montré ci-dessus.

Une relation étroite : représentation de Fibonacci[modifier | modifier le code]

Article détaillé : Codage de Fibonacci.

Un système de numération en relation étroite est la représentation de Fibonacci utilisée pour les entiers. Dans ce système, seuls les chiffres 0 et 1 sont utilisés et les valeurs des places de ces chiffres sont les nombres de Fibonacci. Puisqu'avec une base \varphi, la suite de chiffre « 11 » est évitée par réarrangement en forme standard, en utilisant la relation de récurrence de Fibonacci :

F_{k+1} = F_k + F_{k-1}\,

Par exemple :

30 = 1×21 + 0×13 + 1×8 + 0×5 + 0×3 + 0×2 + 1×1 + 0×1 = 10100010fib.

Cette relation de récurrence est à rapprocher de celle qui relie les puissances du nombre d'or \varphi, à savoir :

\forall n\in\mathbb{N}, \quad \varphi^{n+1} = \varphi^n + \varphi^{n-1}

Références[modifier | modifier le code]

Liens externes[modifier | modifier le code]

(en) Using Powers of Phi to represent Integers (Base Phi)