Jean Berstel
Jean-´
Eric Pin
Michel Pocchiola
MATH´
EMATIQUES
ET INFORMATIQUE
Probl`emes r´esolus
ALG`
EBRE, COMBINATOIRE, ARITHM´
ETIQUE
c
2005 Jean Berstel, Jean-´
Eric Pin et Michel Pocchiola
Ce livre a ´et´e publi´e par McGraw-Hill France en 1991
2
Version 15 janvier 2005
Avant-propos
Depuis quelques ann´ees, l’introduction d’une ´epreuve d’informatique aux concours d’en-
tr´ee dans les grandes ´ecoles scientifiques a cr´e un int´erˆet accru pour des exemples
d’algorithmes et de programmes qui s’inspirent du programme des classes pr´eparatoires.
Ce livre s’inscrit dans ce cadre. Partant de sujets pos´es aux concours d’entr´ee `a l’ENS
d’Ulm (mais les th`emes abord´es se retrouvent, dans une forme voisine, dans d’autres
concours), nous proposons `a la fois des solutions aux questions math´ematiques et des
programmes types pour les questions algorithmiques. Les eponses sont, la plupart du
temps, accompagn´ees de d´eveloppements qui permettent de replacer le probl`eme dans
son cadre math´ematique et le programme dans un contexte informatique. Dans cette
forme ´elargie, le livre int´eresse ´egalement les ´etudiants des premier et deuxi`eme cycles
universitaires en math´ematiques et en informatique; il est aussi un compl´ement pour la
pr´eparation de l’option d’informatique de l’agr´egation.
Les th`emes
L’apparition de l’informatique et de la programmation dans les classes pr´eparatoires
fait ecouvrir `a un grand nombre d’´etudiants leurs nombreuses applications possibles
aux autres sciences. Cette utilisation ne se limite pas au seul calcul num´erique car
l’informatique permet aussi de formuler en termes algorithmiques et programmables
des th´eories math´ematiques, des ph´enom`enes physiques, chimiques ou biologiques dont
l’´etudiant n’avait nagu`ere qu’une connaissance th´eorique. Le pr´esent livre permettra
d’aborder cette d´ecouverte, en ce qui concerne l’emploi de la programmation pour l’´etude
de probl`emes math´ematiques.
Les th`emes abord´es concernent principalement l’alg`ebre, la g´eom´etrie, l’arithm´etique
et la combinatoire. On traite des sujets traditionnels d’alg`ebre linaire, mais aussi des
th`emes moins habituels comme les pseudo-inverses de matrices rectangulaires, les con-
ditions de trigonalisation simultan´ee d’un ensemble de matrices, les matrices unimodu-
laires et les matrices irr´eductibles. Une section est consacr´ee aux polynˆomes : recherche
des z´eros par les suites de Sturm, polynˆomes sym´etriques et factorisation des polynˆomes
`a coefficients dans le corps `a deux ´el´ements. Nous avons choisi d’accorder une place im-
portante aux probl`emes combinatoires parce qu’ils fournissent, d’une part, d’excellents
exemples de programmation et, d’autre part, soul`event des questions math´ematiques
int´eressantes et parfois ardues. Parmi les probl`emes combinatoires classiques, nous trai-
tons les nombres de Bernoulli et les partitions d’entiers. Un long chapitre est consacr´e
`a la combinatoire des mots, qui a d’´etroits rapports avec la logique math´ematique, la
VI Avant-propos
th´eorie combinatoire des groupes, l’arithm´etique et l’informatique. La eom´etrie algo-
rithmique est une discipline en plein essor. Nous abordons deux probl`emes typiques de
cette nouvelle th´eorie : la triangulation de Delaunay et le probl`eme de la hh galerie d’artii.
Tout particuli`erement dans ce chapitre, les algorithmes d´ecrits ne sont pas les meilleurs
connus. La mise en œuvre des algorithmes optimaux d´epasse tr`es largement le cadre de
ce livre. La derni`ere partie traite de probl`emes arithm´etiques. Il s’agit, d’une part, de la
factorisation des entiers de Gauss et, d’autre part, de la manipulation de grands entiers
ou de grands r´eels. L’arithm´etique modulaire est une premi`ere technique mais elle ne
permet pas la division. Le dernier chapitre est consacr´e `a l’arithm´etique positionnelle.
On y d´etaille le calcul sur les grands entiers et les grands r´eels et on pr´esente plusieurs
algorithmes de calcul des d´ecimales de π.
Les solutions
Les th`emes sont organis´es sous forme de triptyques. La premi`ere partie pr´esente un
´enonc´e, proche de la forme o`u il a ´et´e donn´e au concours d’entr´ee `a l’ENS (mais les
th`emes abord´es se retrouvent, comme nous l’avons d´ej`a dit, dans une forme voisine
dans d’autres concours). L’´enonc´e comporte `a la fois des questions math´ematiques et
des questions de programmation. La deuxi`eme partie du triptyque donne une solu-
tion aux questions math´ematiques. Plutˆot que de reprendre une `a une les questions de
l’´enonc´e, cette partie est l’occasion de pr´esenter des esultats g´en´eraux sur le th`eme;
les solutions aux questions y figurent soit explicitement, soit en filigrane. En g´en´eral,
les questions math´ematiques pr´eparent aux questions informatiques, dans la mesure o`u
elles permettent d’´elaborer ou de justifier le d´eveloppement des algorithmes.
Les programmes
La troisi`eme partie d’un triptyque contient les proedures ou fonctions qui epondent aux
questions de programmation. L`a aussi, on con¸coit la r´eponse dans un cadre plus large :
la plupart du temps, on s’appuie sur des biblioth`eques de proc´edures dont l’int´erˆet peut
epasser le sujet et qui constituent le pendant des digressions math´ematiques. L’id´ee qui
nous conduit dans cette approche est que la solution aux questions informatiques est en
en´eral facile `a concevoir si l’on dispose d’un hh outillage ii appropri´e. Si, dans quelques
ann´ees, des syst`emes de calcul formel rempla¸caient Pascal comme support informatique,
bon nombre des biblioth`eques disparaˆıtraient, mais l’essentiel des programmes resterait.
Chaque th`eme est compl´et´e par de br`eves notes bibliographiques dont le but est d’aider
le lecteur ineress´e `a approfondir le sujet.
Les dialectes de Pascal
Bien que le langage de programmation Pascal soit codifi´e par une norme internationale,
de petites variations subsistent d’un compilateur `a l’autre, d’une machine `a l’autre. Les
programmes pr´esent´es dans ce livre sont pr´evus pour fonctionner en Turbo Pascal sur
Version 15 janvier 2005
Avant-propos VII
des ordinateurs compatibles PC et en Think Pascal sur des ordinateurs Macintosh.
Nous avons retenu la version 4 pour Turbo Pascal et la version 2 pour Think Pascal;
dans les deux cas, il s’agit d’un compromis entre ce qui est disponible sur le march´e et
ce qui est disponible dans les salles de travaux pratiques. Les diff´erences entre les deux
compilateurs sont faibles et sont report´ees, dans la mesure o`u elles sont pertinentes pour
nos programmes, dans l’annexe A.
Le langage de programmation
L’enseignement de la programmation dans les classes pr´eparatoires constitue une in-
troduction `a l’utilisation des ordinateurs pour la esolution de probl`emes scientifiques.
Dans cette optique, l’apprentissage de l’informatique est limit´e `a un petit nombre de
concepts, et la pratique de la programmation s’appuie sur un sous-ensemble assez limit´e
du langage Pascal. Ce sous-ensemble comprend les types de base bool´een, entier, r´eel
et, comme type compos´e, les tableaux. Sont en particulier exclus les pointeurs et les en-
registrements, les proedures et fonctions r´ecursives. Les d´eclarations de proedures et
fonctions se limitent au niveau du programme principal (pas de eclaration `a l’int´erieur
d’une proedure). Dans la mesure o`u il ne s’agit pas d’enseigner l’informatique, mais
seulement de familiariser les ´el`eves avec l’usage des ordinateurs, les consid´erations sur
les structures de donn´ees ainsi que sur la complexit´e ou la validit´e des algorithmes mis
en œuvre ne figurent pas au programme.
Nous nous effor¸cons, dans ce livre, de respecter ces contraintes. Dans certaines situations,
nous donnons, en plus des programmes it´eratifs, des proedures ou fonctions ecursives,
pour montrer combien cette ´ecriture peut ˆetre confortable. Parfois, nous d´eclarons aussi
des proedures locales `a d’autres proedures ou fonctions, dans le but d’en diminuer le
nombre de param`etres. En revanche, nous avons syst´ematiquement respect´e les limita-
tions sur les donn´ees structur´ees.
Les restrictions sur Pascal dans le programme des classes pr´eparatoires sont par ailleurs
fort int´eressantes du point de vue edagogique, puisqu’elles mettent `a jour les contorsions
auxquelles on doit se livrer pour repr´esenter des donn´ees structur´ees. Par exemple, un
polynˆome `a coefficients r´eels est naturellement repr´esent´e par un couple form´e d’un entier
qui est le degr´e du polynˆome et d’un tableau de r´eels. La notion de couple (record) ne
figurant pas au programme, le degr´e doit ˆetre inegr´e dans le tableau des r´eels. Ce genre
de ph´enom`enes a d’ailleurs contribu´e au d´eveloppement de langages de programmation
plus ´evolu´es. Le lecteur averti pourra sans peine introduire, `a de nombreux endroits, des
structures de donn´ees plus appropri´ees.
L’efficacit´e
Quant `a la complexit´e des programmes, on peut faire plusieurs remarques. Les pro-
grammes que nous donnons ne sont pas les plus rapides possibles, loin s’en faut. Notre
souci principal ´etant la clart´e et la structuration, nos programmes comportent de nom-
breux appels de proedures ou de fonctions l`a o`u une affectation simple aurait fait gagner
Version 15 janvier 2005
1 / 472 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 !