Sunteți pe pagina 1din 31

Caillaux Jonathan Dalibard Raphal Debelle Kevin

L1SM Gr 2

Atelier Pdagogique : Addition du cancre

Sous la direction de :

M.Durieu

U.F.R Sciences et techniques


1/31

Table des matires


Introduction :........................................................................................................................................3 Partie I : L'addition du cancre...............................................................................................................4 Dfinition :.......................................................................................................................................4 Conventions :...................................................................................................................................4 Proprits :.......................................................................................................................................5 Partie 2 : Les suites de Stern-Brocot....................................................................................................7 Construction :...................................................................................................................................7 Proposition 2.1 : .............................................................................................................................7 Proposition 2.2 : ..............................................................................................................................8 Proprits : ......................................................................................................................................9 Proposition 2.3 :.............................................................................................................................11 Partie 3 : Tous les rationnels positifs apparaissent dans l'arbre de Stern-Brocot...............................13 Proposition 3.1 : ............................................................................................................................13 Lemme d'encadrement : ................................................................................................................14 Proposition 3.2 : ............................................................................................................................15 Raisonnement par l'absurde :.........................................................................................................16 Partie 4- Annexe : Comment trouver un rationnel dans la suite de suites de Stern-Brocot ?.............17 I-Proprits.....................................................................................................................................17 II-Algorithme.................................................................................................................................21 Algorithme de base :.................................................................................................................22 Exemple :..................................................................................................................................23 Code Perl fonctionnel pour l'algorithme :................................................................................25 Sources...............................................................................................................................................31

2/31

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 opration rvlant biens des proprits. Cette opration se nomme la mdiante 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 diffrente de l'addition usuelle. Dans un premier temps, nous dfinirons l'opration de mdiante. Puis, nous nous intresserons aux suites de Stern-Brocot afin d'en dgager quelques proprits. Ensuite nous fournirons la dmonstration de la proposition suivante :''Tout rationnel positif apparat, partir d'un certains rang, dans les suites de Stern-Brocot''. Enfin, en annexe nous donnerons un algorithme capable de trouver la premire position d'un rationnel dans les suites de Stern-Brocot, tout en ayant auparavant expos les proprits utilises par l'algorithme.

3/31

Partie I : L'addition du cancre


Dfinition :
On dfinit la mdiante de deux rationnels positifs x et y comme tant le rationnel positif z dont le numrateur est la somme des deux numrateurs de x et y et le dnominateur est la somme des deux dnominateurs de x et y. On note cette opration. Soit : a c a c a+ c , + {+ }; = . b d b d b +d Pour effectuer l'opration, il faut avant tout s'assurer que nous avons pour x et y les uniques critures telles que : a c x , y + {+ } ; x = et y = pcgd ( a ;b )= pgcd ( c ; d )= 1 ; a , c 0 et b , d 0 b d . En d'autres termes, pour effectuer x y il faut prendre les formes irrductibles de x 1 3 et y. En effet, si on prend et le mdian de ces fractions est alors : 2 5 1 3 1+ 3 4 1 = = . Maintenant, si on prend une autre criture de , soit 2 et 4 2 5 2 +5 7 2 2 3 que l'on ralise l'opration de mdiante entre et on a :
4 5

2 3 2 +3 5 4 1 3 = = = . 4 5 4 +5 9 7 2 5 Avant de raliser l'addition du cancre entre deux fractions, il faut s'assurer que l'on ait des fractions sous formes rduites i.e. irrductibles.

Conventions :
On note l'lment neutre de l'addition usuelle 0 par 0 . L'addition du cancre ne 1 possde pas d'lment neutre. 1 On note + par . 0 On note + {+ } par + . a c On dit que et simple si et seulement si pgcd ( a + c ;b + d )=1 i.e. la b d fraction est obtenue directement sous forme irrductible.

4/31

Proprits :
Dans ce qui suit a c x = et y = sont deux fractions positives irrductibles prises b d

dans + . i) L'addition du cancre est commutative. Dmonstration : a c a + c c+ a c a = = = b d b +d d +b d b ii) L'addition du cancre n'est pas associative. Contre-exemple : 1 2 5 1 5 3 1 2 5 1 7 4 3 4 . = = et = = . Or 2 1 3 1 3 2 2 1 3 2 4 3 2 3

( )

( )

iii) L'addition du cancre n'est pas distributive par rapport la multiplication usuelle. Contre-exemple : 1 3 2x4 8 2x1 2x3 1 6 7 8 7 2 ( )= = et = = . Or . 2 5 7 7 2 5 1 5 6 1 6 a c a c iv) n ;n +( )=( n + )( n + ) b d b d Dmonstration : a c b.n + a d.n + c ( n + )( n + )= . Or bn + a a [ b ] et dn+ c c [ d ] d'o b d b d pgcd ( bn + a ;b )= pgcd ( dn + c ; d )=1 . b.n + a d.n + c b.n + a + d.n + c n ( b + d )+ a + c a c = = = n +( ) . b d b+d b +d b d a c a c Remarque : on peut de mme dmontrer n ;n ( )=( n )( n ) b d b d

5/31

v)

a a c c b b d d

Dmonstration : a c b ( )+ d ( ) a c a +b b d . = = b d c+d b+ d a c et . D'aprs la rgle des nombres de b d Nicolas Chuquet , une moyenne est comprise entre les deux extremums quelle a a c c contient. D'o : . b b d d Remarque : x y = x = y x = y
a c est une moyenne pondre de b d

vi)

1 1 1 = x y xy

Dmonstration : a c x = et y = b d 1 1 b d b+ d 1 1 = = = = . x y a c a + c a+ c x y b +d vii) x , y 1 x y =1 x =
1 y
[1]

Dmonstration : a c a +c x y =1 = 1 =1 a + c =b + d or on a : x , y 1 a b et c d . b d b+ d 1 D'o a =d et b = c x = y

[1] Ici on prend x , y 1 car si on en prend un valant l'unit cela n'a pas dintrt car l'inverse de un c'est un. Cela est prouv par la proprit V.

6/31

Partie 2 : Les suites de Stern-Brocot.


Les suites de Stern-Brocot forment une suite infinie de suites finies. Chaque suite peut tre considres comme une suite de coordonnes. On note B n une suite de Stern-Brocot. On dit que deux fractions x= a et b y= c irrductibles avec x<y sont adjacentes d c a vaut 1. On notera se dterminant : db

si et seulement si le dterminant ( y ; x ) .

Construction :
La premire suite de Stern-Brocot est la suite B 0 telle que : 0 1 B 0=( ; ) . 1 0 On obtient la suite B n +1 partir de la suite B n en insrant entre deux lments conscutifs de B n leurs mdiantes. Ainsi on a : 0 1 B 0=( ; ) 1 0 0 0 1 1 0 1 1 B 1=( ; ; )=( ; ; ) . 1 1 0 0 1 1 0 0 0 1 1 1 1 1 0 1 1 2 1 B 2=( ; ; ; ; )=( ; ; ; ; ) 1 1 1 1 1 0 0 1 2 1 1 0 Et ainsi de suite.

Proposition 2.1 :
Une suite B n comporte 2 n + 1 lments. Dmonstration : Pour n=0 on a : 0 Card ( B 0 )=2 et 2 +1 =1 +1 = 2 . La proprit est vraie au rang n=0. Soit p un entier naturel non nul tel que hypothse que Card ( B p +1 )=2 p +1 + 1 .
Card ( B p )= 2 p+ 1 . Montrons sous cette

7/31

Par construction des suites de Stern-Brocot, on obtient chaque rationnel de Bp B p leur mdian. On a intercal pour obtenir B p +1 .

B p +1 en intercalant entre
2 p lments entre ceux de

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 proprit est vraie au rang p+1 et donc de proche en proche, la proprit est vraie pour tout entier naturel n. Soit : n ;Card ( B n)= 2 n+ 1 On notera la (k+1)-ime coordonne de B n : b k pour k variant de 0 2 n . n

Proposition 2.2 :
Soit n et n' deux entiers naturels non nul tel que n < n'. Llment de coordonne
2 bk dans la suite B n , aura comme coordonne b( n n'
n' n

)k

dans la suite B n ' .

Pour n' = n , on a :
2 b( n'
n' n

)k

2 = b( n

n n

)k

k =b n .
pn

La proprit est vraie au rang n'=n.


2 =b(p Soit p un entier naturel strictement suprieur n tel que b k n 2 =b(p sous cette hypothse que b k n
p + 1 n

)k

. Montrons

)k

. 2 p n lments. D'o, dans B p +1 :

Pour construire

B p +1 , on introduit la mdiante deux termes conscutifs en ces


2 b(p )k
p n

deux termes. Entre llment


2 b(p +1
p n

)k

et

b0 on peut introduire p comme coordonne

) k + 2 p n

2 b(p

p n

aura
)k

2 =b(p +1

p +1 n

(on commence indicer partir de zro).

En supposant que la proprit est vraie au rang p, on a montr qu'elle est vraie au rang p+1. Soit de proche en proche, la proprit est vraie por tout entier naturel n'. Ceci implique que pour tout lment b k , si k est pair alors l'lment est dj n apparu dans une suite antrieure la suite B n .

8/31

Proprits :
Par construction de la suite de Stern-Brocot on a : +1 +1 b k = b 2k 2.a) b k n n n+ 1 La proprit 2.a est immdiate par construction de la suite de suites de Stern-Brocot. Cette proprit implique que pour tout lment b k , si k est impair alors c'est la n premire fois que l'lment apparat dans a suite de suite de Stern-Brocot. Pour tout entier n et k n et 0 k 2 n on a : 2.b) 0 b0 = n 1
n

2.c) = 1 bk n

b2 n

1 = 0

2 n 1 1 2.d) b = n 1

2.e) b 2 n

Pour tout entier n et k n et 0 k 2 n 1 : 2.f) b 2 n


n 1

Pour tout entier n et k n et 2n 1k 2n : 2.g) b 2 n . = 1+ bk n n 0 1 2 = b = dcoulent de la construction des suites de SternLes proprits b 0 et n 1 n 0 Brocot : se sont les deux termes extrmes des suites. 2 n 1 1 Dmonstration de la proprit 2.d : n b = n 1 Pour n= 1 (1 n'est pas prsent dans la suite B 0 ). 1 = On a bien b 1 . La proprit est vraie au rang n=1. 1 1 p 1 1 Soit p un entier naturel non nul tel que b 2 = . Montrons sous cette hypothse p 1 p 1 = . que b 2 p +1 1 1 2 p p + 1 .2 p 1 2.2 p1 2 p = b p+ 1 =b p + 1 = b p + 1 . Selon la proposition 2.2, on a : 1 En supposant que la proprit est vraie au rang p, on a montr qu'elle est vraie au rang p+1. Soit de proche en proche, la proprit est vraie pour tout entier naturel n.
n 1

. = 1 b k n

+k

9/31

Dmonstration de la proprit 2.e : n , k ; 0 k 2 n b 2 n Pour n=0, on a ; 0 1 . B0= ; 1 0 La proprit est vraie au rang n=0. Si k 0 [ 2 ] (k pair) : D'aprs la proposition 2.2 on obtient : n n +1 1 k 2 2k b2 = b = . n n +1 b 2k n+ 1

1 bk n

( )

Si k 1 [ 2 ] (k impair) : En appliquant la proprit a des suites de Stern-Brocot puis la proprit vi) de l'addition du cancre on obtient : n n n 1 1 1 1 k 2 k 1 2 k +1 b2 = b b = = = . n n n k +1 k 1 k1 k +1 k bn bn bn bn bn Dmonstration de la proprit 2.f : Pour n=1 on a : 0 1 1 k = 1 b k . b1 . B1= ; ; 1 1 1 1 0 Or k { 0 ; 1 } . Si k=0 on a : 1 b1 = et 1 b 0 =1 0 =1 . 1 1 1 Si k=1 on a : 0 = 1 1= 0 . b0 = et 1 b 1 1 1 1 La proprit est vraie pour n=1. Si k 0 [ 2 ] (k pair) : D'aprs la proposition 2.2 on obtient : n , k {0...2n 1 } b2 n
n 1

=1 b k n

k 2 2k 2k . b2 = 1 b k n n b n +1 =1 b n + 1 Si k 1 [ 2 ] (k impair) : En appliquant la proprit 2.a des suites de Stern-Brocot puis la proposition 2.2 on a : k k1 k +1 k 1 k +1 b2 = b2 b2 b2 =( 1 b k n n n n n )( 1 b n ) . D'aprs la proprit iv) de l'addition du cancre :
n 1 n 1 n 1 n 1

n 1

10/31

k k 1 +1 2 k 1 k +1 b2 =( 1 b n )( 1 b k =1 ( b k n n ) b n n bn ) . Enfin, d'aprs la proprit a) des suites de Stern-Brocot on a :

n 1

n 1

b2 n

n 1

k 1 k+1 = 1( b n b n ) b 2 n

n 1

k . = 1 b n
n 1

Dmonstration de la proprit 2.g : n , k {0...2n 1 1 }b 2 n Pour n=1 on a : 0 1 1 +k = 1+ bk . b1 . B1= ; ; 1 1 1 1 0 Or k =0 . Si k=0 on a : 1 0 1 + b =1 + 0 = 1 . b1 = et 1 1 1 Si k=1 on a : 1 b2 = et 1 + b 1 =11 =0 . 1 0 La proprit est vraie pour n=1. Si k 0 [ 2 ] (k pair) : D'aprs la proposition 2.2 on obtient :

+k

=1 + b k n

+k 2 + 2k 2k b2 = 1+ bk n n b n + 1 =1 + b n + 1 . Si k 1 [ 2 ] (k impair) : Grce la construction des suites de Stern-Brocot puis par application de la proposition 2.2 on a :

n 1

2 n 1 k est impair donc la somme des cancres de ses deux voisins) D'aprs la proprit iv) de l'addition du cancre :
k 1 k+1 2 k 1 k +1 b2 =( 1 + b k =1 +( b k n n )( 1 + b n ) b n n b n ) . Enfin, d'aprs la proprit a) des suites de Stern-Brocot on a :
n 1 n 1

b2 n

n 1

= b2 n

n 1

k1

b2 n

n 1

k +1

b2 n

n 1

1 k +1 =( 1 + bk n )( 1 + b n ) (car

b2 n

n 1

1 k+1 2 = 1 +( b k n b n ) b n

n 1

=1 + b k n .

Proposition 2.3 :
Deux lments conscutifs d'une suite B n sont adjacents. Pour n=0 on a : 0 1 . B0= ; 1 0

( )

11/31

;b 0)= 1 . Avec ( b 1 0 0 La proprit est vrai au rang n=0. Soit p un entier naturel non nul tel que
+1 2k ;b p +1)=1 . hypothse que ( b 2k p +1 +1 k (bk ; b p)= 1 . Montrons sous cette p

Par application d'une des proprit du dterminant on obtient : +1 k +1 ( b k ; b p)= 1 ( b k b k ;b k )=1 . p p p p Par application de la proprit b) et de la proposition 2.2 on a : +1 +1 k + 1 2k ( b k bk ;b k )=1 ( b 2k ; b p)=1 ( b 2k ; b p+ 1 )=1 p p p p +1 p+ 1 Par construction des suites de Stern-Brocot, une fois qu'un lment apparat un certain rang n, on va le retrouver dans les rang suprieur n. Pour viter la redondance d'information, on peut reprsenter les suites de Stern-Brocot sous la forme d'un arbre binaire :

12/31

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


Dans cette partie nous dmontrerons les propositions qui permettent de dmontrer le thorme suivant : Thorme : q + ; n , k ; 0 k 2 n q =b k avec b k lment de la n n (n+1)-ime suite de Stern-Brocot. Pour la suite a,b,c et d dsignent des entiers naturels non nuls. On muni le plan d'un i ; j ) . chaque rationnel positif on associe un point tel repre orthonorm ( O ; que le rationnel reprsente le coefficient directeur de la droite forme par l'origine du repre et le point associ au rationnel.

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

Proposition 3.1 :
Soit deux fractions irrductibles adjacentes x = de ces deux fractions est simple. Dmonstration : a c Soit x = et y = deux fractions adjacentes avec b d a c < . On a alors : b d a et b y= c . L'addition du cancre d

13/31

c a =1 . Leur mdiante est : z = a + c . Les proprits du dterminant nous b+ d db permettent d'crire : ( y ; x )=( y ; z )=( z ; x )= 1 . ( z ; x )=1 a + c a =1 b ( a + c )a ( b + d )= 1 . Or d'aprs le thorme de b+ d b

Bzout : 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 a+ c eux, et donc que est irrductible. D'o x y est simple. b+ d

Lemme d'encadrement :
a c et deux fractions irrductibles adjacentes et une fraction irrductible b d p telle que a < p < c . On a : a < p < c p > a + c et q > b + d . b q d b q d q Dmonstration : a c Soit et deux fractions irrductibles adjacentes. b d ces deux fractions on associe le points de coordonnes : ( b ; a ) et ( d ; c ) que i ; j ) . On peut construire une nouvelle base l'on place dans le repre ( O ; vectorielle en utilisant les vecteurs dfinis par ces points et l'origine du repre. Ces vecteurs forment ce que l'on appel une -base[1] car les fractions sont adjacentes. Soit p un rationnel positif tel que : q a p c < < b q d Le point qui lui est associ et ( q ; p ) Soit
[1] Ici, on a muni le plan d'une base orthonorme. 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 abliens ( la loi + est commutative) et la loi module de

est commutative, associative et distributive par rapport +. Soit

( ; + ;) . Ce module est libre et de type fini car tous les lments de peuvent tre engendrs b ; d par la base B = (voir rsolution du systme matriciel : quel que soit p et q on trouve toujours x a c q est engendr par les vecteurs de la base B ). Cette base est appele -base et y appartenant Z tels que p car c'est une base d'un -module libre (comme ce module est dfinit sur un anneau commutatif, on ne fait pas la

un

{( ) ( ) }

()

diffrence entre module gauche et module droite). Dans ce cas on ne considre plus la base comme une base du

-espace vectoriel 2

mais comme une base du

-module libre 2 .

14/31

Regardons l'expression de ce vecteur dans notre -base. On rsout le systme : b d x = q ac y p Comme b d est de dterminant 1, selon Cramer on a : x = q d et y = b q . ac pc ap D'aprs l'hypothse on a : qc > pd qc pd > 0 et bp > aq bp aq > 0 . D'o q est combinaison coefficients entiers x , y 1 et donc que le vecteur p b et d . strictement positifs de a c soit : q = x b + y d p > a + c et q > b+ d . p a c

( )( ) ( )

( )

()

() ()

() () ()

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

chaque intervalle I, dont les bornes sont deux rationnels positifs adjacents, on dfini une application : + comme tant la somme des numrateurs et dnominateurs des fractions composant les bornes de I. a c I =] ; [ Soit : b d ( I )=a + b + c + d

Proposition 3.2 :
Soit I un intervalle, dont les bornes sont deux fractions irrductibles positives adjacentes. Si on coupe cet intervalle en deux grce la mdiation des bornes, on a a c a a c a c c a a c I ] ; [=] ; ]] ; [ . I g =] ; [ et En notant b d b b d b d d b b d
15/31

a c c I d =] ; [ on a : ( I g ) , ( I d )> ( I ) . b d d Dmonstration : Si on coupe l'intervalle I en deux grce la mdiation 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 proprit iv : a c ( I d ) et ( I g )> ( I ) . En effet I =] ; [ entrane que b d a a +c a +c c I g =] ; ] et I d =[ ; [ , donc que : b b+ d b +d d ( I g )= 2a + 2b + c + d > a + c + b + d = ( I ) et a c est simple car I ( I d )=2c + 2d + a + b > a + c + b + d = ( I ) (rappelons que b d est un intervalle bornes adjacentes).

Raisonnement par l'absurde :


p n'apparaissant pas dans l'arbre de Sternq Brocot. Cependant, mme 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 : k +1 k+1 k n , k , I n =] bk ;b [ avec ( b ;b n )=1 ; r I n . n n n Supposons qu'il existe un rationnel r = ( I n ) est une suite d'intervalles ouverts contenant r, et dont les bornes sont des fractions adjacentes conscutives dans la suite B n de Stern-Brocot. On passe de I n I n +1 en coupant l'intervalle I n grce la mdiation 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 mdiante de deux bornes d'un intervalle ( I n ) appartenant l'arbre. I n +1 est soit I d ou I g d'o d'aprs la proposition 3.3 : ( I n +1 )> ( I n) . Ceci montre que la suite ( ( I n )) est strictement croissante. De plus, on a : + . ( ( I n )) est une suite d'entiers strictement croissante donc elle diverge l'infinie. Or d'aprs le Lemme k +1 ak n a d'encadrement on a en notant I n=] k ; k + 1 [ on obtient : c n cn
+1 +1 ( I n )< p + q car p > a k +a k et q > c k + ck n n n n

ce qui est absurde : une suite strictement croissante et divergeant l'infinie ne peut pas tre majore par un entier. D'o : ''Tous rationnel positif apparat dans l'arbre de Stern-Brocot''.

16/31

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


Dans cette partie, nous tablirons et dmontrerons deux autres proprits de la suite de suites de Stern-Brocot. Ces proprits 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 paramtre, apparaisse dans la suite B n .

I-Proprits
k ) den ( b ) dsignent respectivement le numrateur et Dans ce qui suit, num ( b k et n n

le dnominateur de b k . n

)= num ( bk ) Propositon 4.1 : n , k { 0 ; ... ; 2 n } num ( b k n n+ 1

[1]

Dmonstration : Il est vident que pour k=0, la proprit est vraie. Par construction des suites de Stern-Brocot 0 est le premier lment de la suite B 0 et donc de toute les suite 1 Bn .
)=1 pour tout n entier naturel. Dmontrons d'abord que num ( b 1 n

Pour n = 0 : 1 1 0 1 0 1 1 b = b b = = = num ( b 1 )= num ( b 1 )=1 on a b 1 et 1 0 0 1 0 1 d'o 0 1 0 0 La proprit est vraie au rang n=0. Si k 0 [ 2 ] (k pair) p p )= num ( b n ) . Selon la proprit Soit p un entier naturel non nul tel que num ( b n +1
p p 2p 2p 2p = b 2p b = b num ( b )= num ( b ) . 2.a on a b n et . D'o n+ 1 n +1 n+2 n +1 n +2

On vient de dmontrer pair.

num ( b k )= num ( b k ) uniquement pour k tant un entier n n+ 1

[1] En effet,

Bn

comporte

2n + 1

lments. Mais comme on commence indicer partir de 0, les lments

bk n

pour

2n < k

n'existent pas.

17/31

Si k 1 [ 2 ] (k impair). 1 +1 b k = bk Par construction des suites de Stern-Brocot, on a : n ;b k . k-1 n n n et k+1 sont pairs puisque k est impair. On a donc
+1 +1 num ( bk )= num ( b k ) . n n+ 1
1 bk et n +1 bk sont conscutifs dans n

1 k 1 num ( b k )= num ( b ) n n+ 1

et

B n 1 , donc leur addition du cancre est

simple. 1 +1 1 1 b k )= num ( b k )+ num ( b k ) . D'o num ( b k n n n n Or


k num ( b k )= num ( b ) . n n+ 1 1 1 num ( b k )= num ( b k ) et n n+ 1

+1 +1 num ( b k )= num ( b k ) . Par consquent on a : n n +1

On vient de montrer que

k )= num ( b n ) . Donc ; ( n , n' , k )3 ; n ' n ; 0 k 2 n ; num ( b k n '

num ( b k )=num ( b k ) est aussi vrai pour k impair. n n+ 1

Proposition 4.2 : n , k { 0 ; ... ; 2 n } den ( b k )= den ( b k )+ num ( b k ) . n+ 1 n n Dmonstration : Pour n=0 : On a : 0 1 B0= ; . 1 0 0 1 1 B1= ; ; . 1 1 0 0 )= den ( b 0 )+ num ( b 0 ) et den ( b1 )=den ( b1 )+ num ( b 1 ) On a bien : den ( b1 0 0 1 0 0

( ) ( )

La proprit est varie au rang n=0. Si k 0 [ 2 ] (k pair) )= den ( b1 )+ num ( b 1 ) . D'aprs la Soit p un entier naturel non nul tel que den ( b 1 n +1 n n
p p = b 2p =b 2p proprit 2.a on a b n et b n . n+ 1 +1 n+2

)= den ( b 2p )+ num ( b 2p ) . D'o den ( b 2p n +2 n +1 n +1

On vient de dmontrer bien k tant un entier pair.

den ( b k )= den ( b k )+ num ( b k ) n +1 n n

uniquement pour k=1 ou

18/31

Si k 1 [ 2 ] (k impair) 1 +1 b k = bk Par construction des suites de Stern-Brocot, on a : n ;b k . kn +1 n +1 n+ 1 1 et k+1 sont pairs puisque k est impair. On a : 1 1 1 1 +1 +1 den ( b k )= den ( b k )+ num ( b k ) et den ( b k )= den ( b k )+ num ( b k ) . n +1 n n n +1 n n
1 1 +1 +1 )= den ( b k )+ num ( b k )+ den ( b k )+ num ( b k ) , car : Donc : den ( b k n +1 n n n n k 1 1 bk =b n 2 n +1 k+1 +1 et b k = b n 2 sont conscutifs dans B n , donc adjacents. n +1 1 +1 1 +1 bk b k = bk den ( b k )= den ( b k )+ den ( b k ) Or on a : . D'o n n n n n n 1 +1 num ( bk )= num ( b k )+ num ( b k ) . n n n )= den ( b k )+ num ( b k ) . On obtient : den ( b k n +1 n n )= den ( b k )+ num ( b k ) est aussi vrai pour On vient de montrer que den ( b k n +1 n n

et

impair. )=den ( b k )+ num ( b k ) . Donc : ( n , k )2 ; 0 k 2 n1 ; den ( b k n +1 n n Gnralisation de la proposition 4.2 : ( n' , n , k )3 ; n ' > n ; 0 k 2 n ;den ( bk )=den ( b k )+( n ' n ) num ( b k ) . n' n n Dmonstration : Si n'= n+1, on retombe sur la proprit 4.2. Soit p un entier naturel strictement suprieur n+1 tel que : den ( b k )=den ( b k )+( p n ) num ( b k ) . Montrons sous cette hypothse que p n n den ( b k )= den ( b k )+( p + 1 n ) num ( b k ) . p +1 n n Par application de la proprit 4.2 on a : k k den ( b k )= den ( b k )+ num ( b k )= den ( b n )+( p n ) num ( b n )+ num ( b k ) . p +1 p p p
k )= num ( b n ) . Or selon la proprit 4.1 on a num ( b k p k k )= den ( b )+( p + 1 n ) num ( b ) . D'o : den ( b k p +1 n n

On obtient : ( n' , n , k )3 ; n ' > n ; 0 k 2 n ;den ( bk )=den ( b k )+( n ' n ) num ( b k ) n' n n

19/31

Proposition 4.3 : Corollaire des propositions 4.1 et 4.2 La combinaison de la proprit 4.1 et 4.2 nous donne : k num ( b ) n k avec la restriction suivante sur k : ( R ): bn = +1 k k den ( b n )+ num ( b n ) Cela veut dire qu'il existe un lment formule donn ci-dessus ne fonctionne pas . Pour chaque suite

0 k 2n .

bk pour une valeur k donne, tel que la n

B n il y a

pas (R) : b k . D'aprs la gnralisation de la proprit 4.2 (R) devient : l ( n , l , k ) ; n l ; 0 k 2


3 l

2 n + 1 2 n 1 1 = 2 n 1 lments qui ne vrifient pas (R), ce sont les lments bk avec 2 n1 + 1 k 2 n . On note l'lment qui pour un cas donn ne vrifie n

( R ' ) : b k = n

num ( blk )

den ( b k )+( n l ) num ( b k ) l l


f : bk bk . n l

On dfinit une application

f : + + tel que

Proposition 4.4 : On peut retrouver b k , si l'on connat un lment b k grce la relation : l n bk = l num ( b k ) n r . o r est le reste de la division euclidienne de
den ( b k ) par n

num ( b k ) n

Dmonstration : D'aprs la proposition 4.3, on a : ( n , l , k )3 ; n l ; 0 k 2l ( R ' ) : b k = n num ( blk ) den ( b k )+( n l ) num ( b k ) l l

k k )= den ( b )+( n l ) num ( b ) . On obtient alors : den ( b k n l l

)= num ( b k ) . Or selon la proposition 4.1 il vient : num ( b k n l )= den ( blk )+( n l ) num ( b k ) . D'o : den ( b k n n > 1 den ( b k )< num ( b k )= num ( b k ) . Comme (n-l)>0 et que b k l l l n

) est le reste de la division euclidienne de den ( b k ) On obtient bien que den ( b k l n


20/31

) : den ( b k ) r [ num ( bk )] . par num ( bk n l n

D'aprs la proprit 4.4 on obtient f : f (bk ) := n den ( b k ) E n entire de den ( b k ) n num ( bk ) n num ( b k ) n

( )
k den ( b n ) num ( b k ) n

o . num ( b k ) n

( )
k den ( b n )

num ( bk ) n

dsigne la partie

Remarque : )=b 0 1) n f ( b 0 n n 2)

, k f ( b k )= b k k 2 n 1+ 1 , ce qui implique que f est n n

surjective et que l'application rciproque f est une application multivalue.[2] 1 2 n 1 = ;b n = n Proposition 4.5 et 4.5' : n b 1 n n Dmonstration : 1 On a b 1= . 0 Et d'aprs le corollaire des proprits 4.1 et 4.2 on a : = Or den ( b 1 )=0 et num ( b1 )= 1 . Il vient : b 1 n on a : b 2 n
n

b1 n=

num ( b 1)

den ( b 1)+ n num ( b1)

1 . Puis par application de 2.e n

1 b1 n

=n .

II-Algorithme
Pour raliser l'algorithme capable de trouver les plus petits entiers naturels n et k tels qu'un rationnel q apparaisse pour la premire fois dans une des suites B n , nous utiliserons les proprits 2.e, 4.4, 4.5 4.5' et la fonction f dfinie plus haut
[2] Une application multivalue est une application multivoque i.e qui un lment de son ensemble de dfinition fait correspondre plusieurs lments de l'ensemble d'arriv.

21/31

Algorithme de base :
On appel collecteur une liste de donnes. Ici se sera une suite de rationnels positifs Soit C un collecteur, on a:

. On note C i le (i+1)-ime lment de C car on commence i=0. On appel q le rationnel dont on veut obtenir la premire position dans la suite de suites de Stern-Brocot. On suppose qu'il est dj sous forme irrductible. = B ( k , n ) avec Dans ce qui suit, U,V et B sont des collecteurs et b k n B 0= k et B 1= n . Lire q Si q =
1 0 alors on retourne b 1 0

Si Si q alors on retourne b 1 n 1 Si n q = n alors on retourne b 2 n


n

Tant que q on met q dans U Si q f ( q ) alors q := f ( q ) 1 Sinon q := q Fin de Tant que On inverse l'ordre des lments de U #Les coordonnes seront mises dans le collecteur B V 0 := U 0 V 1 : =U 1 on applique 4.5 U 0 :
B 0= 2
U0

B 1 =U 0
22/31

V 0 := U 0 V 1 : =U 1 on supprime U 0 et U 1 Tant que la taille de U ne vaut pas 0 1 Si V 1 = V0 alors on applique 2.e B 0 := 2 1 B 0 Sinon f ( V 1 )=V 0 on applique la proposition 4.3 : den ( V 1 ) B1 := B1 + E ( ) num ( V 1 )
B

On supprime U 0 Fin de Tant que On retourne B

Exemple :

fig. 4-1 : Les 6 premires suites de Stern-Brocot

Danse cette exemple, on essais de trouver la premire position de 5 . 7 5 5 On remonte en appliquant la la fonction f . Comme on ne peut pas 2 7 5 5 trouver directement la premire position de 5 et que f ( )= , on prend son 2 2 2 inverse 2 . Or on ne peut toujours pas trouver directement la position de 2 , on 5 5
23/31

utilise alors la fonction f. On arrive sur

2 . 1

2 tant un entier, on peut trouver sa premire position grce la proprit 4.5'. 1 2 = D'aprs 4.5' on a : b 3 . 2 1 En appliquant la proprit 4.3 il vient : 2 2 den ( )= den ( b 3 )+( n2 ) num ( b 3 )=5 1 + 2n 4 =5 n = 4 et donc b 3 = 2 2 4 5 5 4 5 1 3 = = b2 = b13 Par application de 2.e on trouve . 4 4 2 b3
4

5 tant le primitif de 5 il vient : 2 7 en appliquant la proprit 4.3 on a : 5 den ( )= den ( b 13 )+( n 4 ) num ( b 13 )=7 2 + 5n 20 =7 n =5 . 4 4 7 5 13 =b , ce qui se confirme grce la figure 4-1. D'o 7 5

24/31

Code Perl fonctionnel pour l'algorithme :


#usr/bin/perl! =head Ce programme a t dit avec gedit sur UBUNTU 11.10 avec perl version 5.12 Ce programme sert trouver la premire position laquelle apparat un rationnel dans l'arbre de stern-brocot. Pour faciliter la manilaion des rationnel, ici on reprsentera un rationnel par un tableau dont le premier lment contient le numrateur et le second le dnominateur du rationnel en question. Une des proprit qui fonde les bases de ce script, sont la symtrie 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 lments d'une mme colone ont le mme numrateur et que pour passer d'un lment l'autre (dans la mme colone) il suffit d'enlever ou de rajouter un multiple entier du numrateur. =cut sub part {#cette fonction sert rcuprer le numrateur et le dnominateur d'un rationnel my ($str) = @_; #$str est une chaine de charactre content normalement un rationnel if(quotemeta($str) =~ /[a-zA-Z]+/)#si $str contient des lettres { die "La chaine de caractres 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 naturel print $str."\n"; } my @parts = split('/',$str);#on spare la chaine $str selon le motif / @parts contient le numrateur et le dnominateur de $str if ( scalar(@parts)==2)#ceci est un test : si la taille de @parts ne vaut pas 2, alors on ne peut pas continuer l'xcution du programme { return \@parts; } else { die "La chaine de caractres n'est pas valide"; } } sub pgcd{#cette fonction sert retourner le pcgd de deux entier fournis en paramtre
25/31

en utilisant l'algorithme d'euclide my (@nb) = @_;#rcupration des deux entiers dans @nb my ($a,$b,$r)=(0,0,1); if ($nb[0]<=$nb[1])#pour raliser l'algorithme, il faut que le premier lment 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 lment 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 paramtre my ($arr1, $arr2) = @_; my @ar1 = @{$arr1}; my @ar2 = @{$arr2}; if ($ar1[0] == $ar2[1] && $ar1[1] == $ar2[0])#si le numrateur du premier ratinnel vaut le dnominateur du second rationnel et si lednominateur du premier rationnel vaut le numrateur du second rationnel { return 1;#alors on retourne 1 (considrer comme la valeur vraie) } else { return 0;#sinon on retourne 0 (considr comme la valeur fausse) } } system"clear";#appel system permettant de nettoyer la console sous un systme de type UNIX. Sous Windows NT cette ligne doit tre remplace par system"cls"; print "Bonjour, entrer un rationel positif.\nLes coordonnes retournes seront de la forme B(k;n) pour 0<= k <= 2^n\n"; my $chaine = <>;#on demande l'utilisateur de saisir un rationnel chomp($chaine);#on retire le retour chariot du a la validation de l'entre de
26/31

l'utilisateur if ($chaine eq '')#si $chaine ne contient rien on lui affecte la valeur 0 { $chaine= 0; } my @B = (0,0);#dclaration et initialisation de @B my @q = @{part($chaine)};#dfrence le rsultat retourner par la mthode parts, @q contient le numrateur et le dnominateur du rationnel entr par l'utilisateur my $g; unless($q[0] == 0 || $q[1] == 0)#si le dnominateur ou (inclusif) le numrateur 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 entre au dbut 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 (dnominateur valant 1) { @B = ((2**$q[0])-1,$q[0]);#on utilise une des proprit de la suite de sternbrocot 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 proprit 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

my ($a,$b,$r)=($q[0],$q[1],0);#initialisation et affectation. $a contient un numrateur et $b un dnominateur my (@col,$tmp);#dclaration while($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;#dclaration foreach my $g (1..(($#col+1)/2))#deux entier conscutif (en partant du premier lment) forme un rationnel dans @col. on veut inverser l'order de ces rationnels, il faut donc traiter les lment par groupes de deux { $tab[scalar(@tab)] = $col[$#col- 1];#on stocke l'avant dernier et le dernier lment de @col dans @tab $tab[scalar(@tab)] = $col[$#col];#### @col = reverse(@col);#on inverse l'ordre des lments de @col shift(@col);#on supprime les deux premiers lments de @col shift(@col);# @col = reverse(@col);#on inverse l'ordre des lments de @col } @col = @tab;#on affecte a @col le tableau @tab my $count = 0;#dclaration et initialisation de $count my (@temp, @temp2);#dclaration de @temp et de @temp2.ces deux tableau seront utiliss pour tablir un lien entre ls deux rationnel qu'ils reprsenteront my $res; while(scalar(@col)!=0)#tant que @col n'est pas un tableau vide
28/31

{ if ($count == 0)#si $count vaut 0, cette variable nous permet de savoir que c'est la premire fois que la boucle while est xcute { @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 facilement foreach my $i (0..1)#on supprime les deux premier lments de @col, i.e. le premier rationnel de @col { shift(@col); } if ($temp[0] == 0 && $temp[1] == 1)#si le rationnel dcrit 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 dcrit 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 dcrit 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 dcrit 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 dcrit 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++;#incrmentation de $count @temp2 = @temp;#on affecte @temp @temp2 goto LAB2;#on se rend au label LAB2 } else {#il est important de savoir que le tableau @B contient toujours la
29/31

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 lments de @col, i.e. le premier rationnel de @col } my $bool = inv(\@temp,\@temp2);#on fournis deux rationnels la mthode inv et cette dernire nous dis si @temp et l'inverse de @temp2et rciproquement if($bool == 1)#si oui { @B = ((2**$B[1])-$B[0],$B[1]);#on utilise la proprit de symtrie de la suite de stern-brocot @temp2 = @temp;#on affecte @temp @temp2 goto LAB2;#on se rend au label LAB2 } elsif ($temp[0]==$temp2[0] && $temp[1] != $temp2[1])#sinon, si les rationnels reprsents par @temp et @temp2 ont le mme numrateur alors ils se trouve ils possdent le mme indice k mais pas le mme indice n (c'est la deuxime proprit nonc au dbut 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 @temp2 goto 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

Sources
Confrence vido de Claude Quitt et Marie-Eve Modolo, chercheurs en mathmatiques : http://www.irem.univ-paris-diderot.fr/videos/autour_de_larbre_de_stern_brocot/ Article de Robert Ferrol : Addition des cancres, Suites de Brocot et friandises associes. Site Anglais sur l'arithmtique : http://www.cut-the-knot.org/blue/Stern.shtml PDF sur les outils mathmatiques pour la gomtrie discrte : http://hal.archives-ouvertes.fr/docs/00/34/64/41/PDF/chapitre.pdf

31/31

S-ar putea să vă placă și