next up previous contents index
suivant: Les paires carrées monter: Le quadrillage précédent: L'énoncé   Table des matières   Index

La solution

  1. quadrillage(p,q):={
     local k,j,L:=segment(0,p+i*q);
    pour j de 0 jusque p faire
    L:=L,segment(j,j+i*q);
    fpour; 
    pour k de 0 jusque q faire 
    L:=L,segment(i*k,p+i*k);
    fpour
    L;
    }:;
    
    On tape :
    quadrillage(3,5)
    On obtient :
    \framebox{\includegraphics[width=\textwidth]{quadrillage}}
  2. On remarque que la diagonale entre dans le premier carreau, puis elle entre dans un nouveau carreau lorsqu'elle coupe une ligne verticale ou une ligne horizontale ou à la fois une ligne verticale et une ligne vhorizontale.
    Puisqu'il y a p - 1 verticales et q - 1 horizontales à traverser, si la diagonale ne coupe jamais à la fois une verticale et une horizontale (c'est à dire si elle ne contient pas de points à coordonnées entières à part le point de départ et le point d'arrivèe) le nommbre de carreaux traversés est 1 + p - 1 + q - 1 = p + q - 1.
    Si la diagonale coupe r fois, une verticale et une horizontale en même temps, c'est à dire si elle contient r + 2 points à coordonnées entières (+2 en comptant le point de départ et le point d'arrivèe) le nommbre de carreaux traversés est p + q - 1 - r.
    Que vaut r ?
    La diagonale a comme équation y = q*x/p = q1*x/p1 où p = p1*d et q = q1*d avec d =pgcd(p, q) et elle aura des points à coordonnées entières chaque fois que x est entier et que p1 divise q1*x. Puisque p1 et q1 sont premiers entre eux, p1 divise q1*x si x est un entier multiple de p1. Cela se produit lorsque 0 $ \geq$ x $ \geq$ p, pour x = 0, x = p1, x = 2*p1...x = d*p1 = p, soit d + 1 fois.
    On a donc r + 2 = d + 1 et le nommbre de carreaux traversés est p + q -pgcd(p, q).
  3. On tape la fonction nbcarreaux :
    nbcarreaux(p,q):={
    local d;
    d:=gcd(p,q);
    return p+q-d;
    }
    
    On tape :
    nuage_points([x,nbcarreaux(240,x)]$(x=0..300))
    On obtient :
    \framebox{\includegraphics[width=\textwidth]{quadrillage1}} On tape :
    plotlist([x,nbcarreaux(240,x)]$(x=0..300))
    On obtient :
    \framebox{\includegraphics[width=\textwidth]{quadrillage2}}

next up previous contents index
suivant: Les paires carrées monter: Le quadrillage précédent: L'énoncé   Table des matières   Index
Documentation de giac écrite par Renée De Graeve