Addition

31
Caillaux Jonathan L1SM Gr 2 Dalibard Raphaël Debelle Kevin Atelier Pédagogique : Addition du cancre Sous la direction de : M.Durieu U.F.R Sciences et techniques 1/31

Transcript of Addition

Page 1: Addition

Caillaux Jonathan L1SM Gr 2Dalibard RaphaëlDebelle Kevin

Atelier Pédagogique : Addition du cancre

Sous la direction de : M.Durieu U.F.R Sciences et techniques

1/31

Page 2: Addition

Table des matièresIntroduction :........................................................................................................................................3Partie I : L'addition du cancre...............................................................................................................4

Définition :.......................................................................................................................................4Conventions :...................................................................................................................................4Propriétés :.......................................................................................................................................5

Partie 2 : Les suites de Stern-Brocot....................................................................................................7Construction :...................................................................................................................................7Proposition 2.1 : .............................................................................................................................7Proposition 2.2 : ..............................................................................................................................8Propriétés : ......................................................................................................................................9Proposition 2.3 :.............................................................................................................................11

Partie 3 : Tous les rationnels positifs apparaissent dans l'arbre de Stern-Brocot...............................13Proposition 3.1 : ............................................................................................................................13Lemme d'encadrement : ................................................................................................................14Proposition 3.2 : ............................................................................................................................15Raisonnement par l'absurde :.........................................................................................................16

Partie 4- Annexe : Comment trouver un rationnel dans la suite de suites de Stern-Brocot ?.............17I-Propriétés.....................................................................................................................................17II-Algorithme.................................................................................................................................21

Algorithme de base :.................................................................................................................22Exemple :..................................................................................................................................23Code Perl fonctionnel pour l'algorithme :................................................................................25

Sources...............................................................................................................................................31

2/31

Page 3: Addition

Introduction :

Nous avons tous commis des erreurs, peut être plus en particulier, lorsque l'on a appris à additionner deux fractions. Sous cette ''erreur'' se cache une opération révélant biens des propriétés. Cette opération se nomme la médiante de deux fractions, ou bien addition du cancre car, les cancres l'utilisaient, l'utilisent et l'utiliseront encore pour additionner deux rationnels positifs. Il est important de noter que cette addition du cancre est différente de l'addition usuelle. Dans un premier temps, nous définirons l'opération de médiante. Puis, nous nous intéresserons aux suites de Stern-Brocot afin d'en dégager quelques propriétés. Ensuite nous fournirons la démonstration de la proposition suivante :''Tout rationnel positif apparaît, à partir d'un certains rang, dans les suites de Stern-Brocot''. Enfin, en annexe nous donnerons un algorithme capable de trouver la première position d'un rationnel dans les suites de Stern-Brocot, tout en ayant auparavant exposé les propriétés utilisées par l'algorithme.

3/31

Page 4: Addition

Partie I : L'addition du cancre

Définition :

On définit la médiante de deux rationnels positifs x et y comme étant le rationnel positif z dont le numérateur est la somme des deux numérateurs de x et y et le dénominateur est la somme des deux dénominateurs de x et y. On note ⊕ cette opération. Soit :

∀ab

, cd∈ℚ+∪{+∞ };

ab⊕

cd=

a+cb+d

.

Pour effectuer l'opération, il faut avant tout s'assurer que nous avons pour x et y les uniques écritures telles que :

∀ x , y∈ℚ+∪{+∞}; x= ab

et y= cd∣ pcgd (a ;b)= pgcd (c ; d )=1; a , c≥0et b , d≥0

.En d'autres termes, pour effectuer x⊕y il faut prendre les formes irréductibles de x

et y. En effet, si on prend 12

et 35

le médian de ces fractions est alors :

12⊕

35=

1+32+5

=47

. Maintenant, si on prend une autre écriture de 12

, soit 24

et

que l'on réalise l'opération de médiante entre 24

et 35

on a :

24⊕

35=

2+34+5

=59≠

47=

12⊕

35

.

Avant de réaliser l'addition du cancre entre deux fractions, il faut s'assurer que l'on ait des fractions sous formes réduites i.e. irréductibles.

Conventions :

On note l'élément neutre de l'addition usuelle 0 par 01

. L'addition du cancre ne

possède pas d'élément neutre.

On note +∞ par 10

.

On note ℚ+∪{+∞ } par ℚ+ .

On dit que ab⊕

cd

et simple si et seulement si pgcd (a+c ;b+d )=1 i.e. la

fraction est obtenue directement sous forme irréductible.

4/31

Page 5: Addition

Propriétés :

Dans ce qui suit x=ab

et y= cd

sont deux fractions positives irréductibles prises

dans ℚ+ .i) L'addition du cancre est commutative.

Démonstration :ab⊕

cd=

a+cb+d

=c+ad+b

=cd⊕

ab

ii) L'addition du cancre n'est pas associative.Contre-exemple :

( 12⊕

21 )⊕5

3=

11⊕

53=

32

et 12⊕( 2

1⊕

53 )=1

2⊕

74=

43

. Or 32≠

43

.

iii) L'addition du cancre n'est pas distributive par rapport à la multiplication usuelle.Contre-exemple :

2(12⊕

35)=

2x47=

87

et 2x12⊕

2x35=

11⊕

65=

76

. Or 81≠

76

.

iv) ∀ n∈ℕ ;n+( ab⊕

cd)=(n+ a

b)⊕(n+ c

d)

Démonstration :

(n+ ab)⊕(n+ c

d)=

b.n+ab

⊕d.n+c

d. Or bn+a≡a [b]et dn+c≡c [d ] d'où

pgcd (bn+a ;b)= pgcd (dn+c ; d )=1 .b.n+a

b⊕

d.n+cd

=b.n+a+d.n+c

b+d=

n(b+d )+a+cb+d

=n+(ab⊕

cd) .

Remarque : on peut de même démontrer ∀ n∈ℕ ;n−(ab⊕

cd)=(n−a

b)⊕(n− c

d)

5/31

Page 6: Addition

v) ab≤

ab⊕

cd≤

cd

Démonstration :

ab⊕

cd=

a+bc+d

=

b(ab)+d ( c

d)

b+d.

ab⊕

cd

est une moyenne pondérée de ab

et cd

. D'après la règle des nombres de

Nicolas Chuquet , une moyenne est comprise entre les deux extremums quelle

contient. D'où : ab≤

ab⊕

cd≤

cd

.

Remarque : x⊕y=x=y⇒ x= y

vi) 1x⊕

1y=

1x⊕y

Démonstration :

x= ab

et y= cd

1x⊕

1y=

ba⊕

dc=

b+da+c

=1

a+cb+d

=1

x⊕ y.

vii) ∀ x , y≠1∣ x⊕y=1⇔ x= 1y

[1]

Démonstration :

x⊕y=1⇔ ab⊕

cd=1⇔ a+c

b+d=1⇔a+c=b+d or on a : x , y≠1⇔a≠b et c≠d .

D'où a=d et b=c⇔ x= 1y

[1] Ici on prend x , y≠1 car si on en prend un valant l'unité cela n'a pas d’intérêt car l'inverse de un c'est un. Cela est prouvé par la propriété V.

6/31

Page 7: Addition

Partie 2 : Les suites de Stern-Brocot.

Les suites de Stern-Brocot forment une suite infinie de suites finies. Chaque suite peut être considérées comme une suite de coordonnées. On note Bn

une suite de

Stern-Brocot.

On dit que deux fractions x=ab

et y= cd

irréductibles avec x<y sont adjacentes

si et seulement si le déterminant ∣ cd ab∣ vaut 1. On notera se déterminant :

δ( y ; x) .

Construction :

La première suite de Stern-Brocot est la suite B0 telle que :

B0=(01

; 10) .

On obtient la suite Bn+1 à partir de la suite Bn en insérant entre deux éléments

consécutifs de Bn leurs médiantes.

Ainsi on a :

B0=(01

; 10)

B1=(01

; 01⊕

10

; 10)=(

01

; 11

; 10) .

B2=(01

; 01⊕

11

; 11

; 11⊕

10

; 10)=(

01

; 12

; 11

; 21

; 10)

Et ainsi de suite.

Proposition 2.1 :

Une suite Bn comporte 2n+1 éléments.

Démonstration : Pour n=0 on a :

Card (B0)=2 et 20+1=1+1=2 .

La propriété est vraie au rang n=0.

Soit p un entier naturel non nul tel que Card (B p)=2 p+1 . Montrons sous cette

hypothèse que Card (B p+1)=2 p+1+1 .

7/31

Page 8: Addition

Par construction des suites de Stern-Brocot, on obtient B p+1 en intercalant entre

chaque rationnel de B p leur médian. On a intercalé 2 p éléments entre ceux de

B p pour obtenir B p+1 .

On a donc :

Card (B p+1)=Card (B p)+Card (B p)−1⇔Card (B p+1)=2(2 p+1)−1=2 p+1+1

On a montrer que la propriété est vraie au rang p+1 et donc de proche en proche, la propriété est vraie pour tout entier naturel n.

Soit :

∀ n∈ℕ ;Card (Bn)=2n+1

On notera la (k+1)-ième coordonnée de Bn : bnk pour k variant de 0 à 2n .

Proposition 2.2 :

Soit n et n' deux entiers naturels non nul tel que n < n'. L’élément de coordonnée

bnk dans la suite Bn , aura comme coordonnée bn '

(2n'−n) k dans la suite Bn ' .

Pour n' = n , on a :

bn'(2n'−n)k=bn

(2n−n)k=bnk .

La propriété est vraie au rang n'=n.

Soit p un entier naturel strictement supérieur à n tel que bnk=b p

(2 p−n) k . Montrons

sous cette hypothèse que bnk=b p

(2 p+1−n) k .

Pour construire B p+1 , on introduit la médiante deux termes consécutifs en ces

deux termes. Entre b p(2 p−n)k et b p

0 on peut introduire 2 p−n éléments. D'où,

l’élément b p(2p−n) k aura comme coordonnée dans B p+1 :

b p+1(2 p−n)k+2 p−n

=b p+1(2 p+1−n) k (on commence à indicer à partir de zéro).

En supposant que la propriété est vraie au rang p, on a montré qu'elle est vraie au rang p+1. Soit de proche en proche, la propriété est vraie por tout entier naturel n'.

Ceci implique que pour tout élément bnk , si k est pair alors l'élément est déjà

apparu dans une suite antérieure à la suite Bn .

8/31

Page 9: Addition

Propriétés :

Par construction de la suite de Stern-Brocot on a :

2.a) bnk⊕bn

k+1=bn+12k+1

La propriété 2.a est immédiate par construction de la suite de suites de Stern-Brocot.

Cette propriété implique que pour tout élément bnk , si k est impair alors c'est la

première fois que l'élément apparaît dans a suite de suite de Stern-Brocot.

Pour tout entier n et k n∈ℕet 0≤k≤2n on a :

2.b) bn0=

01

2.c) bn2n=

10

2.d) bn2n−1

=11

2.e) bn2n−k=

1

bnk

Pour tout entier n et k n∈ℕ∗et 0≤k≤2n−1 :

2.f) bn2n−1−k=1−bn

k .

Pour tout entier n et k n∈ℕet 2n−1≤k≤2n :

2.g) bn2n−1+k=1+bn

k .

Les propriétés bn0=

01

et bn2n=

10

découlent de la construction des suites de Stern-

Brocot : se sont les deux termes extrêmes des suites.

Dém onstration de la propriété 2.d : ∀ n∈ℕ∣bn2n−1

=11

Pour n= 1 (1 n'est pas présent dans la suite B0 ).

On a bien b11=

11

. La propriété est vraie au rang n=1.

Soit p un entier naturel non nul tel que b p2 p−1

=11

. Montrons sous cette hypothèse

que b p+12 p

=11

.

Selon la proposition 2.2, on a : 11=b p+1

2p−p+1.2 p−1=b p+1

2.2 p−1=b p+1

2p.

En supposant que la propriété est vraie au rang p, on a montré qu'elle est vraie au rang p+1. Soit de proche en proche, la propriété est vraie pour tout entier naturel n.

9/31

Page 10: Addition

Démonstration de la propriété 2.e : ∀ n , k∈ℕ ;0≤k≤2n∣bn2n−k=

1

bnk

.

Pour n=0, on a ;

B0=( 01

;10) .

La propriété est vraie au rang n=0.Si k≡0 [2 ] (k pair) :D'après la proposition 2.2 on obtient :

bn2n−k=bn+1

2n+1−2k=

1

bn+12k

.

Si k≡1 [2] (k impair) :En appliquant la propriété a des suites de Stern-Brocot puis la propriété vi) de

l'addition du cancre on obtient :

bn2n−k=bn

2n−k−1⊕bn

2n−k+1=

1

bnk+1

⊕1

bnk−1

=1

bnk−1⊕bn

k+1=

1

bnk

.

Démonstration de la propriété 2.f :

Pour n=1 on a :

B1=( 01

;11

;10) . b1

1−k=1−b1k .

Or k∈{0 ;1} .Si k=0 on a :

b11=

11

et 1−b10=1−0=1 .

Si k=1 on a :

b10=

01

et 1−b11=1−1=0 .

La propriété est vraie pour n=1.Si k≡0 [2 ] (k pair) :D'après la proposition 2.2 on obtient :

bn2n−1−k=1−bn

k⇔bn+12n−2k=1−bn+1

2k .

Si k≡1 [2] (k impair) :En appliquant la propriété 2.a des suites de Stern-Brocot puis la proposition 2.2

on a :

bn2n−1−k=bn

2n−1−k−1⊕bn2n−1−k+1⇔bn

2n−1−k=(1−bnk−1)⊕(1−bn

k+1) .

D'après la propriété iv) de l'addition du cancre :

10/31

∀n∈ℕ∗ ,∀ k∈{0...2n−1}∣bn2n−1−k=1−bn

k

Page 11: Addition

bn2n−1−k=(1−bn

k−1)⊕(1−bnk+1)⇔bn

2n−1−k=1−(bnk−1⊕bn

k+1) .

Enfin, d'après la propriété a) des suites de Stern-Brocot on a :

bn2n−1−k=1−(bn

k−1⊕bnk+1)⇔bn

2n−1−k=1−bnk .

Démonstration de la propriété 2.g : Pour n=1 on a :

B1=( 01

;11

;10) . b1

1+k=1+b1k .

Or k=0 .Si k=0 on a :

b11=

11

et 1+b10=1+0=1 .

Si k=1 on a :

b12=

10

et 1+b¿1=1−1=0 .

La propriété est vraie pour n=1.Si k≡0 [2 ] (k pair) :D'après la proposition 2.2 on obtient :

bn2n−1+k=1+bn

k⇔bn+12n+2k=1+bn+1

2k .

Si k≡1 [2] (k impair) :Grâce à la construction des suites de Stern-Brocot puis par application de la

proposition 2.2 on a :

bn2n−1−k=bn

2n−1−k−1⊕bn2n−1−k+1⇔bn

2n−1−k=(1+bnk−1)⊕(1+bn

k+1) (car

2n−1−k est impair donc la somme des cancres de ses deux voisins)D'après la propriété iv) de l'addition du cancre :

bn2n−1−k=(1+bn

k−1)⊕(1+bnk+1)⇔bn

2n−1−k=1+(bnk−1⊕bn

k+1) .

Enfin, d'après la propriété a) des suites de Stern-Brocot on a :

bn2n−1−k=1+(bn

k−1⊕bnk+1)⇔bn

2n−1−k=1+bnk .

Proposition 2.3 :

Deux éléments consécutifs d'une suite Bn sont adjacents.

Pour n=0 on a :

B0=( 01

;10) .

11/31

∀ n∈ℕ∗ ,∀ k∈{0...2n−1−1}bn2n−1+k=1+bn

k

Page 12: Addition

Avec δ(b01 ;b0

0)=1 .

La propriété est vrai au rang n=0.

Soit p un entier naturel non nul tel que δ(b pk+1 ; b p

k )=1 . Montrons sous cette

hypothèse que δ(b p+12k+1 ;b p+1

2k )=1 .

Par application d'une des propriété du déterminant on obtient :

δ(b pk+1 ; b p

k )=1⇔δ(b pk+1⊕b p

k ;b pk )=1 .

Par application de la propriété b) et de la proposition 2.2 on a :

δ(b pk+1⊕b p

k ;b pk )=1⇔δ(b p+1

2k+1 ; b pk )=1⇔δ(b p+1

2k+1; b p+12k )=1

Par construction des suites de Stern-Brocot, une fois qu'un élément apparaît à un certain rang n, on va le retrouver dans les rang supérieur à n. Pour éviter la redondance d'information, on peut représenter les suites de Stern-Brocot sous la forme d'un arbre binaire :

12/31

Page 13: Addition

Partie 3 : Tous les rationnels positifs apparaissent dans l'arbre de Stern-Brocot.

Dans cette partie nous démontrerons les propositions qui permettent de démontrer le théorème suivant :

Théorème : ∀ q∈ℚ+ ;∃n ,k∈ℕ ;0≤k≤2n∣q=bnk avec bn

k élément de la

(n+1)-ième suite de Stern-Brocot.

Pour la suite a,b,c et d désignent des entiers naturels non nuls. On muni le plan d'un repère orthonormé (O ; i⃗ ; j⃗) . À chaque rationnel positif on associe un point tel que le rationnel représente le coefficient directeur de la droite formée par l'origine du repère et le point associé au rationnel.

Proposition 3.1 :

Soit deux fractions irréductibles adjacentes x=ab

et y= cd

. L'addition du cancre

de ces deux fractions est simple.

Démonstration :

Soit x= ab

et y= cd

deux fractions adjacentes avec ab<

cd

. On a alors :

13/31

fig. 3-1: Point M associé au rationnel a/b

Page 14: Addition

∣cd ab∣=1 . Leur médiante est : z= a+c

b+d. Les propriétés du déterminant nous

permettent d'écrire : δ( y ; x)=δ( y ; z)=δ(z ; x)=1 .

δ(z ; x)=1⇔∣a+cb+d

ab∣=1⇔b(a+c)−a(b+d)=1 . Or d'après le théorème de

Bézout : pgcd(a;b)=1⇔∃(u : v)∈ℤ² ; au+bv=1 .Ici il suffit de prendre : u = b et v = -a. On obtient que a+c et b+d sont premiers entre

eux, et donc que a+cb+d

est irréductible. D'où x⊕ y est simple.

Lemme d'encadrement :

Soit ab

et cd

deux fractions irréductibles adjacentes et une fraction irréductible

pq

telle que ab<

pq<

cd

. On a : ab<

pq<

cd⇒ p>a+c et q>b+d .

Démonstration :

Soit ab

et cd

deux fractions irréductibles adjacentes.

À ces deux fractions on associe le points de coordonnées : (b ; a) et (d ; c) que l'on place dans le repère (O ; i⃗ ; j⃗) . On peut construire une nouvelle base vectorielle en utilisant les vecteurs définis par ces points et l'origine du repère. Ces vecteurs forment ce que l'on appel une ℤ -base[1] car les fractions sont adjacentes.

Soit pq

un rationnel positif tel que :

ab<

pq<

cd

Le point qui lui est associé et (q ; p)

[1] Ici, on a muni le plan ℝ2 d'une base orthonormée. On a formé une autre base en prenant deux fractions

adjacentes, auxquelles on a associé des points puis des vecteurs. Cependant, à chaque rationnel on a associé un

couple d'entiers relatifs. (ℤ ;+;∗) est un anneau commutatif i.e. (ℤ ;+) est un groupe abéliens ( la loi +

est commutative) et la loi ∗ est commutative, associative et distributive par rapport à +. Soit ℤ2 un ℤ -

module de (ℤ ;+;∗) . Ce module est libre et de type fini car tous les éléments de ℤ2 peuvent être engendrés

par la base B={( ba) ;( d

c )} (voir résolution du système matriciel : quel que soit p et q on trouve toujours x

et y appartenant à Z tels que ( qp) est engendré par les vecteurs de la base B ). Cette base est appelée ℤ -base

car c'est une base d'un ℤ -module libre (comme ce module est définit sur un anneau commutatif, on ne fait pas la différence entre module à gauche et module à droite). Dans ce cas on ne considère plus la base comme une base du

ℝ -espace vectoriel ℝ2 mais comme une base du ℤ -module libre ℤ2

.

14/31

Page 15: Addition

Regardons l'expression de ce vecteur dans notre ℤ -base.

On résout le système : ( ba

dc )( x

y)=( qp)

Comme ( ba

dc ) est de déterminant 1, selon Cramer on a : x=∣qp d

c∣ et y=∣ba qp∣ .

D'après l'hypothèse on a : qc> pd⇒qc− pd >0 et bp>aq⇒bp−aq>0 . D'où

x , y⩾1 et donc que le vecteur ( qp) est combinaison à coefficients entiers

strictement positifs de ( ba) et (dc) .

soit :

( qp)=x( b

a)+ y(dc)⇒ p>a+c et q>b+d .

À chaque intervalle I, dont les bornes sont deux rationnels positifs adjacents, on défini une application µ∗:ℚ+→ℕ comme étant la somme des numérateurs et dénominateurs des fractions composant les bornes de I.

Soit : I=] ab

; cd[

µ∗(I )=a+b+c+d

Proposition 3.2 :

Soit I un intervalle, dont les bornes sont deux fractions irréductibles positives adjacentes. Si on coupe cet intervalle en deux grâce à la médiation des bornes, on a

I ] ab

; cd[=]

ab

; ab⊕

cd]∪]

ab⊕

cd

; cd[ . En notant I g=]

ab

; ab⊕

cd[ et

15/31

fig. 3-2: Illustration du lemme d'encadrement

Page 16: Addition

I d=]ab⊕

cd

; cd[ on a : µ∗(I g) , µ∗( I d)>µ∗(I ) .

Démonstration : Si on coupe l'intervalle I en deux grâce à la médiation des bornes de l'intervalle tel que l'on est : I= I g∪ I d on a par le lemme d'encadrement et par la propriété iv :

µ∗(I d )et µ∗(I g)>µ∗(I ) . En effet I=] ab

; cd[ entraîne que

I g=]ab

; a+cb+d

]et I d=[a+cb+d

; cd[ , donc que :

µ∗(I g)=2a+2b+c+d >a+c+b+d=µ∗( I ) et

µ∗(I d )=2c+2d+a+b>a+c+b+d=µ∗(I ) (rappelons que ab⊕

cd

est simple car I

est un intervalle à bornes adjacentes).

Raisonnement par l'absurde :

Supposons qu'il existe un rationnel r= pq

n'apparaissant pas dans l'arbre de Stern-

Brocot. Cependant, même si r n'appartient pas à une des suites de Stern-Brocot, il existe deux fractions adjacentes encadrant r et qui appartiennent à l'arbre. On a :

∀ n∈ℕ ,∃k∈ℕ ,∃ I n=]bnk ;bn

k+1 [avecδ(bnk+1 ;bn

k )=1 ; r∈I n .

(I n) est une suite d'intervalles ouverts contenant r, et dont les bornes sont des

fractions adjacentes consécutives dans la suite Bn de Stern-Brocot. On passe de

I n à I n+1 en coupant l'intervalle I n grâce à la médiation de ses bornes puis en

gardant l'intervalle contenant r. La suite (I n) est infinie car r n'appartenant pas à

l'arbre il ne peut pas être la médiante de deux bornes d'un intervalle (I n)

appartenant à l'arbre. I n+1 est soit I d ou I g d'où d'après la proposition 3.3 :

µ∗(I n+1)>µ∗( I n) . Ceci montre que la suite (µ∗( In)) est strictement

croissante. De plus, on a µ∗:ℚ+→ℕ . (µ∗( In)) est une suite d'entiers

strictement croissante donc elle diverge à l'infinie. Or d'après le Lemme

d'encadrement on a en notant I n=]an

k

cnk

;ak+1

cnk+1

[ on obtient :

µ∗(I n)< p+q car p>ank+an

k+1 et q>cnk+cn

k+1

ce qui est absurde : une suite strictement croissante et divergeant à l'infinie ne peut pas être majorée par un entier.

D'où : ''Tous rationnel positif apparaît dans l'arbre de Stern-Brocot''.

16/31

Page 17: Addition

Partie 4- Annexe : Comment trouver un rationnel dans la suite de suites de Stern-Brocot ?

Dans cette partie, nous établirons et démontrerons deux autres propriétés de la suite de suites de Stern-Brocot. Ces propriétés vont nous permettent par la suite d'écrire un algorithme capable de trouver les plus petits entiers n et k tel qu'un rationnel, entré en paramètre, apparaisse dans la suite Bn .

I-Propriétés

Dans ce qui suit, num(bnk ) et den (bn

k ) désignent respectivement le numérateur et

le dénominateur de bnk .

Prop ositon 4.1 : ∀ n∈ℕ ,∀ k∈{0 ; ... ; 2n }∣num(bnk )=num(bn+1

k ) [1].

Démonstration : Il est évident que pour k=0, la propriété est vraie. Par construction des suites de

Stern-Brocot 01

est le premier élément de la suite B0 et donc de toute les suite

Bn .

Démontrons d'abord que num (bn1)=1 pour tout n entier naturel.

Pour n = 0 :

on a b01=

10

et b11=b0

0⊕b01=

01⊕

10=

11

d'où num(b01)=num(b1

1)=1

La propriété est vraie au rang n=0.

Si k≡0 [2 ] (k pair)

Soit p un entier naturel non nul tel que num(bnp)=num(bn+1

p ) . Selon la propriété

2.a on a bnp=bn+1

2p et bn+1p =bn+2

2p . D'où num(bn+12p )=num (bn+2

2p ) .

On vient de démontrer num(bnk )=num (bn+1

k ) uniquement pour k étant un entier

pair.

[1] En effet, Bn comporte 2n+1 éléments. Mais comme on commence à indicer à partir de 0, les éléments

bnk

pour 2n<k n'existent pas.

17/31

Page 18: Addition

Si k≡1 [2] (k impair).

Par construction des suites de Stern-Brocot, on a : ∀ n∈ℕ ;bnk−1⊕bn

k+1=bnk . k-1

et k+1 sont pairs puisque k est impair. On a donc num (bnk−1)=num(bn+1

k−1) et

num(bnk+1)=num(bn+1

k+1) .

bnk−1 et bn

k+1 sont consécutifs dans Bn−1 , donc leur addition du cancre est

simple.

D'où num(bnk−1⊕bn

k+1)=num(bnk−1)+num (bn

k−1) .

Or num (bnk−1)=num (bn+1

k−1) et num (bnk+1)=num(bn+1

k+1) . Par conséquent on a :

num(bnk )=num (bn+1

k ) .

On vient de montrer que num (bnk )=num (bn+1

k ) est aussi vrai pour k impair.

Donc ; ∀(n , n' , k )∈ℕ3 ;n '≠n ;0≤k≤2n ; num(bnk )=num(bn '

k ) .

Prop o sition 4.2 :

∀ n∈ℕ ,∀ k∈{0 ; ... ; 2n }∣den (bn+1k )=den(bn

k )+num(bnk) .

D émonstration :

Pour n=0 :On a :

B0=( 01

; 10 ) .

B1=( 01

; 11

; 10) .

On a bien : den (b10)=den(b0

0)+num (b00) et den (b1

1)=den (b01)+num(b0

1)

La propriété est varie au rang n=0.Si k≡0 [2 ] (k pair)

Soit p un entier naturel non nul tel que den (bn+11 )=den (bn

1)+num (bn1) . D'après la

propriété 2.a on a bnp=bn+1

2p et bn+1p =bn+2

2p .

D'où den (bn+22p )=den(bn+1

2p )+num(bn+12p ) .

On vient de démontrer den (bn+1k )=den (bn

k )+num(bnk ) uniquement pour k=1 ou

bien k étant un entier pair.

18/31

Page 19: Addition

Si k≡1 [2] (k impair)

Par construction des suites de Stern-Brocot, on a : ∀ n∈ℕ ;bn+1k−1⊕bn+1

k+1=bn+1k . k-

1 et k+1 sont pairs puisque k est impair. On a :

den (bn+1k−1)=den(bn

k−1)+num(bnk−1) et den (bn+1

k−1)=den(bnk+1)+num (bn

k+1) .

Donc : den (bn+1k )=den (bn

k−1)+num(bnk−1)+den (bn

k+1)+num(bnk+1) , car :

bn+1k−1=bn

k−12 et bn+1

k+1=bn

k+12 sont consécutifs dans Bn , donc adjacents.

Or on a : bnk−1⊕bn

k+1=bnk . D'où den (bn

k )=den(bnk−1)+den (bn

k+1) et

num(bnk )=num(bn

k−1)+num(bnk+1) .

On obtient : den (bn+1k )=den (bn

k )+num(bnk ) .

On vient de montrer que den (bn+1k )=den (bn

k )+num(bnk ) est aussi vrai pour k

impair.

Donc : ∀(n , k)∈ℕ2 ;0≤k≤2n−1 ; den(bn+1k )=den (bn

k )+num (bnk ) .

Généralisation de la prop osition 4.2 :

∀(n' , n , k )∈ℕ3 ;n '>n ;0≤k≤2n ;den (bn 'k )=den (bn

k )+(n '−n)num(bnk ) .

Démonstration :

Si n'= n+1, on retombe sur la propriété 4.2.

Soit p un entier naturel strictement supérieur à n+1 tel que :

den (b pk )=den (bn

k )+( p−n)num (bnk ) . Montrons sous cette hypothèse que

den (b p+1k )=den (bn

k )+( p+1−n)num(bnk ) .

Par application de la propriété 4.2 on a :

den (b p+1k )=den (b p

k )+num(b pk )=den(bn

k)+( p−n)num(bnk)+num(b p

k ) .

Or selon la propriété 4.1 on a num(b pk )=num(bn

k) .

D'où : den (b p+1k )=den (bn

k )+( p+1−n)num(bnk ) .

On obtient :

∀(n' , n , k )∈ℕ3 ;n '>n ;0≤k≤2n ;den (bn 'k )=den (bn

k )+(n '−n)num(bnk )

19/31

Page 20: Addition

Proposition 4.3 : Corollaire des propositions 4.1 et 4.2

La combinaison de la propriété 4.1 et 4.2 nous donne :

(R):bn+1k =

num(bnk)

den(bnk )+num(bn

k)avec la restriction suivante sur k : 0≤k≤2n .

Cela veut dire qu'il existe un élément bnk pour une valeur k donnée, tel que la

formule donné ci-dessus ne fonctionne pas . Pour chaque suite Bn il y a

2n+1−2n−1−1=2n−1 éléments qui ne vérifient pas (R), ce sont les éléments

bnk avec 2n−1+1≤k≤2n . On note l'élément qui pour un cas donné ne vérifie

pas (R) : blk . D'après la généralisation de la propriété 4.2 (R) devient :

∀(n , l , k )∈ℝ3 ; n≥l ; 0≤k≤2l ∣(R ' ) :bnk=

num(blk )

den (blk )+(n−l)num(bl

k ).

On définit une application f :ℚ+→ℚ+ tel que f :bnk→bl

k .

P rop osition 4.4 :

On peut retrouver blk , si l'on connaît un élément bn

k grâce à la relation :

blk=

num (bnk )

roù r est le reste de la division euclidienne de den (bn

k ) par

num(bnk ) .

D émonstration :

D'après la proposition 4.3, on a :

∀(n , l , k )∈ℝ3 ; n≥l ; 0≤k≤2l ∣(R ' ) :bnk=

num(blk )

den (blk )+(n−l)num(bl

k )

On obtient alors : den (bnk )=den(bl

k )+(n−l )num(blk ) .

Or selon la proposition 4.1 il vient : num(bnk )=num (bl

k ) .

D'où : den (bnk )=den(bl

k )+(n−l )num(bnk ) .

Comme (n-l)>0 et que blk>1⇔den(bl

k )<num(blk )=num(bn

k ) .

On obtient bien que den (blk ) est le reste de la division euclidienne de den (bn

k )

20/31

Page 21: Addition

par num(bnk ) : den (bl

k )≡r [num(bnk)] .

D'après la propriété 4.4 on obtient f :

f (bnk ):=

num(bnk )

den(bnk )−E( den(bn

k)

num(bnk )) . num(bn

k )

où E( den(bnk)

num(bnk )) désigne la partie

entière de den(bn

k)

num (bnk )

.

Remarque :

1) ∀ n∈ℕ∣ f (bn0)=bn

0

2) ∀∈ℕ ,∀ k∈ℕ∗∣ f (bnk )=bn

k⇔k≥2n−1+1 , ce qui implique que f est

surjective et que l'application réciproque f est une application multivaluée.[2]

Prop osition 4.5 et 4.5' : ∀ n∈ℕ∣bn1=

1n

;bn2n−1=n

Démonstration :

On a b1=10

.

Et d'après le corollaire des propriétés 4.1 et 4.2 on a : bn1=

num(b1)

den(b1)+n num(b1).

Or den (b1)=0 et num(b1)¿=1 . Il vient : bn1=

1n

. Puis par application de 2.e

on a : bn2n−1=

1

bn1=n .

II-Algorithme

Pour réaliser l'algorithme capable de trouver les plus petits entiers naturels n et k tels qu'un rationnel q apparaisse pour la première fois dans une des suites Bn , nous

utiliserons les propriétés 2.e, 4.4, 4.5 4.5' et la fonction f définie plus haut

[2] Une application multivaluée est une application multivoque i.e qui à un élément de son ensemble de définition fait correspondre plusieurs éléments de l'ensemble d'arrivé.

21/31

Page 22: Addition

Algorithme de base :

On appel collecteur une liste de données. Ici se sera une suite de rationnels positifsSoit C un collecteur, on a:

.On note C i le (i+1)-ième élément de C car on commence à i=0.

On appel q le rationnel dont on veut obtenir la première position dans la suite de suites de Stern-Brocot. On suppose qu'il est déjà sous forme irréductible.

Dans ce qui suit, U,V et B sont des collecteurs et bnk=B(k , n) avec

B0=k et B1=n .

Lire q

Si q=10

alors on retourne b01

Si Si q∈ℕ∗

alors on retourne bn1

Si ∃n∈ℕ∗∣q=1n

alors on retourne bn2n−1

Tant que q∉ℕon met q dans USi q≠ f (q)

alors q := f (q)

Sinon q :=1q

Fin de Tant queOn inverse l'ordre des éléments de U#Les coordonnées seront mises dans le collecteur B

V 0 :=U 0

V 1:=U 1on applique 4.5 à U 0 :

B0=2U 0−1

B1=U 0

22/31

Page 23: Addition

V 0 :=U 0

V 1:=U 1on supprime U 0 et U 1

Tant que la taille de U ne vaut pas 0

Si V 1=1

V 0

alors on applique 2.e

B0 :=2B1−B0

Sinon f (V 1)=V 0

on applique la proposition 4.3 :

B1:=B1+E (den (V 1)

num(V 1))

On supprime U 0

Fin de Tant queOn retourne B

Exemple :

Danse cette exemple, on essais de trouver la première position de 57

.

On remonte à 52

en appliquant la la fonction f à 57

. Comme on ne peut pas

trouver directement la première position de 52

et que f (52)=

52

, on prend son

inverse 25

. Or on ne peut toujours pas trouver directement la position de 25

, on

23/31

fig. 4-1 : Les 6 premières suites de Stern-Brocot

Page 24: Addition

utilise alors la fonction f. On arrive sur 21

.

21

étant un entier, on peut trouver sa première position grâce à la propriété 4.5'.

D'après 4.5' on a : b23=

21

.

En appliquant la propriété 4.3 il vient :

den (25)=den (b2

3)+(n−2)num(b23)=5⇔1+2n−4=5⇔n=4 et donc b4

3=25

Par application de 2.e on trouve 52=

1

b43=b4

24−3=b4

13 .

52

étant le primitif de 57

il vient :

en appliquant la propriété 4.3 on a :

den (57)=den(b4

13)+(n−4)num(b413)=7⇔2+5n−20=7⇔n=5 .

D'où 57=b5

13 , ce qui se confirme grâce à la figure 4-1.

24/31

Page 25: Addition

Code Perl fonctionnel pour l'algorithme :

#usr/bin/perl!=headCe programme a été édité avec gedit sur UBUNTU 11.10 avec perl version 5.12Ce programme sert à trouver la première position à laquelle apparaît un rationnel dans l'arbre de stern-brocot.Pour faciliter la maniûlaion des rationnel, ici on représentera un rationnel par un tableau dont le premier élément contient le numérateur et le second le dénominateur du rationnel en question.Une des propriété qui fonde les bases de ce script, sont la symétrie de la suite de stern-brocot. Si l'on écrit les termes de la suite de stern-brocot les uns en dessous des autre en les alignant à gauche, on remarque que les éléments d'une même colone ont le même numérateur et que pour passer d'un élément à l'autre (dans la même colone) il suffit d'enlever ou de rajouter un multiple entier du numérateur.=cutsub part {#cette fonction sert à récupérer le numérateur et le dénominateur d'un rationnelmy ($str) = @_; #$str est une chaine de charactère content normalement un rationnelif(quotemeta($str) =~ /[a-zA-Z]+/)#si $str contient des lettres

{die "La chaine de caractères n'est pas valide";}

unless($str =~ /\//)#si $str ne contient pas / => $str est un entier{print $str." => ";$str .= '/1';#on modifie l'écriture de l'entier : a = a/1 avec a entier naturelprint $str."\n";}

my @parts = split('/',$str);#on sépare la chaine $str selon le motif / @parts contient le numérateur et le dénominateur de $strif ( scalar(@parts)==2)#ceci est un test : si la taille de @parts ne vaut pas 2, alors on ne peut pas continuer l'éxécution du programme

{return \@parts;}

else{die "La chaine de caractères n'est pas valide";}

}sub pgcd{#cette fonction sert à retourner le pcgd de deux entier fournis en paramètre

25/31

Page 26: Addition

en utilisant l'algorithme d'euclidemy (@nb) = @_;#récupération des deux entiers dans @nbmy ($a,$b,$r)=(0,0,1);

if ($nb[0]<=$nb[1])#pour réaliser l'algorithme, il faut que le premier élément de @nb soit plus grand que le premier (cela évite une boucle de moins). Si ce n'est pas le cas, on intervertit les deux élément de @nb

{@nb = reverse(@nb);}

$a = $nb[0];$b = $nb[1];while($r != 0)

{$r = $a % $b;$a = $b;$b = $r; }

return $a;

}sub inv{#cette fonction sert a savoir si le premier rationnel est l'inverse du second rationnel, fournis en paramètremy ($arr1, $arr2) = @_;my @ar1 = @{$arr1};my @ar2 = @{$arr2};if ($ar1[0] == $ar2[1] && $ar1[1] == $ar2[0])#si le numérateur du premier ratinnel vaut le dénominateur du second rationnel et si ledénominateur du premier rationnel vaut le numérateur du second rationnel

{return 1;#alors on retourne 1 (considérer comme la valeur vraie)}

else{return 0;#sinon on retourne 0 (considéré comme la valeur fausse)}

}system"clear";#appel system permettant de nettoyer la console sous un système de type UNIX. Sous Windows NT cette ligne doit être remplacée par system"cls"; print "Bonjour, entrer un rationel positif.\nLes coordonnées retournées seront de la forme B(k;n) pour 0<= k <= 2^n\n"; my $chaine = <>;#on demande à l'utilisateur de saisir un rationnelchomp($chaine);#on retire le retour chariot du a la validation de l'entrée de

26/31

Page 27: Addition

l'utilisateurif ($chaine eq '')#si $chaine ne contient rien on lui affecte la valeur 0

{$chaine= 0;}

my @B = (0,0);#déclaration et initialisation de @Bmy @q = @{part($chaine)};#déférence le résultat retourner par la méthode parts, @q contient le numérateur et le dénominateur du rationnel entré par l'utilisateurmy $g;unless($q[0] == 0 || $q[1] == 0)#si le dénominateur ou (inclusif) le numérateur ne vaut pas 0

{$g = pgcd(@q);#alors $g contient le pgcd des deux entiers contenu dans @q}

else{goto LAB0;#sinon on va à LAB0}

if ($g != 1)#si le pgcd des entiers de @q ne vaut pas 1 { print $chaine." => "; $q[0] /= $g; #alors on peut simplifie la fraction entrée au début du

programme$q[1] /= $g; $chaine = join('/',@q); print $chaine."\n";}

LAB0:$chaine = join('/',@q);if ($q[0] !=1 && $q[1] ==1)#si le rationnel est un entier (dénominateur valant 1)

{@B = ((2**$q[0])-1,$q[0]);#on utilise une des propriété de la suite de stern-

brocot pour donner la position du rationnel saisi.goto FIN;#on se rend au label FIN : le programme est terminé}

elsif($q[0] ==1 && $q[1] !=1)#si le rationnel est l'inverse d'un entier (numerateur valant 1)

{@B = (1,$q[1]);#on utilise une des propriété de la suite de stern-brocot pour

donner la position du rationnel saisi.goto FIN;#on se rend au label FIN : le programme est terminé}

27/31

Page 28: Addition

my ($a,$b,$r)=($q[0],$q[1],0);#initialisation et affectation. $a contient un numérateur et $b un dénominateurmy (@col,$tmp);#déclarationwhile($b > 1)#tant que l'on n'arrive pas à un entier

{$col[scalar(@col)] = $a;#on met le rationnel $a/$b dans @col$col[scalar(@col)] = $b;#if ($a>= $b)#si le rationnel $a/$b est plus grand que 1

{($a,$b) = ($b,$a);#alors on inverse les valeurs $a et $b, mais pas les

variables}

else{goto LAB1;#sinon on se rend au LAB1}

$col[scalar(@col)] = $a;#on met le rationnel $a/$b dans @col$col[scalar(@col)] = $b;#LAB1:$r = $b % $a;#$r contient le reste de la divion euclidienne de $b par $a$b = $r;}

$col[scalar(@col)] = $a;#on met le rationnel $a/$b dans @col$col[scalar(@col)] = $b;#my @tab;#déclarationforeach my $g (1..(($#col+1)/2))#deux entier consécutif (en partant du premier élément) forme un rationnel dans @col. on veut inverser l'order de ces rationnels, il faut donc traiter les élément par groupes de deux {$tab[scalar(@tab)] = $col[$#col- 1];#on stocke l'avant dernier et le dernier élément de @col dans @tab$tab[scalar(@tab)] = $col[$#col];####@col = reverse(@col);#on inverse l'ordre des éléments de @colshift(@col);#on supprime les deux premiers éléments de @colshift(@col);#@col = reverse(@col);#on inverse l'ordre des éléments de @col}@col = @tab;#on affecte a @col le tableau @tabmy $count = 0;#déclaration et initialisation de $countmy (@temp, @temp2);#déclaration de @temp et de @temp2.ces deux tableau seront utilisés pour établir un lien entre ls deux rationnel qu'ils représenterontmy $res;while(scalar(@col)!=0)#tant que @col n'est pas un tableau vide

28/31

Page 29: Addition

{if ($count == 0)#si $count vaut 0, cette variable nous permet de savoir que c'est

la première fois que la boucle while est éxécutée{@temp = @col[0..1];#on affecte à @temp la tranche @col[0..1] i.e. le

premier rationnel que contient @col : celui dont on peut donner la position facilementforeach my $i (0..1)#on supprime les deux premier éléments de @col,

i.e. le premier rationnel de @col{shift(@col);}

if ($temp[0] == 0 && $temp[1] == 1)#si le rationnel décrit par @temp vaut 0/1

{@B= (0,0);#alors on affecte la position (0,0) à @B}

elsif($temp[0] == 1 && $temp[1] == 0)#si le rationnel décrit par @temp vaut 1/0

{@B = (1,0)#alors on affecte la position (1,0) à @B}

elsif($temp[0] == 1 && $temp[1] ==1)#si le rationnel décrit par @temp vaut 1/1

{@B=(1,1);#alors on affecte la position (1,1) à @B}

elsif ($temp[0]==1 && $temp[1] != 0 && $temp[0]<$temp[1])#si le rationnel décrit par @temp est l'inverse d'un entier

{@B = (1,$temp[1]);#alors on affecte la position (1,$temp[1]) à @B}elsif ($temp[1]==1 && $temp[0]>$temp[1])#si le rationnel décrit par

@temp est un entier{@B = (2**$temp[0]-1,$temp[0]);#alors on affecte la position

(2**$temp[0]-1,$temp[0]) à @B}$count++;#incrémentation de $count@temp2 = @temp;#on affecte @temp à @temp2goto LAB2;#on se rend au label LAB2}

else{#il est important de savoir que le tableau @B contient toujours la

29/31

Page 30: Addition

position de @temp2@temp = @col[0..1];#sinon ($count !=0) on affecte à @temp la tranche

@col[0..1] i.e. le premier rationnel que contient @col : celui dont on peut donner la position facilement

foreach my $i (0..1){shift(@col);#on supprime les deux premier éléments de @col, i.e.

le premier rationnel de @col}

my $bool = inv(\@temp,\@temp2);#on fournis deux rationnels à la méthode inv et cette dernière nous dis si @temp et l'inverse de @temp2et réciproquement

if($bool == 1)#si oui{@B = ((2**$B[1])-$B[0],$B[1]);#on utilise la propriété de

symétrie de la suite de stern-brocot@temp2 = @temp;#on affecte @temp à @temp2goto LAB2;#on se rend au label LAB2}

elsif ($temp[0]==$temp2[0] && $temp[1] != $temp2[1])#sinon, si les rationnels représentés par @temp et @temp2 ont le même numérateur alors ils se trouve ils possédent le même indice k mais pas le même indice n (c'est la deuxième propriété énoncé au début du script)

{$res = ($temp[1] - ($temp[1]%$temp[0]))/$temp[0];#$res contient

le quotient de la division euclidienne de $temp[1] par $temp[0]if ( $res>0)

{@B= ($B[0], $B[1]+$res);@temp2 = @temp;#on affecte @temp à @temp2goto LAB2;#on se rend au label LAB2}

}

}LAB2:}

FIN:print $chaine." = B(".$B[0].";".$B[1].")\n";#on affiche la position du rationnelentré par l'utilisateur<STDIN>;

30/31

Page 31: Addition

Sources

Conférence vidéo de Claude Quitté et Marie-Eve Modolo, chercheurs en mathématiques :http://www.irem.univ-paris-diderot.fr/videos/autour_de_larbre_de_stern_brocot/

Article de Robert Ferréol : Addition des cancres, Suites de Brocot et friandises associées.

Site Anglais sur l'arithmétique : http://www.cut-the-knot.org/blue/Stern.shtml

PDF sur les outils mathématiques pour la géométrie discrète : http://hal.archives-ouvertes.fr/docs/00/34/64/41/PDF/chapitre.pdf

31/31