AccueilđŸ‡«đŸ‡·Chercher

Arbre de Calkin-Wilf

En thĂ©orie des nombres et en combinatoire, l'arbre de Calkin-Wilf, est un arbre dont les sommets sont en bijection avec les nombres rationnels positifs. L'arbre a pour racine le nombre 1, et tout nombre rationnel positif, exprimĂ© sous la forme d'une fraction rĂ©duite a/b, a deux enfants qui correspondent aux nombres a/(a + b) et (a + b)/b. Chaque nombre rationnel positif figure exactement une fois dans l’arbre.

L'arbre de Calkin-Wilf.
Illustration de la construction de descendants de l'arbre de Calkin-Wilf Ă  partir de leur parent.

La suite de nombres rationnels obtenue par un parcours en largeur de l'arbre de Calkin-Wilf est connue sous le nom de suite de Calkin-Wilf. La suite des numĂ©rateurs (ou la suite des dĂ©nominateurs dĂ©calĂ©e d'un terme) est la suite diatomique de Stern, et peut ĂȘtre calculĂ©e par la fonction fusc.

Historique

L'arbre de Johannes Kepler dans Harmonices Mundi (1619)

L'arbre de Calkin-Wilf porte le nom de Neil Calkin (en) et Herbert Wilf qui l'ont étudié dans un article commun paru en 2000. L'arbre a été introduit auparavant par Jean Berstel et Aldo de Luca[1] sous le nom de Raney tree, parce qu'ils ont repris des concepts d'un article de George N. Raney[2]. La suite diatomique de Stern a été décrite bien plus tÎt par Moritz Abraham Stern, mathématicien allemand du XIXe siÚcle qui est aussi l'inventeur de l'arbre de Stern-Brocot.

Et mĂȘme encore plus tĂŽt, un arbre semblable (incluant seulement les fractions entre 0 et 1) apparaĂźt chez Johannes Kepler dans son Harmonices Mundi (1619)[3].

DĂ©finition et structure

L'arbre de Calkin-Wilf déployé sous forme d'un arbre en H.

On peut dĂ©finir l’arbre de Calkin-Wilf comme Ă©tant un graphe orientĂ©, oĂč chaque nombre rationnel positif figure comme sommet et possĂšde, Ă  l'exception du sommet 1, un arc sortant unique vers un autre sommet appelĂ© son sommet parent. On suppose que la fraction est rĂ©duite, en d'autres termes que le plus grand commun diviseur de a et b est 1. Si , le parent de est ; si , le parent de est . Dans les deux cas, le parent est une fraction dont la somme du numĂ©rateur et du dĂ©nominateur est plus petite; de sorte que la rĂ©pĂ©tition de ces rĂ©ductions amĂšne finalement au nombre 1, sans parent, la racine. Il s'agit bien d'un arbre au sens de la thĂ©orie des graphes, avec un seul arc sortant par sommet et une racine accessible de tout sommet.

Les enfants d'un sommet de l'arbre de Calkin-Wilf se calculent en inversant les formules prĂ©cĂ©dentes : chaque sommet a/b a un enfant de valeur plus petite que 1, et un enfant de valeur plus grande que 1[4]. L'arbre de Calkin-Wilf est bien un arbre binaire, mais sans ĂȘtre un arbre binaire de recherche, car l'ordre obtenu par le parcours infixe ne correspond pas Ă  l'ordre naturel des sommets. Il existe toutefois une relation Ă©troite avec l'arbre de Stern-Brocot (qui est lui un arbre binaire de recherche) : les sommets des deux arbres sont les mĂȘmes Ă  chaque niveau, et ils sont liĂ©s par la permutation obtenue en renversant la reprĂ©sentation binaire de leur position, appelĂ©e en anglais la bit-reversal permutation (en)[5].

Parcours en largeur

La suite de Calkin–Wilf, dessinĂ©e en spirale rouge s'enroulant autour de l'arbre de Calkin–Wilf.

La suite de Calkin–Wilf est la suite de nombres rationnels obtenue par un parcours en largeur de l'arbre de Calkin-Wilf. Ses premiers Ă©lĂ©ments sont :

1/1, 1/2, 2/1, 1/3, 3/2, 2/3, 3/1, 1/4, 4/3, 3/5, 5/2, 2/5, 5/3, 3/4, ...

Comme l'arbre de Calkin-Wilf contient chaque nombre rationnel positif exactement une fois, il en est de mĂȘme de cette suite. Le dĂ©nominateur de chaque fraction est Ă©gal au numĂ©rateur de la fraction suivante[6]. La suite peut aussi ĂȘtre engendrĂ©e par la formule de rĂ©currence :

oĂč est le i-Ăšme nombre de la suite, avec , et est la partie entiĂšre de [7].

On peut aussi calculer directement à partir du run-length encoding de la représentation binaire de i : on compte le nombre de chiffres égaux à 1 à partir du bit de plus faible poids, puis le nombre de chiffres égaux à 0, puis à nouveau le nombre de chiffres égaux à 1 etc. La suite d'entiers positifs ainsi obtenue est la représentation en fraction continue de .

Exemples
  • pour , la fraction continue obtenue est [1;2,3,4,1], et donc .
  • pour , la fraction continue est [0;1,2,3,5], et
Attention, la réciproque n'est pas toujours vraie, une fraction continue peut avoir une valeur binaire identique à une autre.
  • les fractions continues de et de sont respectivement [0, 2] et [1, 2], donc et . Pour retrouver la position d'un nombre il faut absolument remonter vers la racine de l'arbre en ajoutant si le numĂ©rateur est supĂ©rieur au dĂ©nominateur 1 Ă  l'avant du rĂ©sultat binaire et 0 sinon.
var p = parseInt(n); // numérateur
var q = parseInt(d); // dénominateur
var bits = "";
while (!(p == 1 && q == 1)) { // tant qu'on est pas Ă  la racine
	if (p > q) {
		bits = "1" + bits;
		p = p - q;
	} else {
		bits = "0" + bits;
		q = q - p;
	}
}
bits = "1" + bits; // le bit de la racine
var resultat = parseInt(bits, 2);

Une conversion similaire entre dĂ©veloppements binaires codĂ©s en run-length encoding et fractions continues peut ĂȘtre utilisĂ©e pour Ă©valuer la fonction point d'interrogation de Minkowski ; dans l'arbre de Calkin–Wilf, les nombres binaires sont des entiers, Ă  savoir les positions dans le parcours en largeur, alors que dans la fonction point d'interrogation ce sont des nombres rĂ©els entre 0 et 1.

Suite diatomique de Stern

Nuage de points de fusc(0...4096).

La suite diatomique de Stern est la suite d'entiers

0, 1, 1, 2, 1, 3, 2, 3, 1, 4, 3, 5, 2, 5, 3, 4, ... (suite A002487 de l'OEIS).

Si on numérote les éléments à partir de 0, la valeur du n-iÚme de la suite est la valeur fusc(n) de la fonction fusc[8], fonction définie par la relation de récurrence

avec les conditions initiales

et .

Le n-iĂšme nombre dans le parcours en profondeur de l'arbre de Calkin–Wilf est le nombre [9]. Ceci montre que la suite diatomique forme Ă  la fois la suite des numĂ©rateurs et la suite des dĂ©nominateurs des nombres de la suite de Calkin–Wilf.

Le nombre fusc(n + 1) est aussi le nombre de coefficients binomiaux impairs de la forme[10]

et il compte Ă©galement le nombre de façons d'Ă©crire n comme une somme de puissances de deux oĂč chaque puissance apparaĂźt au plus deux fois. On peut voir cela Ă  partir de la relation de rĂ©currence qui dĂ©finit fusc comme suit : les expressions comme somme de puissances de 2 pour un nombre pair 2n ou bien ne comportent pas de 1, (et dans ce cas elles sont formĂ©es en doublant chaque terme de l'expression pour n) ou bien comportent deux 1 (et dans ce cas le reste de l'expression est formĂ© en doublant chaque terme de l'expression pour n - 1), de sorte que le nombre de reprĂ©sentants est la somme du nombre de reprĂ©sentations pour n et pour n - 1, en accord avec la relation de rĂ©currence. De mĂȘme, chaque reprĂ©sentation pour un nombre impair 2n + 1 est formĂ© en doublant une reprĂ©sentation pour n et en ajoutant 1, Ă  nouveau en accord avec la rĂ©currence[11]. Par exemple

6 = 4 + 2 = 4 + 1 + 1 = 2 + 2 + 1 + 1

a trois représentations comme somme de puissances de deux ayant au plus deux occurrences de chaque puissance, de sorte que fusc(6 + 1) = 3.

Rapport avec l'arbre de Stern–Brocot

L'arbre de Calkin–Wilf ressemble Ă  l'arbre de Stern-Brocot, dans la mesure oĂč les deux sont des arbres binaires contenant chaque nombre rationnel positif exactement une fois. De plus, les mĂȘmes nombres apparaissent dans les deux arbres aux mĂȘmes niveaux, mais pas dans le mĂȘme ordre. Les arbres peuvent ĂȘtre obtenus l'un Ă  partir de l’autre au moyen d'une bit-reversal permutation (en)[12] appliquĂ©e Ă  chaque niveau de l'arbre[5]. On peut aussi transformer le nombre associĂ© Ă  un nƓud donnĂ© de l'arbre de Calkin–Wilf en le nombre en mĂȘme position dans l'arbre de Stern–Brocot et rĂ©ciproquement par une mĂ©thode qui utilise le retournement de la reprĂ©sentation en fraction continue de ces nombres[13]. Les deux arbres ont aussi des propriĂ©tĂ©s qui les distinguent : un arbre de Stern–Brocot est un arbre binaire de recherche, c'est-Ă -dire que le parcours infixe de gauche Ă  droite donne les nombres en ordre numĂ©rique croissant, alors que l'arbre de Calkin–Wilf n'a pas cette propriĂ©tĂ©.

Notes et références

  1. Berstel et de Luca 1997, Section 6.
  2. Raney 1973.
  3. J. Kepler, Harmonices Mundi, vol. III, (lire en ligne), p. 27.
  4. La description donnée ici est duale de la définition de Calkin et Wilf ; ces auteurs commencent par la définition des enfants à partir de leur parent et déduisent ensuite les expressions pour le parent.
  5. Gibbons, Lester et Bird 2006.
  6. Gibbons, Lester et Bird 2006 discutent des techniques de programmation fonctionnelle pour réaliser ce parcours en largeur.
  7. Aigner et Ziegler 2004 attribuent cette formule Ă  Moshe Newman.
  8. Le nom « fusc » a été donné à cette fonction en 1976 par Edsger W. Dijkstra, comme indiqué dans EWD570 et EWD578.
  9. Calkin et Wilf 2000, Theorem 1.
  10. Carlitz 1964.
  11. L'entrée de OEIS attribue ce fait à Carlitz 1964 et à un papier non cité de Lind. L'article de Carlitz décrit en fait une classe plus restreinte de sommes de puissances de 2, comptées par la fonction fusc(n) au liu de fusc(n + 1).
  12. Les indices d'un mot abcdefgh à huit lettres s'écrivent, en binaire, 000, 001, 010, 011, 100, 101, 110, et 111; les écritures renversées deviennent 000, 100, 010, 110, 001, 101, 011, et 111. La séquence permutée est aecgbfdh.
  13. et al. 2010.

Bibliographie

Articles liés

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.