J160. Les beaux navires
Vous avez trois armadas à installer successivement sur un champ de bataille navale, un carré 10x10 de 100 cases unitaires. Chaque navire est un rectangle identifié par sa largeur l et sa longueur L : il occupe l x L cases unitaires et peut être en contact avec le bord de la grille 10x10, mais deux navires ne peuvent pas se toucher, même par un coin.
Pour chacun des trois cas, dessinez la grille contenant tous les navires, ou prouvez qu’il est impossible de les placer dans la grille.
1- Deux 1x4, quatre 1x3, six 1x2, quatre 1x1, et deux 2x2.
2- Deux 1x4, quatre 1x3, six 1x2, six 1x1 et un 2x2.
3- Deux 1x4, quatre 1x3, six 1x2, et huit 1x1.
Résolution
Chaque bateau consomme les cases qu’il occupe et, virtuellement, les « cases de protection » qui sont autour de lui. Comme ces cases sont mutualisées lorsque deux bateaux sont côte-à-côte, on peut considérer que chaque bateau consomme (l+1)(L+1) cases, ainsi
• 2 bateaux 1x4 consommant chacun 2x5 cases consomment 20 cases,
• 4 bateaux 1x3 consommant chacun 2x4 cases consomment 32 cases,
• 6 bateaux 1x2 consommant chacun 2x3 cases consomment 36 cases,
• 4 bateaux 1x1 consommant chacun 2x2 cases consomment 16 cases,
• 2 bateaux 2x2 consommant chacun 3x3 cases consomment 18 cases,
soit au total 122 cases. En optimisant le placement, les cases de protection des bateaux situés le long des bords peuvent déborder du cadre 10x10 ; autrement dit on peut compter sur 11x11=121 cases disponibles … mais ce n’est pas assez pour placer cette première armada.
La seconde armada consomme, selon le même calcul, 121 cases. De fait le placement est possible :
La 3e armada consomme, selon le même calcul, 120 cases, mais son placement n’est pas possible.
Ci-dessous un placement optimisé saturant les bords : il manque la place pour un bateau 1x1.