Prova 3: espalhe()

Re: Prova 3: espalhe()

by José Coelho de Pina -
Number of replies: 0

Comentários?


def espalhe(tab, viz):
    
    # calcule instáveis: posições com 0 não são instáveis
    instaveis = (tab >= viz) & (tab > 0)
    
    # remova grãos a serem espalhados
    tab[instaveis] -= viz[instaveis]

    # espalhe: usa o fato do valor de True ser 1 e False ser 0
    tab[1:-1,1:-1] += (  instaveis[1:-1,  :-2]   # espalha para direita
                       + instaveis[1:-1, 2:  ]   # espalha para esquerda
                       + instaveis[2:  , 1:-1]   # espalha para cima
                       + instaveis[ :-2, 1:-1] ) # espalha para baixo