[Division euclidienne \TS spé ISN
Mettons nous d’accord :
1. nNet aN!(q,r) couple d’entiers naturels vérifiant : n=a×q+rET 0 6r<a.
nest le dividende, ale diviseur, qle quotient et rle reste.
signifie « pour tout » ; signifie « il existe » et ! signifie « il existe un unique ».
C’est la division euclidienne qui signifie que l’on peut partager nobjets pour apersonnes (chacune recevant
qobjets) et qu’ensuite il restera robjets (à noter qu’alors le reste rest forcément strictement plus petit que le
diviseur asinon la division/ le partage n’est pas finie et qu’il peut être nul quand la division est entière, c’est à dire
que le partage est total).
2. Comment obtenir le reste et le quotient à l’aide d’une calculatrice de lycée ?
(a) Sur un exemple. On cherche le quotient et le reste de 75 divisé par 7 :
On calcule 75 ÷7=10,71....
On isole alors 10 et l’on fait 10 ×7=70 puis 75 70 =5 et l’on a : 75 =7×10 +5.
(b) Analyse mathématique : la fonction « partie entière ».
Pour tout nombre réel x, on définit E(x) comme le plus grand entier plus petit que x.
Ainsi E(10,71) =10 E(π)=3E(0,8759) =0E(1,245) = −2.
On la définit ainsi : xR,!qNtel que q6x<q+1, on a alors E(x)=q
La fonction partie entière Es’appelle « floor » en anglais et ne doit pas être confondue avec la fonction tron-
cature qui supprime la partie décimale, en effet : E(0,78) = −1 alors que la troncature de -0,78 est 0.
(c) Ainsi 10 =E(10,71.. .) est le quotient et 75 7×10 est le reste de 75 ÷7.
Donc 75 =7×E(75/7) +ravec r=75 7×E(75/7).
C’est à dire que si on divise un entier npar un autre entier non nul d, on aura :
n=d×E(n/d)+[nd×E(n/d)]
3. Et en Python ?
// permet d’obtenir le quotient entier de la division euclidienne : 75//7 =10.
% permet d’obtenir le reste de la division euclidienne : 75%7 =5.
Donc nNet dN, on a : n=d×[n//d]+[n%r]
Les maths avec Gaston :
1. Gaston tourne depuis longtemps, en supposant que toutes les
bouteilles sont apparentes, peux-tu déterminer combien de
tours il a effectué ?
2. Quelles sont les numéros qu’il a affecté à la première bouteille ?
à la deuxième ? à la dixième ?
Les modulos :
1. Considérons la série de nombres suivants :
123 4 56 7 89 10 11 12 . . .
Tous les nombres du type 2 +3×n(avec nN) sont écris en rouge car ils font partis de la même famille : on dit
qu’ils sont égaux modulos 3, car ils ont tous le même reste dans la division euclidienne par 3.
On dira que deux nombres sont égaux modulo(n) quand ils ont le même reste dans la division euclidienne par n.
On notera cette égalité . Par exemple : 8 5 modulo(3).
2. Remarque importante : tout multiple de 3 est égal à 0 modulo 3.
Plus généralement, pour tout nN, tout multiple de nest égal à 0 moduo n.
1
3. En Python, nous auront souvent affaire aux modulos :
(a) Qu’est-ce que range(0,n) ?
La fonction range crée une liste d’entier. Le premier paramètre (ici 0) indique la valeur du premier, le deuxième
paramètre indique que la liste devra s’arrêter à n1.
Pourquoi n1 ? Parce que n0 modulo(n) ! Nous avons nvaleurs à partir de 0 ce sont donc tous les restes
possibles dans la division euclidienne par n: de 0 à n1.
(b) Comment répéter un ordre de manière alterné ?
for n in range(0,1000) :
if n%2==0 :
print(n," est pair")
elif n%2==1 :
print(n, "est impair")
Cet algorithme permet de sélectionner les entiers pairs et impairs entre 0 et 999.
Changement de bases :
Quelque soit le nombre nécrit en base 10, il est possible de l’écrire dans une base quelconque. Et cela est vrai « à cause »
de la division euclidienne !
1. Montrons le sur un exemple : écriture de 158 de la base 10 à la base 7.
Effectuons des divisions euclidienne successives de 158 puis de chaque quotient non nul par 7 :
158 =22 ×7+4
22 =3×7+1
3=0×7+3
Ensuite on écrit la première ligne à l’aide des suivantes :
158 =22 ×7+4
=(3 ×7+1) ×7+4
=3×72+1×7+4
Et c’est fini puisque nous avons pu écrire 158 en fonction des puissances de 7 multipliées par des nombres stric-
tement inférieures à 7 (parce que justement ce sont des restes dans la division par 7 : regardez bien le processus) :
et c’est bien l’écriture de 158 en base 7 !
158 =3×72+1×7+4×70=3147
2. En pratique on pose des divisions à potences successives :
158 7
422 7
13 7
30
Et ainsi « en remontant »on lit : 158 =3×72+1×7+4×70=3147
3. l’algorithme :
On prend un nombre nécrit en base 10 et on choisit une base d.
Tant que le quotient n’est pas nul, faire :
(a) Effectuer la division euclidienne de npar d.
(b) Stocker le reste dans une liste.
(c) remplacer npar le quotient de la division.
A la sortie de la boucle il ne reste plus qu’à écrire le nombre en base den prenant les nombres de la liste dans
l’ordre inverse où ils ont été stockés.
2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !