13.07.2015 Views

ENSAE Ecole Nationale de la Statistique et de l ... - xavierdupre.fr

ENSAE Ecole Nationale de la Statistique et de l ... - xavierdupre.fr

ENSAE Ecole Nationale de la Statistique et de l ... - xavierdupre.fr

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

1. Séances notées 28@param nb_c<strong>la</strong>ss nombre <strong>de</strong> sous nuages 65@param nb_point nombre <strong>de</strong> points dans chaque sous nuage@r<strong>et</strong>urnune liste <strong>de</strong> points ou matrice <strong>de</strong> <strong>de</strong>ux colonnes- <strong>la</strong> première correspond aux abscisses,- <strong>la</strong> secon<strong>de</strong> aux ordonnées"""res = [] 70for c in xrange (0, nb_c<strong>la</strong>ss) :x = random.gauss (0,1) * 5y = random.gauss (0,1) * 5res += sous_nuage (nb_point, x,y)r<strong>et</strong>urn res 75<strong>de</strong>f random_c<strong>la</strong>ss ( nuage, n) :"""choisis aléatoirement un entier pour chaque point du nuage@param nuage un nuage <strong>de</strong> points (matrice <strong>de</strong> <strong>de</strong>ux colonnes)@param n nombre <strong>de</strong> c<strong>la</strong>sses 80@r<strong>et</strong>urnune liste d’entiers"""res = [ ]for p in nuage :c = random.randint (0, n-1) 85res.append (c)r<strong>et</strong>urn res<strong>de</strong>f proche_barycentre (point, barycentres) :"""détermine le barycentre le plus d’un point 90@param point liste <strong>de</strong> 2 réels : [x,y]@param barycentres liste <strong>de</strong> n points = matrice <strong>de</strong> <strong>de</strong>ux colonnes,chaque ligne correspond à un barycentre@r<strong>et</strong>urnun entier qui correspond à l’in<strong>de</strong>xdu barycentre le plus proche""" 95dmax = 1e6for i in range (0, len (barycentres)) :b = barycentres [i]dx = point [0] - b [0]dy = point [1] - b [1] 100d = (dx**2 + dy**2) ** 0.5if d < dmax :dmax = dm = ir<strong>et</strong>urn m 105<strong>de</strong>f association_barycentre (points, barycentres) :"""détermine pour chaque point le barycentre le plus proche@param points nuage (matrice <strong>de</strong> <strong>de</strong>ux colonnes)@param barycentres c’est aussi une matrice <strong>de</strong> <strong>de</strong>ux colonnes mais 110avec moins <strong>de</strong> lignes@r<strong>et</strong>urnliste d’entiers, chaque entiercorrespond à <strong>la</strong> c<strong>la</strong>sse du point points[i],c’est-à-dire l’in<strong>de</strong>x du barycentre le plus procheici: 115point: points [i]c<strong>la</strong>sse: res[i]barycentre: barycentres[ res[i] ]"""res = [] 120for p in nuage :m = proche_barycentre (p, barycentres)res.append (m)r<strong>et</strong>urn res<strong>de</strong>f barycentre_c<strong>la</strong>sse (points, c<strong>la</strong>sses, numero_c<strong>la</strong>ss) :"""calcule le barycentre d’une c<strong>la</strong>sse@param points ensemble <strong>de</strong> points (matrice <strong>de</strong> <strong>de</strong>ux colonnes)@param c<strong>la</strong>sses liste d’entiers <strong>de</strong> même longueur,125

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!