Le 09/09/2004 20:27, Cl?ment a écrit :
>
> Cela dit, -tu vas me trouver exichiant, mais on est dans un forum de
> maths, non ?
- il ne me semble pas que ce que tu proposes soit une
> démonstration (dans le sens fort) que c'est bien la solution optimale.
> Qu'est-ce qui m'assure qu'une configuration "bizarre", avec des photos
> en diagonale par exemple, ne pourrait pas être meilleure ?Bien, je vais essayer d'être le plus précis possible dans mes
démonstrations mathématiques. Allons-y, je commence...
-+-+-+-
Tes photos sont de résolution 1600x1200, elles sont donc constituées
d'un rectangle de 4x3 carrés de résolution 400x400. Soit u l'unité de
longueur d'un de ces carrés de 400x400 pixels : on cherche à maximiser u
en organisant au mieux les photos.
On peut déjà donner un maximum absolu pour u, en constatant que les 11
photos ne peuvent pas couvrir une surface supérieure à celle de la
feuille de 21 cm sur 29,7 (= 21.sqrt(2)) cm.
11 photos * (4*3) * u² l). Dans un premier temps, on considèrera
que L et l ne sont pas forcément des nombres entiers.
Comme je l'écrivais dans un précédent article, la résolution de ce genre
de problème est très difficile si on accepte que les bords des photos ne
soient pas parallèles aux côtés du rectangle. J'ajoutais que la qualité
des photos risquait de s'en ressentir. Comme par ailleurs cela ne
pourrait pas faire gagner plus de 2,8 mm sur la longueur des photos
(comparer le maximum absolu avec la solution finalement trouvée), je
considère qu'on peut ignorer le cas des photos en diagonale.
-+-+-+-
Prouvons maintenant que l'on peut se limiter au cas où L et l sont
entiers. Pour cela, imaginons que l'on trace, à partir du coin en bas à
droite du rectangle Lxl, une grille de lignes horizontales et verticales
espacées de la longueur u.
Supposons qu'il existe au moins une photo dont le bord gauche ne
coïncide pas avec une des lignes de la grille. Soit la plus à gauche de
ces photos (ou l'une des plus à gauche s'il y en a plusieurs). Puisque
aucune photo non-alignée n'est plus à gauche que celle-ci, c'est qu'il y
a un espace vide à gauche de cette photo, et qu'on peut la déplacer vers
la gauche jusqu'à ce qu'elle soit alignée sur la grille, sans changer
les dimensions du rectangle Lxl.
Tant qu'il existe encore au moins une photo non alignée à gauche, on
recommence la manip. Il arrive un moment (après au maximum onze
déplacements) où toutes les photos sont alignées à gauche (et par
conséquent à droite aussi).
Maintenant on fait la même chose, mais en déplaçant *vers le bas* les
photos qui ne seraient pas alignées sur les lignes horizontales de la
grille.
Au final, si L et l n'étaient pas des nombres entiers, on peut les
réduire jusqu'au nombre entier inférieur, les photos restant à
l'intérieur du rectangle.
-+-+-+-
Récapitulons : nous devons trouver un rectangle de côtés entiers L et l
dans lequel placer onze photos de dimensions 4x3, chaque photo occupant
exactement 12 petits carrés *entiers* de la grille rectangulaire Lxl.
Ce rectangle étant agrandi au maximum, soit il s'étend sur toute la
largeur de la feuille, auquel cas on a l.u = 21 cm, soit il s'étend sur
toute la longueur, auquel cas on a L.u = 21.sqrt(2) cm.
On veut donc maximiser :
u = min(21/l, 21.sqrt(2)/L)
= 21.sqrt(2) . min( 1/L, 1/(l.sqrt(2)) )
= 21.sqrt(2) / max(L, l.sqrt(2))
Il faut soit minimiser L tout en le gardant supérieur à l.sqrt(2), soit
minimiser l tout en gardant l.sqrt(2) supérieur à L. Bien sûr, on a
comme contrainte supplémentaire que L*l est supérieur ou égal à 132
(11 photos de 12 u²).
-+-+-+-
Premier cas : L > l.sqrt(2)
Le plus petit L possible vaut 15, l pouvant valoir 9 ou 10. On peut
d'ailleurs trouver une façon de placer les 11 photos 4x3 dans un
rectangle 15x9 (*). Dans ce cas, on a u = 21.sqrt(2)/15 = 1,98 cm.
Deuxième cas : l.sqrt(2) > L
Le plus petit l possible vaut 10, L valant obligatoirement 14. Là encore
on peut trouver une façon de placer les 11 photos 4x3 dans un rectangle
14x10 (*). Dans ce cas, on a u = 21/10 = 2,1 cm, ce qui est le meilleur
résultat annoncé au début de cet article.
(*) Je te laisse retrouver toi-même les dispositions de 11 rectangles
4x3 dans un rectangle de dimensions 15x9 ou 14x10 respectivement. Cela
m'évitera de devoir tenter de l'art ASCII dans cet article.
-+-+-+-
Voilà, c'est tout, sauf si tu as des questions à poser. Merci pour cet
intéressant problème : tu reviens quand tu veux !
--
Olivier Miakinen