Autre > :O

Titre:O
Postée le20-11-2009
Affichée568
Mini-lien
Description

:o)

EtatInconnu. Inconnu.
Code d'insertion
Options
Afficher les numéros de lignes  Mettre la source en plein ecran  Selectionner la source  Partager sur Facebook 
Téléchargement Telecharger en format txt  Telecharger en format pdf
Plein ecran
#-*- coding: utf-8 -*-
import numpy as np

def sumCol(B, X, Y, h):

        #Somme des éléments B[w, Y + h] avec w qui varie entre X et X - h

       
        w = X
        somme = 0
        compteur = 0
        while w >= X - h:

                #Pour sortir du tableau, comme w décroit, la seule possibilité
                #est que w dévienne négatif

                if w >= 0:

                        somme += B[w, Y + h]
                else:
                        compteur += 1
               

                w -= 1
        return somme


def exercise10(B, X, Y, K):
        s = 0
        M, N = B.shape

        #Si h > N - Y, on sort du tableau en faisant Y + h
        #Comme 0 <= h <= K, si K > N - Y, on arrête la boucle lorsque h
        # atteint N - Y
        #(Y + h < N ---> h < N - Y)

        for h in range(min(K, N-Y)):   
               
                somme = sumCol(B, X, Y, h)

                if (Y + h) % 2 == 0:

                        s += 2 * somme
                else :

                        s -= somme


        return s


M, N = 5, 7
B = np.random.randint(-2, 3, [M, N])
X = np.random.randint(0, M)
Y = np.random.randint(0, N)
K = np.random.randint(1, max(M, N))
print B, [X, Y, K], exercise10(B, X, Y, K)