You are on page 1of 3

Exercices - Algorithmes : enonc e

Cette feuille dexercice recense quelques algorithmes trouv es aux d etours dun probl` eme.

Ecrire des algorithmes


Exercice 1 - Renversant ! - L1/Math Sup/Master Enseignement Ecrire une fonction qui prend en entr ee un entier naturel a et retourne cet entier ecrit ` a lenvers. Par exemple, si a = 1234, la fonction devra retourner a = 4321. On pourra utiliser les fonctions quotient(n,p) et reste(n,p) qui donnent le quotient et le reste de la division de n par p.

Exercice 2 - Temps darr et - L1/Master Enseignement 1 On note Hn la somme Hn = n k=1 k . On admet que (Hn ) tend vers +. Ecrire un algorithme qui d etermine le plus petit entier n tel que Hn d epasse un r eel a donn e.

Exercice 3 - Equation de Pell-Fermat - Master Enseignement On consid` ere l equation x2 2y 2 = 1 dinconnues x, y N . Ecrire un algorithme permettant de d eterminer toutes les solutions de cette equation pour lesquelles y 100.

Exercice 4 - En base 2 - L1/Math Sup/Master Enseignement 1. Ecrire 21 en base 2. 2. Proposer un algorithme qui prend en entr ee un entier n et retourne son ecriture en base 2.

Exercice 5 - Encadrement dint egrale - L1/Math Sup/Master Enseignement Soit f : [0, 1] R une fonction croissante. Pour n 1, on pose Un = 1 n1 1 n f (k/n) et Vn = f (k/n). n k=0 n k=1
1 0 f (x)dx 1 0 f (x)dx.

1. D emontrer que, pour tout n 1, on a Un 2. On admet que (Un ) et (Vn ) convergent vers 1 x2 valeur approch ee de 0 e dx ` a 103 pr` es.

Vn . Ecrire un algorithme donnant une

Analyser des algorithmes


Exercice 6 - pgcd - Master Enseignement Lalgorithme suivant propose de calculer le pgcd de deux entiers a et b, avec a > b. Fonctionne-t-il ? Sinon, corriger cet algorithme. Lire a Lire b Tant que (b non nul) Faire a=b b=reste de a par b Fin Tant que. Afficher a. http://www.bibmath.net 1

Exercices - Algorithmes : enonc e


Exercice 7 - Marche al eatoire - Master Enseignement Une puce se d eplace sur un axe gradu e. Au temps t = 0, la puce est en 0. Si la puce est en x, ` a linstant n + 1, elle est en x + 1 avec probabilit e 1/3, en x + 2 avec probabilit e 1/3, en x 3 avec probabilit e 1/3. On souhaite programmer un algorithme simulant la position de la puce apr` es 50 it erations. On propose lalgorithme suivant : x=0 Pour t allant de 1 ` a n Faire Si (random()<1/3) alors x=x+1 Si (random()>=1/3) et (random()<2/3) alors x=x+1 Si (random()>=2/3) alors x=x-3 Fin Pour. Afficher x. Cet algorithme fonctionne-t-il ? Sinon, le corriger. NB. La fonction random() retourne un nombre (pseudo)-al eatoire entre 0 et 1.

Exercice 8 - Triplets pythagoriciens - Master Enseignement Voici l enonc e pos e` a des etudiants : On rappelle quun triplet dentiers naturels (a, b, c) est un triplet pythagoricien si a2 + b2 = c2 . Ecrire un algorithme donnant tous les triplets pythagoriciens de sorte que a + b + c 10000. Voici les r eponses de quelques etudiants. D eterminer les algorithmes qui donnent le bon r esultat. Expliquer. Etudiant 1: Pour k1 allant de 0 ` a 10000 faire Pour k2 allant de 0 ` a 10000 faire Pour k3 allant de 0 ` a 10000 faire Si k 12 + k 22 = k 32 et k1+k2+k3<=10000 alors afficher (k1,k2,k3) Fin si Fin pour Fin pour Fin pour. Etudiant 2: a=0, b=0,c=0 Pour b allant de 0 ` a 10000 a2 + b2 c. Si a+b+sqrt(c)<10000 et sqrt(c) entier alors afficher (a,b,sqrt(c)) c=0; a=a+1; Fin Pour. Etudiant 3: a=0, b=0, c=0 Tant que a+b+c<=10000 faire Tant que a+b+c<=10000 faire afficher(a,b,c) b=b+1 c=sqrt(a*a+b*b) Fin tant que a=a+1 http://www.bibmath.net 2

Exercices - Algorithmes : enonc e


b=0 Fin tant que. Etudiant 4: Pour a allant de 0 ` a 10000 faire Pour b allant de 0 ` a 10000-a faire Pour c allant de 0 ` a 10000-a-b faire Si a*a+b*b=c*c afficher (a,b,c) Fin si Fin pour Fin pour. Fin pour. Etudiant 5: a=0, b=0 Tant que a+b+sqrt(a*a+b*b)<=10000 faire b=0 Tant que a+b+sqrt(a*a+b*b)<=10000 faire Si Ent(sqrt(a*a+b*b))=sqrt(a*a+b*b) alors afficher (a,b,sqrt(a*a+b*b)) Fin si b=b+1 Fin tant que a=a+1 Fin tant que. Etudiant 6: Pour a allant de 0 ` a 10000 faire Pour b allant de 0 ` a 10000 faire c=0 tant que a+b+c<=10000 faire si a*a+b*b=c*c alors afficher (a,b,c) sinon c=c+1 Fin tant que Fin pour. Fin pour.

http://www.bibmath.net

You might also like