TP3 - Diviser pour régner ¶
De l'algorithme au programme¶
Recherche (récursive)¶
Coder l'algorithme 4 du cours (diapo 15) sous la forme d'une fonction
recherche(t, v, g, d)
.
# réponse
# test
Tri par fusion¶
Coder l'algorithme 6 du cours (diapo 26) sous la forme d'une fonction
coupe(lst)
.
# réponse
# test
Coder l'algorithme 7 du cours (diapo 27) sous la forme d'une fonction
fusion(lst1Tr, lst2Tr)
.
# réponse
# test
Coder l'algorithme 5 du cours (diapo 25) sous la forme d'une fonction
triFusion(lst)
.
# réponse
# test
Rotation d'une image de 90 degrés¶
Pour manipuler une image en Python, on peut utiliser par exemple les bibliiothèques suivantes.
from skimage import io
from pylab import *
import numpy as np
image = io.imread('image.png')
imshow(image,cmap=cm.gray)
show()
largeur, hauteur = image.shape
print("largeur :", largeur)
print("hauteur :", hauteur)
L'image est carrée et sa "dimension" est une puissance de 2.
L'idée consiste à découper l'image en quatre, à effectuer la rotation de 90 degrés pour chaque morceau, puis à les déplacer vers leur position finale.
Définir une fonction (récursive)
rotation(im, x, y, t)
qui effectue la rotation du morceau de l'image compris entre les pixels (x, y) et (x+t, y+t) oùt
est une puissance de 2.Notre problème sera alors résolu avec l'appel
rotation(image, 0, 0, largeur)
.Remarque : cette fonction ne retourne rien, elle agit, c'est une procédure.
# réponse
# test
rotation(image, 0, 0, largeur)