2 |
Écriture des nombres entiers |
|
Pour représenter les entiers (et les nombres de façon plus générale),
il va nous falloir diviser.
Le premier résultat, élémentaire (puisqu'il est enseigné à l'école
élémentaire), concerne la division dite <<euclidienne>> :
Théorème 2.1
Soient a et b deux entiers positifs, b>1. Il existe
un unique
couple d'entiers (q,r) vérifiant
(1) |
a = b.q + r |
(2) |
0 £ r < b |
Preuve : elle est en deux parties. On démontre d'abord
l'existence d'un tel couple, puis son unicité.
Existence : si a=0, il suffit de prendre q=0 et
r=0. Sinon, 0<a, et considérons l'ensemble d'entiers Q = {n Î IN |
b.n £ a}.
Q est non vide, puisque 0 en est l'un des éléments. Il est de plus
borné, car les relations 1 < b et 0 < a impliquent que a <
a.b, qui implique à son tour que tous les éléments n de Q
vérifient n<a. Il est donc fini, et admet (d'après les propriétés
bien connues
de IN ) un plus grand élément, notons-le q. On note r la
différence entre a et b.q : par construction, a = b.q+r et 0
£ r. Il reste à montrer que r<b : supposons au contraire que b
£ r; alors (par définition de £
1
) il existe un entier
i³ 0 tel que r = b + i; on aurait alors
a = b.q+r = b.q+b+i = b. (q+1) + i,
ce qui implique (par définition de £) que b.(q+1) £ a,
c'est-à-dire que q ne serait pas le plus grand élément de Q, ce
qui est contraire aux hypothèses.
Unicité : supposons qu'il existe deux couples, (q,r) et
(q',r'), vérifiant les deux propriétés. On aurait alors
b.q+r = b.q'+r'
puisque les deux expressions sont, d'après (1), toutes deux égales à
a, et donc, par de l'algèbre simple,
b.(q-q') = r'-r
c'est-à-dire que r'-r est un multiple de b.
Comme r et r' vérifient tous deux (2), leur différence vérifie
-b < r'-r < b
Or le seul multiple de b strictement compris entre -b et b est 0
: on a nécessairement r'-r = 0, donc r=r', et par conséquent q=q'
L'entier q s'appelle le quotient de a par b, r est le
reste de la division. On note aussi q = a div b et r = a
mod b. Remarquons que, si a>0, q<a.
Le résultat suivant (dont nous donnerons deux preuves)
appelé
théorème de numération, donne une représentation des entiers :
Théorème 2.2
Soit b>1. Pour tout x Î IN , il existe un unique k³ 0 et
une unique suite d'entiers x0,...,xk tels que
(1) |
|
(2) |
" i Î {0,...,k}, 0 £ xi < b |
Preuves : nous allons voir deux preuves de ce
théorème. Comme souvent en informatique, chacune des preuves va donner
lieu à un algorithme qui nous permettra de trouver la représentation
d'un entier dans une base quelconque.
Preuve 1 : cette preuve, bien que valable pour tout b>1,
donne lieu à un algorithme bien adapté au cas où b=2, et beaucoup
moins pratique dans les autres cas. Distinguons deux cas :
-
x<b : alors il suffit de prendre k=0, x0=x et le tour est
joué.
- b£ x : alors, grâce à des propriétés bien connues de
N, il existe k³ 1 tel que
bk£ x <bk+1
On considère la suite de couples (xi,ri) définie pour 0<i£ k
par
ì í î |
(xk,rk) est la division euclidienne de x par bk |
pour 1£ i <k, (xi,ri) est la division euclidienne de ri+1 par bi |
|
et on pose x0=r1. Notons que les xi sont uniques (puisqu'ils
sont des quotients euclidiens, ou un reste pour x0), et qu'ils
vérifient bien (2) : ceci résulte de ce que, par construction,
ri < bi, et du fait que l'on ne manipule que des nombres
positifs. Il reste à montrer (1). On va se servir de la propriété
suivante : pour tout i Î {1,...,k},
Montrons-la par récurrence sur i :
-
on a r1 = x0 = x0.1=x0.b0, et la propriété est vérifiée
au rang 1;
- supposons la propriété vraie au rang i<k, et montrons-la au
rang i+1 :
ri+1 |
= |
xi.bi+ri |
(par définition) |
|
= |
|
(par
hypothèse de récurrence) |
|
= |
|
Il ne nous reste plus qu'à vérifier (1) :
x |
= |
xk.bk+rk |
(par définition) |
|
= |
|
(propriété ci-dessus au
rang k) |
|
= |
|
Preuve 2 : cette deuxième preuve est celle qui est en général
utilisée pour trouver l'écriture d'un nombre dans une base
quelconque. Encore une fois, distinguons deux cas :
-
x<b : alors il suffit de prendre k=0, x0=x et le tour est
joué.
- b£ x : on considére la suite de couples d'entiers
(qi,xi)i Î N définie par
(q0,x0) |
est la division euclidienne de x par b |
et, pour i ³ 1, |
(qi,xi) |
est la division euclidienne de qi-1 par b |
Cette suite est stationnaire, de valeur (0,0), à partir d'un certain
rang, et il existe un rang, notons-le k, tel que qk =0 et xk
>0 (la preuve de ces assertions est laissée en exercice).
La propriété (2) est bien vérifiée, puisque les xi sont des restes
de divisions euclidiennes. De même, les xi sont uniques, d'après le
théorème précédent. Il reste maintenant à prouver la propriété
(1). À cet effet, on va montrer que, pour i Î {0,...,k},
La preuve se fait par récurrence descendante sur i :
-
commençons par le cas de base i=k : on a, puisque l'intervalle
[k+1,k] est vide,
- supposons la propriété vraie pour i>0, et montrons que la relation
est encore vérifiée pour i-1 :
qi-1 |
= |
b.qi + xi |
par définition |
|
= |
|
par hypothèse
de récurrence |
|
= |
|
|
|
= |
|
xj.bj-((i-1)+1)+xi.bi-((i-1)+1) |
|
|
|
= |
|
qui est la formule que l'on voulait obtenir.
À l'aide de cette relation entre les qi et les xi, on va
pouvoir maintenant démontrer (1) : on a
x |
= |
b.q0 + x0 |
par définition de (q0,x0) |
|
= |
|
d'après la propriété
précédente, écrite pour i=0 |
|
= |
|
|
= |
|
La suite finie (x0,...,xk) s'appelle représentation de x
en base b ou écriture de x en base b. Les xi sont
les chiffres de x en base b. Le
poids d'un chiffre est son indice.
On écrit x en général à l'envers, en donnant les
chiffres de poids fort en premier, et en terminant par le chiffre
des unités x0. On peut, si le contexte le justifie, indicer cette
écriture par la base, pour souligner la base de représentation dans
le cas où l'on utilise simultanément plusieurs bases.
Remarquons que, d'après le point (2) du théorème de numération, les
chiffres en base b sont les entiers 0,1,...,b-1 : il y en a
exactement b. Si b>10, il
va nous falloir des chiffres supplémentaires : l'usage veut qu'on
prenne les lettres à partir de A. Ainsi les chiffres en base 16 sont
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
Remarque : nous sommes habitués à manipuler des nombres
écrits en base 10. Il va nous falloir distinguer entre différentes
représentations des nombres. Nous adopterons la convention suivante,
dans toute la suite de ce document : une écriture
normale d'un nombre indiquera qu'il est écrit en base
10. Ainsi par exemple 1253 dénote bien l'entier mille deux cent
cinquante trois. Pour écrire un nombre en base b, on indicera sa
représentation par la base. Par exemple, 12537 désigne le
nombre dont la représentation en base 7 comporte 4 chiffres, le plus
lourd étant 1 et le plus léger 3.
Exemples :
-
Reprenons le nombre 12537. Quelle est
sa représentation en base 10 ? Il suffit de reprendre la formule
donnée dans le théorème de numération. La notation 12537
désigne en fait la formule
dans laquelle k=3, b=7, x0=3, x1=5, x2=2 et x3=1, ce
qui donne (si on écrit en base 10)
|
= |
3.70 |
+ |
5.71 |
+ |
2.72 |
+ |
1.73 |
|
= |
3.1 |
+ |
5.7 |
+ |
2.49 |
+ |
1.343 |
|
= |
3 |
+ |
35 |
+ |
98 |
+ |
343 |
|
= |
479 |
|
|
|
|
|
|
- considérons le nombre dénoté par 1001102. On a k=5 et
b=2, et sa valeur en
base 10 est donnée par
|
= |
0.20 |
+ |
1.21 |
+ |
1.22 |
+ |
0.23 |
+ |
0.24 |
+ |
1.25 |
|
= |
0.1 |
+ |
1.2 |
+ |
1.4 |
+ |
0.8 |
+ |
0.16 |
+ |
1.32 |
|
= |
0 |
+ |
2 |
+ |
4 |
+ |
0 |
+ |
0 |
+ |
32 |
|
= |
38 |
|
|
|
|
|
Il nous faut maintenant répondre à une question cruciale : comment
obtient-on la représentation d'un nombre dans une base donnée ?
Supposons, pour commencer, que l'on dispose d'un nombre n écrit en base
10. L'algorithme de passage dans une base b>1
le plus général est celui donné dans la deuxième preuve du théorème de
numération : on fait des divisions successives, d'abord de n par
b, puis des quotients obtenus (par b toujours), jusqu'à tomber sur
un quotient nul. L'écriture de n en base b est alors la suite des
restes, prise en sens inverse. Illustrons ceci par un
exemple : quelle est la représentation de 479 en base 7?
-
on a 479 = 7.68+3, donc le dernier chiffre de 479 en base 7
est 3;
- on a 68=7.9+5, donc le chiffre de poids 1 de 479 en base 7
est 5;
- on a 9=7.1+2, donc le chiffre de poids 2 de 479 en base 7
est 2;
- on a 1=7.0+1, donc le chiffre de poids le plus élevé de 479
en base 7 est 1.
En prenant ces chiffres dans l'ordre inverse, on obtient
479=12537
En pratique, on dispose les calculs de la façons suivante :
479 |
= |
7×68 |
+ |
|
68 |
= |
7×9 |
+ |
|
9 |
= |
7×1 |
+ |
|
1 |
= |
7×0 |
+ |
|
On arrête dès que le quotient devient nul, et la représentation de
n en base b se lit de bas en haut.
Le cas particulier de la base 2 : La première preuve
du théorème donne un algorithme qui est efficace
pour trouver la représentation en base 2 d'un entier, dès lors que
l'on connaît bien les puissances de 2 (ce qui est le cas de n'importe
quel informaticien digne de ce nom...). En effet, les quotients
des divisions euclidiennes successives
(qui sont les chiffres du nombre en base 2) ne peuvent prendre que les
valeurs 0 ou 1. Il suffit donc de soustraire les puissances de
2, en commençant par la plus grande inférieure à n, et de
continuer jusqu'à ce qu'on arrive à 0. Le chiffre de poids i de
l'écriture de n en base 2 sera 1 si l'on a soustrait 2i, et 0
sinon. Trouvons par exemple la représentation en
base 2 de 479. Pour simplifier, on va commencer par écrire les
puissances de 2 :
k |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
... |
2k |
1 |
2 |
4 |
8 |
16 |
32 |
64 |
128 |
256 |
512 |
... |
On a alors :
479 - 256 |
= |
223 |
et le chiffre de poids 8 est donc 1 |
223 - 128 |
= |
95 |
et le chiffre de poids 7 est donc 1 |
95 - 64 |
= |
31 |
et le chiffre de poids 6 est donc 1 |
31 - 16 |
= |
15 |
et le chiffre de poids 4 est donc 1 |
15 - 8 |
= |
7 |
et le chiffre de poids 3 est donc 1 |
7 - 4 |
= |
3 |
et le chiffre de poids 2 est donc 1 |
3 - 2 |
= |
1 |
et le chiffre de poids 1 est donc 1 |
1 - 1 |
= |
0 |
et le chiffre de poids 0 est donc 1 |
Tous les autres chiffres sont 0, et l'écriture de 479 en base 2 est
1110111112
Nous savons donc comment passer de la représentation en base 10 à
n'importe quelle base et vice-versa. Mais comment fait-on pour
passer d'une
représentation à une autre, dans le cas où aucune des deux bases n'est
10 ? Supposons que l'on veuille
l'écriture en base 3 du nombre (écrit en base 5) 4315. Il y a
deux manières de faire :
-
on trouve l'écriture en base 10 de 4315 en utilisant la
formule du théorème de numération, puis on effectue les divisions
nécessaires pour trouver l'écriture en base 3 :
|
= |
4.52 |
+ |
3.51 |
+ |
1.50 |
|
= |
4.25 |
+ |
3.5 |
+ |
1.1 |
|
= |
100 |
+ |
15 |
+ |
1 |
|
= |
116 |
|
|
|
|
puis
116 |
= |
3×38 |
+ |
|
38 |
= |
3×12 |
+ |
|
12 |
= |
3×4 |
+ |
|
4 |
= |
3×1 |
+ |
|
1 |
= |
3×0 |
+ |
|
et on a 4315=110223.
- on peut être plus rapide, et se passer de la transformation en
base 10 en effectuant les divisions directement en base 5 : pour
cela, il faut connaître (comme en base 10 !) ses tables d'addition
et de multiplication en base 5. On obtient alors :
4315 |
= |
35 |
× |
1235 |
+ |
25 |
1235 |
= |
35 |
× |
225 |
+ |
25 |
225 |
= |
35 |
× |
45 |
+ |
05 |
45 |
= |
35 |
× |
15 |
+ |
15 |
15 |
= |
35 |
× |
05 |
+ |
15 |
et on retrouve, en lisant les chiffres de bas en haut,
4315=110223.
2.2 |
Un cas particulier très important |
|
Il s'agit des passages entre les bases b et bk, pour k>1. Soit
n un entier.
Passage de la base b à la base bk:
On découpe la
représentation de n en base b en tranches de k chiffre, en
commençant par la droite et en rajoutant des 0 à gauche si le
nombre de chiffres de n n'est pas un multiple de k.
Chaque tranche de k chiffres est alors
transformée en un chiffre en base bk. Ces chiffres, écrits dans
cet ordre, constituent l'écriture de n en base bk.
Par exemple, soit 10221023 à écrire en
base 9=32. On le coupe en tranches de k=2 chiffres, à partir de
la droite, en rajoutant un 0 au début puisque le nombre de chiffres
n'est pas un multiple de 2:
10221023 = 01022102
On écrit chaque tranche comme un chiffre en base 9 :
013=19, 023=29,
213=79, 023=29.
L'écriture de 10221023 en base 9 est donc 12729
Passage de la base bk à la base b :
C'est la
transformation inverse; il suffit d'exprimer chaque chiffre en base
bk comme un nombre écrit en base b sur k chiffres, en
rajoutant des 0 si l'écriture du nombre obtenu comporte moins
de k chiffres en base b.
Par exemple, on souhaite obtenir l'écriture en base 2 du nombre
E80116. 16=24, et il faut traduire chaque chiffre en base 16
par un nombre de 4 chiffres en base 2. On a
E16=11102, 816=10002,
016=02=00002, 116=12=00012.
On a donc E80116 = 1110.1000.0000.00012 (les points
ont été ajoutés dans un souci de lisibilité, ils ne sont pas nécessaires).
Jusqu'ici on a parlé d'écriture des entiers, dans un cadre
standard. Il existe beaucoup d'autres façons de représenter des
nombres, et nous allons en voir trois :
-
la représentation en <<base Fibonacci>> : comme son nom
l'indique, elle utilise les valeurs de la célèbre suite de
Fibonacci. Cette représentation est peu pratique pour les calculs
(par exemple l'addition en base Fibonacci est loin d'être triviale, pour
ne pas parler de la multiplication). On la retrouve cependant dans
de nombreux problèmes, où le simple fait d'écrire les nombres
manipulés dans cette base rend la résolution évidente.
- les systèmes d'Avizienis : il s'agit d'une représentation
standard dans
laquelle les chiffres peuvent être négatifs. Une des conséquences
importantes de l'introduction de chiffres négatifs est l'existence d'un
algorithme très efficace d'addition, comme on le
verra plus loin.
- enfin, pour égayer un peu le ton un peu austère de ce document,
nous parlerons du système de numération dit << Bi-Binaire >>, que
nous devons au regretté Boby Lapointe.
On rappelle la définition de la suite de Fibonacci :
F0=0, F1=1, et pour n>1, Fn=Fn-1+Fn-2
Les premières valeurs de cette suite sont
k |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
... |
Fk |
0 |
1 |
1 |
2 |
3 |
5 |
8 |
13 |
21 |
34 |
... |
Les nombres de Fibonacci sont présents dans quantité de domaines,
qu'ils soient de nature mathématique, informatique, voire
biologique. Comme l'a dit un de leurs découvreurs,
La suite de Fibonacci possède des propriétés nombreuses fort
intéressantes2
La propriété qui nous intéresse ici est le sujet du théorème suivant,
dit <<de Zeckendorf>> :
Théorème 2.3
Tout entier strictement positif n a une unique représentation de la
forme
vérifiant les propriétés
-
pour i Î {1,...,r-1}, ki ³ ki+1 + 2
- kr ³ 2
Ce théorème donne un nouveau système de numération : l'écriture d'un
nombre en base Fibonacci est une suite de 0 et de 1, comme en base 2,
sauf que d'après la condition (1) on ne peut avoir deux 1
consécutifs : en effet, la somme de deux nombres de Fibonacci
consécutifs est un nombre de Fibonacci, par définition.
On a alors (les bi représentent soit 0 soit 1)
n=(bmbm-1... |
b2)F n= |
|
biFi |
Donnons un exemple : quelle est la représentation
Fibonacci de 30? On a
30 = 21 + 8 + 1 = 1.F8+0.F7+1.F6+0.F5+0.F4+0.F3+1.F2
et l'écriture de 30 en base Fibonacci
est
1010001F (comme de coutume, les chiffres de poids forts sont à
gauche).
2.3.2 |
Systèmes d'Avizienis |
|
Pourquoi restreindre les chiffres de l'écriture en base b à être
dans l'ensemble {0,...,b-1} ? Que se passe-t-il si l'on
s'autorise des chiffres négatifs ? Ce sont les questions auxquelles
nous allons répondre.
Définition 2.1
Soit b >1. Un système de numération d'Avizienis de base b est la
donnée d'un ensemble de chiffres C tel que
-
C={-a,-a+1,...,0,...,a-1,a}
- a£ b-1
- b+1£2a
L'ensemble C est l'ensemble des chiffres que l'on va utiliser
pour écrire les nombres en base b. Les conditions sur C sont
très peu contraignantes, mais on peut noter que les deux dernières
excluent l'usage de la base 2 : les systèmes d'Avizienis ne
sont utilisables que pour des bases strictement plus grandes que 2.
On utilise en général les ensembles de chiffres
Cb1 = {-(b-1),...,0,...,b-1}
ou bien, en arrondissant (b+1)/2 à l'entier immédiatement inférieur,
Cb2 = {-(b+1)/2,,...,0,...,(b+1)/2}
Les chiffres négatifs sont écrits avec une barre au-dessus : ainsi
7 désigne le chiffre -7.
Exemples :
-
Considérons le système d'Avizienis de base 10 dont les chiffres
sont
C101 =
{ |
|
, |
|
, |
|
, |
|
, |
|
, |
|
, |
|
, |
|
, |
|
,0,1,2,3,4,5,6,7,8,9} |
Dans ce système, le nombre 7 admet comme écriture 7 (comme on pouvait
s'y attendre !), mais aussi 13 (car 7=10 -3), mais aussi
193 (car 7 = 100 -93), et, de façon générale, toute écriture
de la forme 19...93 représente 7.
- Toujours en base 10, on prend comme ensemble de chiffres
C102 = { |
|
, |
|
, |
|
, |
|
, |
|
,0,1,2,3,4,5} |
Trouvons une représentation de 63 : on a 63 = 100 - 37, et 37 = 40
-3, donc 63 = 100 -40 +3 et une représentation de 63 dans cette
base est 143.
- Dans le système d'Avizienis de base 5 et de chiffres
les nombres de 1 à 20 peuvent s'écrire
1 |
= |
15A |
6 |
= |
115A |
11 |
= |
215A |
16 |
= |
315A |
2 |
= |
25A |
7 |
= |
125A |
12 |
= |
225A |
17 |
= |
325A |
3 |
= |
35A |
8 |
= |
135A |
13 |
= |
235A |
18 |
= |
335A |
4 |
= |
|
9 |
= |
|
14 |
= |
|
19 |
= |
|
5 |
= |
105A |
10 |
= |
205A |
15 |
= |
305A |
20 |
= |
|
Ici aussi, on remarque que 12, par exemple, a plusieurs écritures :
-
225A, car 12 = 2×5+2;
- 335A, car 12 = 3×5-3;
- et 1235A, car 12 = 1×52-2×5-3.
L'un des avantages des systèmes d'Avizienis, qui en fait un candidat
intéressant pour la représentation en machine, est que le passage de
n à -n se
fait simplement en changeant les signes des chiffres, ce qui implique
qu'il suffit de savoir additionner pour savoir soustraire, et donc
que le même algorithme va servir aussi bien pour l'addition que pour
la soustraction. Ceci a un prix, visible sur les exemples : on ne peut
plus garantir que la représentation d'un nombre soit unique.
2.3.3 |
Le système Bi-Binaire |
|
Le système de numération Bi-Binaire a été mis au point par Boby
Lapointe dans les années 60 (1969). Il s'agit moins d'un système de
numération que d'une façon d'écrire les entiers, la motivation
principale étant de pouvoir énoncer des nombres, aussi grands
soient-ils, sans qu'il soit besoin d'inventer des mots (une autre
motivation, tout aussi importante, est de se donner la possibilité
d'euphonies et d'allitérations qui sont
la marque distinctive de l'oeuvre de Boby Lapointe, et dont on peut
raisonnablement penser qu'elles fourniront la matière à quantité de
calembours et autres << lape-près >>...).
On considère la base 16. Dans cette base, il
y a 16 chiffres, de 0 à F; si l'on écrit ces chiffres en base 2,
chacun est représenté par quatre chiffres. Ainsi 5 s'écrit
01012, et D s'écrit 11012. Si l'on découpe ces
écritures en base 2 en deux groupes de deux chiffres
binaires par le milieu, ce qui n'est pas à conseiller, on
obtient deux moitiés de chiffre hexadécimal, et deux bits d'un côté,
et deux bits de l'autre. Les deux bits de gauche s'appellent (par
conséquent ?) les bits de poids forts3, les deux bits de
droite constituant les poids faibles.
Le système Bi-Binaire
consiste à faire correspondre à chacun de ces groupes
une lettre, selon les tableaux suivants :
Poids forts |
00 |
H |
01 |
B |
10 |
K |
11 |
D |
|
Poids faibles |
00 |
O |
01 |
A |
10 |
E |
11 |
I |
|
Les chiffres en base 16 se traduisent donc de la façon suivante :
Base 16 |
Base 2 |
Bi-binaire |
Base 16 |
Base 2 |
Bi-binaire |
0 |
0000 |
HO |
8 |
1000 |
KO |
1 |
0001 |
HA |
9 |
1001 |
KA |
2 |
0010 |
HE |
A |
1010 |
KE |
3 |
0011 |
HI |
B |
1011 |
KI |
4 |
0100 |
BO |
C |
1100 |
DO |
5 |
0101 |
BA |
D |
1101 |
DA |
6 |
0110 |
BE |
E |
1110 |
DE |
7 |
0111 |
BI |
F |
1111 |
DI |
Ainsi, 31, qui s'écrit 1F16, devient HADI, et KAHABA dénote
l'entier qui s'écrit 915 en base 16, c'est-à-dire 2325 en
base 10. L'entier 1000, quant à lui, s'écrit HIDEKO. Enfin, si un
commerçant peut parler d'HAHIKIDO quotidien, il ne s'agit pas d'arts
martiaux, mais simplement de son chiffre d'affaire
(Exercice : calculer du coup son chiffre d'affaire annuel).
-
Quels sont les chiffres en base 13 ?
- Donner la représentation des nombres 45, 128, 91, 1654
en base 3, 5, 7, 13.
- Effectuer les opérations suivantes, sans repasser
par la base 10 :
-
(base 7)
456 601 143
+ 15 - 142 * 25
- (base 4)
112 331 231
+ 13 - 12 * 12
- (Passages entre les bases 2, 4, 8 et 16)
-
Donner la représentations des nombres suivants (écrits en
base 2) dans les bases 4, 8 et 16 :
10011101 100110011001100 10101110001110011100111001
- Donner la représentations des nombres suivants (écrits en
base 8) dans les bases 2, 4 et 16 :
50234 254120 1547
- Donner la représentations des nombres suivants (écrits en
base 4) dans les bases 2 et 16 :
10232 203012 222330
- Donner la représentations des nombres suivants (écrits en
base 16) dans les bases 2 et 4 :
4E0F 1FF8 ABCD
- Programmer l'algorithme de changement de base avec un tableur
(de la base 10 vers une base b quelconque, puis l'inverse).
- Vérifier que, en base 4, 6 = 2× 3 s'écrit
12
, 9 = 32 s'écrit 21
. Vérifier de même que
12= 2× 6 et 36 = 62 s'écrivent respectivement
15
et 51
en
base 7, et que 30 = 2× 15 et 225 = 152 s'écrivent
1E
et E1
en base 16.
Généraliser :
soit b un entier plus grand que 4. Montrer que le
double de b-1 s'écrit 1(b-2)
en base b, et que, dans cette
même base, son carré s'écrit (b-2)1
.
- Trouvez la ou les bases dans chacun des cas
suivants. Justifiez votre réponse.
-
34 (écrit en base 5) s'écrit 31 en base b. Trouvez b.
- 482 (écrit en base 10) s'écrit 742 en base b'. Trouvez b'.
- Un nombre s'écrit 42 en base b1 et 31 en base b2. Un
autre nombre s'écrit 14 en base b1 et 12 en base b2. Trouvez
b1 et b2.
- Autrefois, lorsque les calculatrices de poche
n'existaient pas, on utilisait des trucs et astuces divers (des
algorithmes) pour calculer. Ainsi, on utilisait l'algorithme suivant
pour élever au carré les nombres entiers dont l'écriture en base 10 se
termine par 5 :
-
soit à élever au carré le nombre
n5
(prenons par exemple
65);
- on multiplie
n
par n+1
pour obtenir le nombre
m
: ici, on obtient m
=6×
7 = 42;
- le carré cherché est la concaténation de
m
et 25 : ici,
on obtient 652 = 4225, ce qu'on peut facilement vérifier.
-
Justifier cet algorithme, c'est-à-dire montrer que le
résultat est toujours correct, quel que soit l'entier (finissant par
5) choisi.
- Généraliser : donner et justifier un algorithme simple
permettant d'obtenir l'écriture en base 2b du carré d'un nombre
dont l'écriture dans cette base se termine par b.
- Soit x un nombre écrit en base 6. Comment reconnaît-on que
x est pair ?
Que x est multiple de 3 ?
Plus généralement, en base a.b, comment reconnaît-on
simplement qu'un nombre
écrit dans cette base est un multiple de a ou de b ?
- Jeu de
1emN
I
M
: ce jeu se joue à 2 joueurs. On dispose au
départ d'un nombre quelconque d'allumettes, réparties en un nombre
quelconque de tas. Chaque joueur à son tour enlève 0 ou 1 allumette
à chaque tas, mais au moins une allumette (on peut donc enlever, à
chaque tour, un nombre d'allumettes compris entre 1 et le nombre de
tas constituant la position). Le gagnant est celui qui
enlève la dernière allumette.
-
Parmi les positions suivantes, lesquelles sont gagnantes ?
(1 1 1 1) (2 2 2) (1 1 2 2) (5 2 6 4 8) (3 9 11 7 15)
- Caractériser les positions gagnantes, et montrer en
particulier qu'il est toujours possible de passer d'une
position gagnante à une position perdante, mais que l'inverse est
impossible.
- Jeu de NIM : ce jeu se joue à 2 joueurs. On dispose au
départ d'un nombre quelconque d'allumettes, réparties en un nombre
quelconque de tas. Chaque joueur à son tour enlève entre 1 et toutes
les allumettes d'un seul tas. Le gagnant est celui qui
enlève la dernière allumette.
-
Donner, parmi les positions suivantes, celles qui sont
gagnantes :
(5 3 9 10) (8 2 5 15) (1 5 3 2) (1 3 5 7)
- Montrer que le jeu de Nim est un cas particulier du jeu
précédent, et en déduire une caractérisation des positions gagnantes
au jeu de Nim.
- La dernière du tas : ce jeu se joue à 2
joueurs. On constitue un tas contenant un nombre quelconque
d'allumettes. Chaque joueur à son tour enlève entre 1 et 2 fois le nombre
d'allumettes enlevées par le joueur précédent.
Par exemple, si l'adversaire vient d'enlever 3 allumettes, on peut
enlever 1, 2, 3, 4, 5 ou 6=2×3 allumettes.
Le premier joueur
enlève 1 ou 2 allumettes. Le gagnant est celui qui enlève la
dernière allumette.
-
Pour chacun des tas de départ suivant, indiquer lequel,
du premier ou du deuxième joueur, a une ligne de jeu gagnante : 1, 2,
3, 5, 8, 13. Ces nombres vous rappellent-ils quelque chose ?
- Donner un algorithme qui mène, lorsque c'est possible,
à une victoire contre toute défense.
Solution de la dernière du tas :
Soit d le nombre d'allumettes enlevées au coup précédent (on pose
d=1 pour le premier joueur), et N le nombre d'allumettes restant
dans le tas. L'écriture de N en base Fibonacci est un mot écrit avec
des 0 et des 1, et se terminant par la chaîne 10k (un 1 suivi de
k 0): autrement dit,
le plus petit nombre de Fibonacci intervenant dans l'écriture de N
est Fk+2. Alors de deux choses l'une :
-
soit d < é Fk+2/2 ù :
la position est
perdante, quel que soit le nombre d'allumettes que l'on enlève;
- soit d ³ é Fk+2/2 ù : la
position est gagnante,
il suffit d'enlever Fk+2 allumettes.
Exercice subsidiaire difficile: démontrer ces
allégations, surtout la première. Pour la deuxième, soit A le joueur
qui enlève Fk+2 allumettes, et B son adversaire. De deux choses
l'une :
-
soit il n'y a plus d'allumettes et A a gagné;
- soit il en reste, et on va montrer par induction que B est dans
une position perdante. On avait au mieux N = N' + Fk+4 +
Fk+2. Il reste N' + Fk+4 allumettes, et il suffit de
montrer que
Or ceci est une banalité, car on sait que Fn < Fn+1, ce qui
implique que 2Fn < Fn + Fn+1 = Fn+2. L'expression <<au
mieux>> prend tout son sens si le nombre de Fibonacci suivant
Fk+2 dans l'écriture de N est plus grand que Fk+4.
- Donner la représentation dans le système d'Avizienis de
base 10 qui a pour chiffres
{-5,-4,-3,-2,-1,0,1,2,3,4}
des entiers
de 0 à 30.
- On considère le système d'Avizienis de
base 10 qui a pour chiffres
{-9,...,0,...,9}
Donner toutes
les représentations des nombres de 1 à 10.
- On se propose d'étudier certaines
représentations d'Avizienis de base 10.
-
Si a=6, donner toutes les représentations des entiers de 1 à
20. Quel est le plus petit nombre à deux chiffres positifs qui admet deux
représentations ? Et à 3 chiffres ? Montrer qu'aucun entier inférieur
à 1000 n'admet plus de 2 représentations dans cette base.
- On considère maintenant a=9. Donner le plus petit nombre à
deux chiffres positifs admettant une infinité de représentations, puis
le plus petit à 3 chiffres positifs.
- On se propose de
trouver (et de justifier) un algorithme simple permettant de
déterminer
si un nombre écrit dans une base b donnée est pair ou impair. On
pourrait calculer la représentation en base 10 de ce nombre, puis
regarder le dernier chiffre pour décider. Cependant, il est inutile de
passer par la base 10 pour ceci, et le but de l'exercice est de trouver
un moyen plus simple d'y parvenir.
-
Donner l'écriture en base 3 de tous les nombres compris entre 20
et 30 (20 et 30 inclus). Même question pour la base 4.
- En s'inspirant de l'exemple de la base 4, trouver et prouver
un critère de parité des nombres écrits dans une base paire.
- En s'inspirant de l'exemple de la base 3, trouver et prouver
un critère de parité des nombres écrits dans une base
impaire.
- Soit x un nombre écrit en base 16. Comment sait-on, à
la vue de son écriture en base 16, que
x est pair ?
Que x est multiple de 4 ?
Que x est multiple de 8 ?
Plus généralement, en base bn, comment reconnaît-on
simplement qu'un nombre
écrit dans cette base est un multiple de bk (avec 0 < k £ n) ?
- Justifier la méthode de changement de représentation
entre les bases b et bk, et en particulier montrer qu'un nombre de k
chiffres en base b est toujours strictement inférieur à bk.
- Soient b1 et b2 deux entiers plus grands que 1, tels
que b2 < b1. On dit que les bases b1 et b2 sont amies
s'il existe un entier qui s'écrit
xy
en base b1 et yx
en base b2 (x et y doivent être différents de 0, et on a
nécessairement x¹ y).
Par exemple,
les bases 5 et 3 sont amies car 7 s'écrit
12
en base 5 et 21
en base 3. On dit d'un tel entier
qu'il est le témoin de l'amitié de b1 et b2.
-
Donner tous les témoins pour les base 3 et 5, 4 et 7 et 6 et
11.
- Montrer que si b1 = 2b2 - 1 alors b1 et b2 sont
amies.
- Plus généralement, montrer que si b1 = kb2 - (k-1) alors b1
et b2 sont amies (on dit que b1 est amie d'ordre k de
b2). Donner la plus petite base ayant une amie d'ordre k.
- On se propose d'étudier certaines propriétés de la base
-2. Dans cette base, comme en base 2, les chiffres sont 0 et 1. La
notation
xnxn-1... x1x0
où pour tout iÎ{0,...,n}, x1 est le chiffre 0 ou le
chiffre 1, désigne l'entier
Par exemple,
11011101 |
= |
1.(-2)7+1.(-2)6+1.(-2)4+1.(-2)3+1.(-2)2+1.(-2)0 |
|
= |
-128 + 64 + 16 -8 +4 +1 |
|
= |
-51 |
On voit sur l'exemple que les entiers négatifs sont naturellement
représentables dans cette base.
-
Donner les représentations des entiers de -10 à 10.
- Énoncer une méthode simple permettant de trouver l'écriture
de -x (en base -2) à partir de celle de x (en base -2).
- On note Xn (avec n ³ 1) le nombre dont l'écriture en
base (-2) est
composée de n fois le chiffre 1 (par exemple X1=1, et X3=111).
Montrer que
Que vaut X2k ? Et comment s'écrit -X2k en base -2 ?