LISTES

1 - Opérations élémentaires et constructions


?

def Liste_1a(n) :
    L = []
    for x in range(1, n + 1) :
        L.append(x)
    return L

?

def Liste_1b(n) :
    L = [None] * n
    for i in range(0, n) :
        L[i] = i + 1
    return L

?

def Liste_1c(n) :
    return [ x for x in range(1, n+1) ]

?

def ?
?


2 - Parcours


?

def Somme(L) : for l in L :
?

def Somme(L) : for i in range(len(L)) :
?

def Maximum() : m = L[0] for i in range(1, len(L)) :
?

def Maximum() : if L == [] : raise exception("La liste est vide.")
?

from numpy import inf def Maximum() :
?

def IndiceMaximum(L) :
?

def ?
?

def Occurrences(L, x) :
?

def PlusOccurrent(L) :
?


3 - Une première application : représentation naïve des ensembles


?

def Appartient(L, x) :
?

def Ajouter(L, x) :
?

def Supprimer(L, x) :
?

def Union(A, B) :
?

def Intersection(A, B) :
?

def Différence(A, B) :
?

def DifférenceSymétrique(A, B) :
?

def ?
?


4 - Listes d'effectifs


?

def ?
?

def ?
?


5 - Fonctions caractéristiques

a) Deux manières de tester l'inclusion

On se donne deux listes d'entiers A et B, sans répétitions, et on veut savoir si A est incluse dans B (au sens ensembliste, c'est-à-dire si tout élément de A est également un élément de B). La méthode naïve consiste à appliquer le test d'appartenance à chaque élément de la première liste.

def Incluse(A, B) :
    for a in A :
        if not Appartient(B, a) :
            return False
    return True

?

def FonctionCaractéristique(L) :
    m = Maximum(L)
    χ = [False] * (m + 1)
    for l in L :
        χ[l] = True
    return χ

?

def Incluse(A, B) :
    χ = FonctionCaractéristique(B)
    for a in A :
        if not χ[a] :
            return False
    return True

?

def ?

b) Trouver toutes les puissances

?

def ?

c) Le crible d'Ératosthène pour trouver les nombres premiers

?

def ?
?


6 - Listes de listes


?

def ?
?

def ?
?