• Aucun résultat trouvé

Sujet TD 1, Licence 2, module I31 Dominique Michelucci, Universit´e de Dijon 12 septembre 2012

N/A
N/A
Protected

Academic year: 2022

Partager "Sujet TD 1, Licence 2, module I31 Dominique Michelucci, Universit´e de Dijon 12 septembre 2012"

Copied!
2
0
0

Texte intégral

(1)

Sujet TD 1, Licence 2, module I31

Dominique Michelucci, Universit´ e de Dijon 12 septembre 2012

1. V´erifiez que vous saurez programmer en TP l’algorithme d’Euclide ´etendu (pgcd et coefficients de B´ezout).

Idem pour le crible d’Eratosth`ene.

2. Dessinez la courbey= 1/xpour x∈[1/2,5]. En d´eduire :

1.083≈13/12 = 1/2 + 1/3 + 1/4<log 4<1 + 1/2 + 1/3 = 11/6≈1.833 D´eduisez en une formule pour encadrer logx.

Comment peut-on am´eliorer la pr´ecision ? Rappel (vu en cours) : logx=Rt=x

t=1 1

tdtest l’aire sous l’arc de l’hyperbole (y = 1/x). H(k) = 1 + 1/2 + 1/3 +. . .1/k est la s´erie harmonique, tronqu´ee au terme k. On en d´eduit que pour un grand entier n, logn ≈ Hn. En fait γ= limn→∞Hn−logn≈0.577 est appel´ee constante d’Euler.

3. D’apr`es le petit th´eor`eme de Fermat, sipest un entier premier, alors pour toutk∈N, on a : 1 =kp1modulop. Un test probabiliste calculekp1modulop pour un certain nombre (disons de l’ordre de logp) de valeurs enti`eres al´eatoires de k (dans [1, p−1]) ; si pour tous les tests, 1 =kp−1 modulop le nombrep est ”probablement” premier. Sinon (pour un des tests, 1 6=kp−1 modulop),le nombrepn’est sˆurement pas premier. Comment pouvez vous optimiser le calcul dekp−1?

Remarque : ad = admodφ(p) modulo p pour tout entier (premier ou non premier), o`u φ(p) est l’indicatrice d’Euler ; φ(p) est le nombre d’entiers dans [1, p−1] et premiers avec p (leur PGCD avec p vaut 1). Si p est premier, φ(p) =p−1.

Remarque : les nombres de Carmichael passent tous ces tests, mais ne sont pas premiers. Il vaut mieux utiliser le test probabiliste de primalit´e de Solovay- Strassen, qui utilise aussi l’exponentiation rapide, ou le test de Miller-Rabin.

4. Ecrire une classe ListEntier en Java. Null est la liste vide. Une liste non vide a une tˆete, qui est un entier. Elle a aussi une queue, qui est une liste (´eventuellement vide). hd(l) retourne la tˆete (ou bien l.hd() si vous pr´ef´erez).

tl(l) retourne la queue de la liste l (ou bien l.tl() si vous pr´ef´erez). L’appel cons(

t : un entier, q : une liste) retourne une nouvelle liste, de tˆete t, de queue q.

Remarquez que cette interface ne permet pas de modifier une liste.

5. Ecrire une fonction (ou une m´ethode...) pour tester si une liste contient un entier donn´e.

6. Ecrire une fonction (ou une m´ethode...) pour cr´eer une liste ´egale `a une liste donn´ee, mais o`u la premi`ere occurence d’un entier e (pass´e en param`etre) est supprim´ee. Noter que les queues des 2 listes peuvent ˆetre partag´ees.

1

(2)

7. Ecrire une fonction (ou une m´ethode...) qui rende lek i`eme ´el´ement (un entier) d’une liste donn´ee. Par convention le premier est le 0 i`eme. Ne pas perdre de temps avec le traitement des erreurs.

8. Ecrire (en r´ecursif et/ou it´eratif) une fonction rendant la longueur d’une liste : 0 pour NULL, 1 + lgr( tl(l)) pour l non vide.

9. Ecrire une fonction (m´ethode...) rendant le minimum d’une liste.

10. Ecrire le trif na¨ıf d’une liste l. Si la liste est vide, elle est tri´ee. Sinon soit m le minimum de l, et soit l’= suppression( l, m). Alors la liste tri´ee est cons(

m, trinaif( l’)).

11. Ecrire le tri rapide d’une liste l. Vous prendrez comme pivˆot le premier (pas le plus petit) ´el´ement de la liste .

12. Ecrire le tri rapide d’un tableau. Le tableau sera modifi´e.

13. Ecrire le tri par tas (ou heapsort) d’un tableau. Le tableau sera modifi´e.

S’il reste du temps :

14. Trouvez une m´ethode pour calculer le nombre de fa¸cons de choisir k objets parmin(les coefficients binomiaux).

15. Trouvez une m´ethode (r´ecursive) pour calculer tous les sous ensembles d’un ensemble donn´e d’entiers (qu’on supposera tous distincts). Les ensembles seront repr´esent´es par des listes.

2

Références

Documents relatifs

En quelle ann´ ee le nombre de plaintes pour blessures non mortelles est-il le plus faible.. En quelle ann´ ee le nombre de plaintes pour blessures non mortelles est-il relativement

En d’autres termes, pour tout nombre premier p, il existe ` a isomorphisme pr` es un et un seul groupe d’ordre p, qui est le groupe cyclique (donc ab´ elien) C

Dans un anneau principal, tout id´ eal premier non-nul est maximal (et donc, pour les id´ eaux non-nuls, les notions de premier et de maximal

L'ancienne église de Broc. de voir que ce château qui, au temps de sa grandeur, était distrait par un fol, maintenant que les temps l'ont dépouillé de son pouvoir, est consolé par un

Si, au cours de l’´epreuve, un candidat rep`ere ce qui lui semble ˆetre une erreur d’´enonc´e, il le signale sur sa copie et poursuit sa composition en expliquant les raisons

N’utilisez surtout pas la notation ln(z) si z n’est pas un r´ eel strictement

Pour cela, ` a partir d’un texte (en fran¸ cais par exemple), on calcule les probabilit´ es qu’une lettre donn´ ee se trouve im´ ediatement apr` es une autre lettre donn´ ee1.

ecrire des m´ ethodes pour calculer la r´ eunion, la diff´ erence et l’intersection entre deux listes d’intervalles ; ¸ ca ressemble ` a la m´ ethode de fusion de deux listes