un code asymptote fait un peu vite, donc sale et bruyant.
Trouver la formule

de chaque petit carré représente le nombre 1.
À gauche trois réalisations de cette somme, à droite un rectangle dont
on connaît l'aire.
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***
- CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
- size(0,150);
- import patterns;
- add("hatch",hatch(1.5mm));
- add("hatchback",hatch(1.5mm,NW));
- add("crosshatch",crosshatch(1.5mm));
- path p=unitsquare;
- draw(p);
- draw(shift(6,0)*p);
- filldraw(shift(12,0)*p,gray);
- for(int i=0;i<2;++i)
- for (int j=0; j<2;++j)
- {
- draw(shift(i,-3+.2+j)*p);
- draw(shift(i+6,-3+.2+j)*p);
- draw(shift(i+12,-3+.2+j)*p);
- }
- filldraw(shift(1+12,-3+.2+1)*p,gray);
- filldraw(shift(12,-2+.2)*((0,1)--(1,1)--(1,0)--(2,0)--(2,-1)--(0,-1)--cycle),pattern("hatch"));
- for(int i=0;i<3;++i)
- for (int j=0; j<3;++j)
- {
- draw(shift(i,-7+.2+j)*p);
- draw(shift(i+6,-7+.2+j)*p);
- draw(shift(i+12,-7+.2+j)*p);
- }
- filldraw(shift(2+12,-6+.2+1)*p,gray);
- filldraw(shift(13,-5+.2)*((0,1)--(1,1)--(1,0)--(2,0)--(2,-1)--(0,-1)--cycle),pattern("hatch"));
- filldraw(shift(12,-5+.2)*((0,1)--(1,1)--(1,0)--(1,-1)--(3,-1)--(3,-2)--(0,-2)--cycle),pattern("hatchback"));
- int n=4;
- for(int i=0;i<n;++i)
- for (int j=0; j<n;++j)
- {
- draw(shift(i,-12+.2+j)*p);
- draw(shift(i+6,-12+.2+j)*p);
- draw(shift(i+12,-12+.2+j)*p);
- }
- filldraw(shift(3+12,-10+.2+1)*p,gray);
- filldraw(shift(14,-9+.2)*((0,1)--(1,1)--(1,0)--(2,0)--(2,-1)--(0,-1)--cycle),pattern("hatch"));
- filldraw(shift(13,-9+.2)*((0,1)--(1,1)--(1,0)--(1,-1)--(3,-1)--(3,-2)--(0,-2)--cycle),pattern("hatchback"));
- filldraw(shift(12,-9+.2)*((0,1)--(1,1)--(1,-2)--(4,-2)--(4,-3)--(0,-3)--cycle),pattern("crosshatch"));
- int n=5;
- for(int i=0;i<n;++i)
- for (int j=0; j<n;++j)
- {
- draw(shift(i,-18+.2+j)*p);
- draw(shift(i+6,-18+.2+j)*p);
- draw(shift(i+12,-18+.2+j)*p);
- }
- filldraw(shift(4+12,-15+.2+1)*p,gray);
- filldraw(shift(15,-14+.2)*((0,1)--(1,1)--(1,0)--(2,0)--(2,-1)--(0,-1)--cycle),pattern("hatch"));
- filldraw(shift(14,-14+.2)*((0,1)--(1,1)--(1,0)--(1,-1)--(3,-1)--(3,-2)--(0,-2)--cycle),pattern("hatchback"));
- filldraw(shift(13,-14+.2)*((0,1)--(1,1)--(1,-2)--(4,-2)--(4,-3)--(0,-3)--cycle),pattern("crosshatch"));
- filldraw(shift(12,-14+.2)*((0,1)--(1,1)--(1,-3)--(5,-3)--(5,-4)--(0,-4)--cycle),lightgray);
- int n=5;
- for(int i=0;i<n;++i)
- for (int j=0; j<n;++j)
- {
- draw(shift(i,-18+.2+j)*p);
- draw(shift(i+6,-18+.2+j)*p);
- draw(shift(i+12,-18+.2+j)*p);
- }
- picture tt;
- size(tt,0,150);
- filldraw(tt,(1,1)--(10,1)--(10,0)--(1,0)--cycle,lightgray);
- filldraw(tt,(2,1)--(2,3)--(9,3)--(9,1)--cycle,pattern("crosshatch"));
- filldraw(tt,(3,3)--(3,6)--(8,6)--(8,3)--cycle,pattern("hatchback"));
- filldraw(tt,(4,6)--(4,10)--(7,10)--(7,6)--cycle,pattern("hatch"));
- filldraw(tt,(5,10)--(5,15)--(6,15)--(6,10)--cycle,gray);
- for(int i=0;i<11;++i)
- {
- for(int j=0;j<15;++j)
- {
- draw(tt,shift(i,j)*p);
- }
- }
- draw(tt,((0,0)--(11,0)--(11,15)--(0,15)--cycle),black+2bp);
- draw(tt,(0,10)--(11,10),black+2bp);
- draw(tt,(0,6)--(11,6),black+2bp);
- draw(tt,(0,3)--(11,3),black+2bp);
- draw(tt,(0,1)--(11,1),black+2bp);
- add(tt.fit(),(19,-18));
O.G.