• Aucun résultat trouvé

r 6 7 for k in range(1, x+1): 8 r = r * k 9 print(r) Exercice 4

N/A
N/A
Protected

Academic year: 2022

Partager "r 6 7 for k in range(1, x+1): 8 r = r * k 9 print(r) Exercice 4"

Copied!
2
0
0

Texte intégral

(1)

DUT Info Structures de données et algorithmes fondamentaux 2020–2021

TD 1 - Complexité

Exercice 1. Donnez la complexité des algorithmes suivants (n est une variable entière qui a été initialisée) :

a)

1 s = 0

2 for i in range(n):

3 s = s + 1 - 2*i

b)

1 s = 0

2 for i in range(n):

3 s = s * s

4 for j in range(n):

5 s = s + 1

c)

1 s = 0

2 for i in range(n):

3 for j in range(n * n):

4 s = s + 1

d)

1 s = 0

2 for i in range(n):

3 j = 0

4 while j <= i:

5 s = s + 1

e)

1 s = 0

2 for i in range(n):

3 for j in range(i * i):

4 for k in range(j):

5 s = s + 1

Que devient la complexité de l’algorithmed)si l’on rajoutej = j + 1dans le corps de la seconde boucle ?

Exercice 2. Calculez la complexité du code suivant (vous pouvez supposer que la fonction print() est enO(1), et que la variablen a été initialisée) :

1 i = 1

2 p = n

3 while i <= n:

4 for j in range(1, p+1):

5 print(j)

6 i = i + 1

7 i = i + 1

Exercice 3. Calculez la complexité du code suivant :

1 # x, p, n sont des variables entières déjà initialisées

2 r = 0

3 for i in range(1, n+1):

4 for j in range(1, p+1):

5 r = 2 * (i + j) + r

6

7 for k in range(1, x+1):

8 r = r * k

9 print(r)

Exercice 4. Le nème nombre harmoniqueHn est défini par

Hn=

n

X

i=1

1

i = 1 +1 2 +1

3+· · ·+ 1 n.

Écrivez une fonction renvoyantHn (nest supposé naturel) et donnez sa complexité.

Les deux exercices suivants vous demandent d’effectuer des calculs à l’aide de séries, c’est-à- dire des sommes infinies. Pour avoir un algorithme, donc une méthode qui se termine, remplacez

∞ par un paramètre permettant à l’utilisateur de votre algorithme de contrôler le nombre de termes à calculer.

Page 1 / 2

(2)

DUT Info Structures de données et algorithmes fondamentaux 2020–2021

Exercice 5. La série de Leibniz permet de calculer π comme suit :

π = 4

X

i=0

(−1)i 2i+ 1 = 4

1−1

3 +1 5 −1

7 +· · ·

Écrivez une fonction utilisant cette série pour calculer π, qui utilisera un paramètre naturel n donnant le nombre d’itérations à effectuer, et donnez sa complexité.

Exercice 6. La constanteepeut être calculée par la série suivante, qui s’appuie sur la factorielle n! =n×(n−1)×(n−2)× · · · ×2×1(avec0! = 1) :

e=

X

i=0

1

i!= 1 + 1 + 1 2!+ 1

3!+· · ·

Écrivez une fonction utilisant cette série pour calculer e, qui utilisera un paramètre naturel n donnant le nombre d’itérations à effectuer, et donnez sa complexité.

Exercice 7. Classez les fonctions suivantes par ordre croissant selon la notationO(·). Précisez si certaines d’entre elles sont équivalentes, et expliquez pourquoi.

1) n 2) 2n 3) nlogn 4) lnn

5) n−n3+ 7n5 6) logn 7) √

n 8) en 9) n2+ logn 10) n2 11) 2n−1 12) log logn

13) n3 14) (logn)2 15) n! 16) n1+ε où 0< ε <1

Exercice 8. Les algorithmes suivants utilisent une boucle pour réduire la valeur d’un naturel nà 0 et compter, à l’aide d’une variablec, le nombre d’itérations effectuées (on suppose que la variablena été déclarée et initialisée).

1. donnez la complexité de chacun de ces algorithmes en fonction den;

2. classez ces algorithmes par ordre croissant de temps d’exécution, en fonction des com- plexités calculées ;

3. lequel de ces trois algorithmes préfèrerait-on en pratique ? a)

1 c = 0

2 while n > 0:

3 n = n - 1

4 c = c + 1

b)

1 c = 0

2 while n > 0:

3 n = n // 2

4 c = c + 1

c)

1 c = 0

2 while n > 0:

3 n = n // 3

4 c = c + 1

Exercice 9. Les deux questions ci-dessous doivent être résolues sans l’opérateur**ni la fonction pow().

1. Écrivez une fonction calculant an pour nnaturel, et donnez sa complexité.

2. Écrivez une fonction enO(logn) calculantan dans le cas oùnest une puissance de2.

Page 2 / 2

Références

Documents relatifs

Montrer que tout polynôme non nul admet un unique antécédent pour ∆ divisible par X.. Application à un calcul

We shall consider asymptotic normality of sums of random variables when the domain o~ the summation index is a subset of the lattice points in some higher-dimen- sional

B y a modification of the last construction of the proof we can get a metric space in which no non-void open set is uniformly homeomorphie with a subset of

We give a new proof of this theorem, and a generali- zation to finitely generated formally real rings over k (Theorem 1).. Throughout, k will be an

From one point of view it is more natural t o consider power series in infinitely m a n y variables, corresponding to Fourier series on an

Si les conditions du th6orbme sont remplies, les xq, coefficients de % nous donnent une solution du syst6me... ARKIV FOR

[r]

Déterminer une primitive de chacune des fonctions suivantes sur