• Aucun résultat trouvé

(1)MPSI 832 Tests et boucles : Correction des entrainements Entraînement 1 Écrire une fonction qui renvoie le maximum de trois nombres

N/A
N/A
Protected

Academic year: 2022

Partager "(1)MPSI 832 Tests et boucles : Correction des entrainements Entraînement 1 Écrire une fonction qui renvoie le maximum de trois nombres"

Copied!
2
0
0

Texte intégral

(1)

MPSI 832 Tests et boucles : Correction des entrainements

Entraînement 1

Écrire une fonction qui renvoie le maximum de trois nombres.

Solution :

Il s’agit évidemment de n’utiliser que des comparaisons et des affectations.

La bonne solution ne comporte que deux comparaisons. C’est le minimum car on peut montrer que tout algorithme de recherche de maximum sur néléments comporte au moinsn−1comparaisons.

1 def plusGrand ( x , y , z ) :

2

3 m = x

4

5 i f y >= m:

6 m = y

7 i f z >= m:

8 m = z

9 return m

Ce principe se généralise pour obtenir le maximum d’une liste.

——————————

Entraînement 2

En 2020, le mois de juin commence un lundi. À l’aide de deux boucles imbriquées, faire afficher les jours des quatre premières semaines du mois sous la forme :

lundi 1 juin mardi 2 juin

Solution :

1 j o u r s = ( ’ l u n d i ’ , ’ mardi ’ , ’ m e r c r e d i ’ , ’ j e u d i ’ , ’ v e n d r e d i ’ , ’ samedi ’ ,

2 ’ dimanche ’ )

3

4 f o r sem in range( 4 ) :

5 f o r j in range( 7 ) :

6 print( j o u r s [ j ] , sem∗7 + j + 1 , ’ j u i n ’ ) Entraînement 3

Écrire une fonction qui calcule la somme

n

X

i=0

p

Y

j=1

(i+j)

.

Solution :

1 def Somme( n , p ) :

2

3 S = 0

4

5 f o r i in range( n + 1 ) :

6 P = 1

7 f o r j in range( 1 , p + 1 ) :

8 P ∗= i + j

9 S += P

10 return S

1

(2)

MPSI 832 Tests et boucles : Correction des entrainements

Remarque :

Lorsqu’une boucle à besoin d’une initialisation, on place celle-ci juste avant la mise en place de la boucle.

Entraînement 4

Écrire une fonction valuation2(n)qui calcule la valuation 2-adique d’un entier n.

On rappelle que la valuation 2-adique d’un entier n est l’exposant de 2 dans la décomposition en facteur premier den.

Solution :

1 def v a l u a t i o n 2 ( n ) :

2

3 v a l = 0

4

5 while n % 2 == 0 :

6 v a l += 1

7 n = n // 2

8 return v a l

——————————

Entraînement 5

La conjecture de Syracuse énonce que, pour toute suite(un)définie par son premier élémentu0 ∈N et la relation de récurrence

un+1=

un/2 si un est pair, 3un+ 1 sinon,

il existe un indice ntel que un= 1.

Écrire une fonction tempsVol(u) qui prend en paramètre un entier positif u qui est le premier terme de la suite et renvoie le premier indicen tel queun= 1.

Solution :

1 def tempsVol ( u ) :

2

3 n = 0

4

5 while u != 1 :

6 i f u%2 == 0 :

7 u = u //2

8 e l s e:

9 u = 3∗u + 1

10 n += 1

11 return n

2

Références

Documents relatifs

[r]

[r]

Mon chiffre des dizaines vient juste après celui des centaines lorsque l'on compte.. Mon chiffre des centaines

Mon chiffre des dizaines vient juste après celui des centaines lorsque l'on compte.. Mon chiffre des centaines

[r]

[r]

Le carré du produit de deux nombres est égal au produit des carrés de ces deux

Faire une figure montrant le positionnement des points A, B, C, D, E. 3) Représenter sur un cercle trigonométrique les différentes familles de solutions.. Retrouvez ces valeurs à