Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Classiques en Informatique

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 3

Fouad NAFIS Filière : MP/PSI/TSI

20 Janvier 2022 CPGE OMAR IBN ALKHATTAB MEKNES

Classiques des Concours d’Informatique (CNC et CF)

1. Quel est le plus grand entier non 8. Factorielle d’un entier n >= 0 (version
signé, que l’on peut coder sur n bits? itérative)
Avec n bits, on peut coder les entier naturel de 0 à
1 def Factorielle ( n ):
2n − 1 Donc le plus grand nombre entier est 2n − 1 2 P =1
3 for i in range (2 , n +1) :
2. Quel est le plus grand entier posi-
4 P = P * i
tif avec bit de signe, avec bit de
5 return P
signe que l’on peut coder sur n bits?
Avec n bits, on peut coder les entiers relatifs de −2n−1
à 2n−1 − 1 le plus grand entier positif donc est 2n−1 − 1 9. Factorielle d’un entier n >= 0 (version
récursive)
3. Somme des éléments d’une liste (Accès par in-
dice) 1 def Fact ( n ):
2 if n ==1 or n ==0:
1 def Somme ( L ): 3 return 1
2 S =0 4 return ( n )* Fact (n -1)
3 n = len ( L )
4 for i in range ( n ):
n!
5 S = S + L[i] 10. Coefficient binomial Cnp = p!(n−p)!
6 return S
1 def Binom (p , n ):
2 if not (0 <= p <= n ):
4. Somme des éléments d’une liste (Accès par 3 return 0
valeur) 4 return Fact ( n )//( Fact ( p )* Fact (n - p ))
1 def Somme ( L ):
2 S =0 11. Savoir si un entier n est un nombre premier ou
3 for x in L : non
4 S = S + x
5 return S 1 def estPremier ( n ):
2 for i in range (2 , n //2+1):
3 if n % i ==0:
5. Somme des diviseurs d’un entier n > 0 4 return False
1 def SommeDiviseurs ( n ): 5 return True
2 S =0
3 for i in range (1 , n +1):
12. Représentation binaire d’un entier naturel n
4 if n % i == 0:
sous forme d’une chaine
5 S = S + i
6 return S 1 def Binaire ( n ):
2 C=""
6. Moyenne des éléments d’une liste 3 while n !=0:
4 C = str ( n %2) + C
1 def Moy ( L ): 5 n = n //2
2 S = 0 6 return C
3 n = len ( L )
4 for x in L :
5 S = S + x 13. Représentation binaire d’un entier naturel n
6 return S / n sous forme d’une liste

1 def Binaire ( n ):
7. Valeur max des éléments d’une liste 2 C =[]
3 while n !=0:
1 def Max ( L ): 4 C . append ( str ( n %2))
2 m = L [0] 5 n = n //2
3 for x in L : 6 return C
4 if m < x :
5 m = x
6 return m 14. Différence de deux vecteurs représentés par
deux listes de même taille
Programmation Python 1 fouadnafis@gmail.com - 06.75.38.39.48
Fouad NAFIS Filière : MP/PSI/TSI
5 return True
1 def Difference ( L1 , L2 ): 6 return False
2 L =[]
3 n = len ( L1 ) # ou n = len ( L2 )
4 for i in range ( n ): 21. Échanger deux éléments d’un vecteur ou deux
5 L . append ( L1 [ i ] - L2 [ i ]) lignes d’une matrice
6 return L
1 def echanger (L , i , j ):
2 L[i], L[j] = L[j], L[i]
15. Produit scalaire de deux vecteurs représentés
par deux listes de même taille
22. Recherche dichotomique d’un élément dans
1 def ProduitScalaire ( L1 , L2 ): une liste triée (version itérative)
2 S =0
3 n = len ( L1 ) # ou n = len ( L2 ) 1 def recherche_dicho ( x , L ):
4 for i in range ( n ): 2 a , b = 0 , len ( L ) -1
5 S = S + L1 [ i ] * L2 [ i ] 3 m = ( a + b )//2
6 return S 4 while a < b :
5 if L [ m ] == x :
6 return m
16. PGCD de deux entiers n > 0 et p > 0 avec 7 elif L [ m ] > x :
l’algorithme d’Euclide itératif 8 b = m -1
1 def euclid1 (n , p ): 9 else :
2 while n % p !=0: 10 a = m +1
3 n, p = p, n%p 11 m = ( a + b )//2
4 return p 12 return False

17. PGCD de deux entiers n > 0 et p > 0 avec 23. Recherche dichotomique d’un élément dans
l’algorithme d’Euclide récursif une liste triée (version récursive)
1 def euclid2 (n , p ): 1 def rechDicho (x , L ):
2 if n % p ==0 : 2 if len ( L ) < 1 :
3 return p 3 return False
4 return euclid2 (p , n % p ) 4 m = len ( L )//2
5 if L [ m ] == x :
6 return True
18. Recherche naı̈ve d’un élément dans une liste
7 elif L [ m ] > x :
1 def rechercher (x , L ): 8 return rechDicho (x , L [: m ])
2 return x in L 9 else :
3 # in est un op é rateur bool é en 10 return rechDicho (x , L [ m :])

19. Recherche naı̈ve d’un élément dans une liste 24. Résoudre le problème de Cauchy défini par :
(version itérative)  ′
y = F (t, y(t))
1 def rechercher (x , L ):
y(t0 ) = y0
2 n = len ( L )
3 for y in L : Avec la méthode d’Euler explicite version
4 if y == x : pédagogique
5 return True
6 return False 1 def Euler (F , t0 , tf , y0 , n ) :
2 h = ( tf - t0 )/ n
3 T = [ t0 ]
20. Recherche d’un mot dans une chaine de car-
4 Y = [ y0 ]
actères
5 for i in range (n -1) :
1 def rechercheMot ( text , mot ): 6 T . append ( T [ i ]+ h )
2 n = len ( mot ) 7 Y . append ( Y [ i ]+ h * F ( T [ i ] , Y [ i ])
3 for i in range ( len ( text ) - n + 1) : 8 return T , Y
4 if text [ i : i + taille_mot ] == mot :

1. Le schéma d’Euler implicite est défini par : yn+1 = yn + h ∗ f (tn+1 , yn+1 )


1 from scipy . optimize import fsolve
2 def eulerImplicite (f ,a ,b ,n , y0 , t0 ):
3 h ,Y , T = (b - a )/ n ,[ y0 ] ,[ t0 ]
4 for i in range (n -1):

Programmation Python 2 fouadnafis@gmail.com - 06.75.38.39.48


Fouad NAFIS Filière : MP/PSI/TSI
5 T . append ( T [ i ]+ h )
6 y = fsolve ( lambda x : - x + Y [ i ]+ h * f ( T [ i +1] , x ) , Y [ i ])
7 Y . append ( y )
8 return T , Y

2. Méthode de Newton (f(x)=0)


1 def newton (f , df , x0 , epsilon ):
2 u = x0
3 v = u - f ( u )/ df ( u )
4 while abs ( v - u ) > epsilon :
5 u , v = v , v - f ( v )/ df ( v )
6 return u

3. Calcul d’une intégrale : Méthode des rectangles


1 def Rectangles (f ,a ,b , N ):
2 h = (b - a )/ N # pas de discr é tisation = largeur du rectangle
3 I = 0
4 for i in range ( N ):
5 I += f ( a + i * h )
6 return I * h

4. Calcul d’une intégrale : Méthode des trapèzes


1 def Trapezes (f ,a ,b , N ):
2 h = ( b - a )/ N
3 I = h * 0.5 * ( f ( a ) + f ( b )) # initialisation de l ’ int é grale
4 for i in range (1 , N ):
5 I += f ( a + i * h )
6 return I * h

Programmation Python 3 fouadnafis@gmail.com - 06.75.38.39.48

Vous aimerez peut-être aussi