Académique Documents
Professionnel Documents
Culture Documents
Cours 3
Cours 3
Comptage
Algorithme .1 : NbXverifiantP(T)
Données : Un tableau T et un prédicat P
Résultat : Le nombre de variables de T qui vérifient le prédicat
P
Θ(n)
n ← longueur(T);
nb ← 0;
pour i=0 à n-1 faire
si P(T[i]) alors
nb ← nb+1;
retourner nb;
Algorithme .2 : MinX(T)
Données : Un tableau T d’objets comparables
Résultat : Le plus petit objet de T, et son indice dans T
Θ(n)
n ← longueur(T);
si n=0 alors
retourner “La liste est vide”;
iMin ← 0;
minX ← T[iMin];
pour i=1 à n-1 faire
si T[i]<minX alors
iMin ← i;
minX ← T[i];
retourner minX,iMin;
K Musumbu Algorithmique et Programmation
Version python
Exemple
import random
def P(X) :
return random.randrange(2)==0
def nbXverifiantP(T) :
nb = 0
for i in range(len(T)) :
if P(T[i]) :
nb = nb+1
return nb
Exemple
def minX(T) :
if len(T)==0 :
return None
iMin = 0
minX = T[iMin]
for i in range(1,len(T)) :
if T[i]<minX :
iMin = i
minX = T[i]
return [minX,iMin]
Algorithme .3 : ExisteXverifiantPNonOptimal(T)
Données : Un tableau T et un prédicat P
Résultat : Vrai ssi il existe une valeur qui vérifie le prédicat P
Θ(n)
n ← longueur(T);
nb ← 0;
pour i=0 à n-1 faire
si P(T[i]) alors
nb ← nb+1;
retourner nb≥1;
Version Python
Algorithme .4 : ExisteXverifiantP(T)
Données : Un tableau T et un prédicat P
Résultat : Vrai ssi il existe une valeur qui vérifie le prédicat P
Ω(1), O(n)
n ← longueur(T);
i ← 0;
auMoinsUnP ← Faux;
tant que non auMoinsUnP et i < n faire
auMoinsUnP ← P(T[i]);
i ← i+1;
retourner auMoinsUnP;
Version Python
Algorithme .5 : ExisteXverifiantNonP(T)
Données : Un tableau T et un prédicat P
Résultat : Vrai ssi il existe une valeur qui ne vérifie pas le
prédicat P
Ω(1), O(n)
n ← longueur(T);
i ← 0;
auMoinsUnNonP ← Faux;
tant que non auMoinsUnNonP et i < n faire
auMoinsUnNonP ← non P(T[i]);
i ← i+1;
retourner auMoinsUnNonP;
Version Python
Algorithme .6 : ToutXverifieP(T)
Données : Un tableau T et un prédicat P
Résultat : Vrai ssi toutes les valeurs de T vérifient le prédicat P
Ω(1), O(n)
n ← longueur(T);
i ← 0;
tousP ← Vrai;
tant que tousP et i < n faire
tousP ← P(T[i]);
i ← i+1;
retourner tousP;
Version Python
Algorithme .7 : ToutXverifieNonP(T)
Données : Un tableau T et un prédicat P
Résultat : Vrai ssi toutes les valeurs de T ne vérifient pas le
prédicat P
Ω(1), O(n)
n ← longueur(T);
i ← 0;
tousNonP ← Vrai;
tant que tousNonP et i < n faire
tousNonP ← non P(T[i]);
i ← i+1;
retourner tousNonP;
import random
def P(X) :
return random.randrange(2)==0
def existeXverifiantP(L) :
n = len(L)
i=0
auMoinsUnP = False
while not auMoinsUnP and i<n :
auMoinsUnP = P(L[i])
i = i+1
return auMoinsUnP
import random
def existeXverifiantNonP(L) :
n = len(L)
i=0
auMoinsUnNonP = False
while not auMoinsUnNonP and i<n :
auMoinsUnNonP != P(L[i])
i = i+1
return auMoinsUnNonP
import random
def P(X) :
return random.randrange(2)==0
def toutXverifiantP(L) :
n = len(L)
i=0
tousP = True
while toutP and i<n :
tousP = P(L[i])
i = i+1
return toutP
import random
def toutXverifiantNonP(L) :
n = len(L)
i=0
tousNonP = True
while toutNonP and i<n :
tousNonP != P(L[i])
i = i+1
return toutNonP
Algorithme .8 : ExisteXverifiantPretour(T)
Données : Un tableau T et un prédicat P
Résultat : Vrai ssi il existe une valeur qui vérifie le prédicat P
Ω(1), O(n)
n ← longueur(T);
pour i=0 à n-1 faire
si P(T[i]) alors
retourner Vrai;
retourner Faux;
Algorithme .9 : ExisteXverifiantNonPretour(T)
Données : Un tableau T et un prédicat P
Résultat : Vrai ssi il existe une valeur qui ne vérifie pas le
prédicat P
Ω(1), O(n)
n ← longueur(T);
pour i=0 à n-1 faire
si non P(T[i]) alors
retourner Vrai;
retourner Faux;
def existeXverifiantP(L) :
for x in L :
if P(x) :
return True
return False
def existeXverifiantNonP(L) :
for x in L :
if not P(x) :
return False
return True
def toutXverifiantP(L) :
for x in L :
if not P(x) :
return False
return True
def toutXverifiantNonP(L) :
for x in L :
if P(x) :
return False
return True