moyen
Problème des huit dames (1)
Aux échecs, la dame est capable de se déplacer dans toutes les directions.
Le problème des huit dames consiste à placer \(8\) dames sur un échiquier classique (\(8\) lignes et \(8\) colonnes) de façon à ce qu'aucune d'entre elles ne soit menacée par une autre. Ainsi il n'y a qu'une seule dame par ligne, colonne ou diagonale. La figure ci-dessus (à droite) illustre une disposition valide.
On considère dans cet exercice des « échiquiers » de taille \(n \ge 1\) variable. On garantit que l'échiquier est bien carré. Selon la taille de l'échiquier, on pourra placer plus ou moins de dames.
Le problème considéré dans cet exercice consiste donc à vérifier qu'il y a exactement \(n\) dames dans un échiquier de \(n \times n\) cases de façon à ce qu'aucune d'entre elles ne soit menacée par une autre.
Les échiquiers seront représentés en machine par des listes de listes contenant :
0 si la case correspondante est vide,
1 si elle contient une dame.
Exemples de listes
La liste ci-dessous représente la disposition valide donnée plus haut.
🐍 Script Python valide = [
[ 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 ],
[ 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 ],
[ 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 ],
[ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 ],
[ 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 ],
[ 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 ],
[ 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ],
[ 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 ]
]
La liste ci-dessous représente une disposition invalide dans un échiquier de taille \(n = 3\) :
🐍 Script Python invalide = [
[ 0 , 0 , 1 ],
[ 1 , 0 , 0 ],
[ 0 , 1 , 0 ]
]
Cette seconde disposition est invalide car deux dames sont sur une même diagonale (invalide [ 1 ][ 0 ] et invalide [ 2 ][ 1 ] toutes deux la valeurs 1 ).
Vous devez écrire différentes fonctions qui vont servir à compter le nombre de dames selon différents axes d'un échiquier, puis la fonction permettant de valider la disposition :
ligne(echiquier, i) renvoie le nombre de dames sur une ligne de l'échiquier ;
colonne(echiquier, j) renvoie le nombre de dames sur une colonne de l'échiquier ;
diagonale_haut(echiquier, i, j) et diagonale_bas(echiquier, i, j) renvoient chacune le nombre de dames sur une diagonale de l'échiquier ;
disposition_valide(echiquier) renvoie le booléen répondant à la question « la disposition est-elle valide ? ».
On garantit que toutes les listes de listes passées en paramètres ont bien le même nombre de lignes et de colonnes et que tous les indices sont valides (0 <= indice < n ).
Exemples
On utilise les échiquiers valide et invalide définis plus haut.
Les lignes >>> ligne ( valide , 0 )
1 # [0, 0, 0, 1, 0, 0, 0, 0]
>>> ligne ( valide , 1 )
1 # [0, 0, 0, 0, 0, 0, 1, 0]
>>> ligne ( valide , 7 )
1 # [0, 0, 0, 0, 0, 1, 0, 0]
Les colonnes >>> colonne ( valide , 0 )
1 # [0, 0, 0, 0, 0, 0, 1, 0]
>>> colonne ( valide , 1 )
1 # [0, 0, 0, 0, 1, 0, 0, 0]
>>> colonne ( valide , 7 )
1 # [0, 0, 0, 1, 0, 0, 0, 0]
Les diagonales ↗ >>> diagonale_haut ( valide , 0 , 0 )
0 # [0]
>>> diagonale_haut ( valide , 2 , 0 )
0 # [0, 0, 0]
>>> diagonale_haut ( valide , 7 , 0 )
1 # [0, 0, 0, 0, 0, 0, 1, 0]
>>> diagonale_haut ( valide , 3 , 4 )
1 # [0, 0, 1, 0]
Les diagonales ↘ >>> diagonale_bas ( valide , 0 , 0 )
1 # [0, 0, 1, 0, 0, 0, 0, 0]
>>> diagonale_bas ( valide , 1 , 0 )
1 # [0, 0, 0, 0, 1, 0, 0]
>>> diagonale_bas ( valide , 2 , 0 )
1 # [0, 0, 0, 0, 0, 1]
>>> diagonale_bas ( valide , 7 , 0 )
0 # [0]
>>> diagonale_bas ( invalide , 1 , 0 )
2 # [1, 1]
Disposition valide ? >>> disposition_valide ( valide )
True
>>> disposition_valide ( invalide )
False
Fonction ligne
Écrire la fonction ligne qui prend en paramètres une liste echiquier et l'indice d'une ligne i et renvoie le nombre de dames dans cette ligne dans l'échiquier.
Version vide Version à compléter
.128013:pv(ui2edms=1 owlSnatf)h],qcrg[yPkb/050j0i0v0u0g0r0l0o0C0r0u0l0l0m010v0g0c010406050l0f0k0k0u0D0G040s0p0r0f0#0p0t050K0,0.0:0=0*0c040~1505180K181a150*0j0g0d0T0V0X0Z0y0g0E0y0r1o0y0v0(050O0J0r0i1j0W0Y011n1p1r1p0v1x1z1v0v0J0p0j0=1w0D160v0y0T0^0l0c0u0t0Z0h011B1l010w0Q0i0t0u0k0i1v1Z1#1*1D1-1z1:1=0(0a0o0H0D0p0c0p0l0g0{0t0o0M1X0D0D0i0C2a0~1^0t160K1V2n0v1T1S1U0j1`0Z1r0t1/271v1g1i0U1C2x0g2z0t1P1h1v0c2g162l2n2R0+1!2b2F1+2K0D0/0r0(0n2k2V0)2U1_2X1D2Z2#0(0h2)1#2n2O0i2n2D2q0j2u2w010C1P1?162}192P2,2m2@3b330M2Q2V310I0(0M0w3c3g2-1k1D0q0(0o3n3a310t0w0(1H2z3v2l310%040e3D3h2.0Z0t0(2h1n0B0f0g0i0D3J3p2G013G0A3n3u3E3L013N040g3W2W3q0Z3G0x0b3n060o3`3%3K3:013j042g0v0f0D0}0 2*3|3X2Y0J0(103.3F0(3I472^3w3)3+3P0g3R3T3V4j3b3(3~3G0F4f4m0(3-4t3o3/3Y3G0z0x3^0~3e2{17390K372o2 0~2r2q1O1Q2q0u1y4N4Q1h2+4Q0N0P0R04.
.128013:pv(ui2edms=1 owlSnatf)h],qcrg[yPkb/050j0i0v0u0g0r0l0o0C0r0u0l0l0m010v0g0c010406050l0f0k0k0u0D0G040s0p0r0f0#0p0t050K0,0.0:0=0*0c040~1505180K181a150*0j0g0d0T0V0X0Z0y0g0E0y0r1o0y0v0(050O0J0r0i1j0W0Y011n1p1r1p0v1x1z1v0v0J0p0j0=1w0D160v0y0T0^0l0c0u0t0Z0h011B1l010w0Q0i0t0u0k0i1v1Z1#1*1D1-1z1:1=0(0a0o0H0D0p0c0p0l0g0{0t0o0M1X0D0D0i0C2a0~1^0t160K1V2n0v1T1S1U0j1`0Z1r0t1/271v1g1i0U1C2x0g2z0t1P1h1v0c2g162l2n2R0+1!2b2F1+2K0D0/0r0(0n2k2V0)2U1_2X1D2Z2#0(0h2)1#2n2O0i2n2D2q0j2u2w010C1P1?162}192P2,2m2@3b330M2Q2V310I0(0M0w3c3g2-1k1D0q0(0o3n3a310t0w0(1H2z3v2l310%040e3D3h2.0Z0t0(2h1n0B0f0g0i0D3J3p2G013G0A3n3u3E3L013N040g3W2W3q0Z3G0x0b3n060o3`3%3K3:013j042g0v0f0D0}0 2*3|3X2Y0J0(103.3F0(3I472^3w3)3+3P0g3R3T3V4j3b3(3~3G0F4f4m0(3-4t3o3/3Y3G0z0x3^0~3e2{17390K372o2 0~2r2q1O1Q2q0u1y4N4Q1h2+4Q0N0P0R04.
Fonction colonne
Écrire la fonction colonne qui prend en paramètres une liste echiquier et l'indice d'une colonne j et renvoie le nombre de dames dans cette colonne dans l'échiquier.
Version vide Version à compléter
.128013:pv(ui2edms=1 jowlSnatf)h],qcrg[yPkb/050j0i0w0v0g0s0l0o0D0s0v0l0l0m010w0g0c010406050l0f0k0k0v0E0H040t0q0s0f0$0q0u050L0-0/0;0?0+0c040 1605190L191b160+0j0g0d0U0W0Y0!0z0g0F0z0s1p0z0w0)050P0K0s0i1k0X0Z011o1q1s1q0w1y1A1w0w0K0q0j0?1x0E170w0z0U0_0l0c0v0u0!0h011C1m010x0R0i0u0v0k0i1w1!1$1+1E1.1A1;1?0)0a0o0I0E0q0c0q0l0g0|0u0o0N1Y0E0E0i0D2b0 1_0u170L1W2o0w1U1T1V0j1{0!1s0u1:281w1h1j0V1D2y0g2A0u1Q1i1w0c2h172m2o2S0,1#2c2G1,2L0E0:0s0)0n2l2W0*2V1`2Y1E2!2$0)0h2*1$2o2P0i2o2E2r0j2v2x010D1Q1@172~1a2Q2-2n2^3c340N2R2W320J0)0N0x3d3h2.1l1E0r0)0o3o3b320u0x0)340s0}2A3w2m320(040e3G3i2/0!0u0)2i1o0C0f0g0i0E3M3q2H013J0B3o3v3H3O013Q040p3Z2X3r0!3J0y0b3o060o3}3*3N3?013k042h0w0f0E0~102+3 3!2Z0K0)113;3I0)3L4a2_3x3,3.1s4i3,3J0G4s413.3:4m3c3+413J0A3)4o41430x0q3Y4A044c3=3#4q0g4G4C3#0q3t042J4U404R3R0D3T3V3X4w3#3^3{0 3f2|183a0L382p300 2s2r1P1R2r0v1z4?4_1i2,4_0O0Q0S04.
.128013:pv(ui2edms=1 jowlSnatf)h],qcrg[yPkb/050j0i0w0v0g0s0l0o0D0s0v0l0l0m010w0g0c010406050l0f0k0k0v0E0H040t0q0s0f0$0q0u050L0-0/0;0?0+0c040 1605190L191b160+0j0g0d0U0W0Y0!0z0g0F0z0s1p0z0w0)050P0K0s0i1k0X0Z011o1q1s1q0w1y1A1w0w0K0q0j0?1x0E170w0z0U0_0l0c0v0u0!0h011C1m010x0R0i0u0v0k0i1w1!1$1+1E1.1A1;1?0)0a0o0I0E0q0c0q0l0g0|0u0o0N1Y0E0E0i0D2b0 1_0u170L1W2o0w1U1T1V0j1{0!1s0u1:281w1h1j0V1D2y0g2A0u1Q1i1w0c2h172m2o2S0,1#2c2G1,2L0E0:0s0)0n2l2W0*2V1`2Y1E2!2$0)0h2*1$2o2P0i2o2E2r0j2v2x010D1Q1@172~1a2Q2-2n2^3c340N2R2W320J0)0N0x3d3h2.1l1E0r0)0o3o3b320u0x0)340s0}2A3w2m320(040e3G3i2/0!0u0)2i1o0C0f0g0i0E3M3q2H013J0B3o3v3H3O013Q040p3Z2X3r0!3J0y0b3o060o3}3*3N3?013k042h0w0f0E0~102+3 3!2Z0K0)113;3I0)3L4a2_3x3,3.1s4i3,3J0G4s413.3:4m3c3+413J0A3)4o41430x0q3Y4A044c3=3#4q0g4G4C3#0q3t042J4U404R3R0D3T3V3X4w3#3^3{0 3f2|183a0L382p300 2s2r1P1R2r0v1z4?4_1i2,4_0O0Q0S04.
Fonction diagonale_haut
Écrire la fonction diagonale_haut qui prend en paramètres une liste echiquier et les coordonnées d'une case (ligne i et colonne j) et renvoie le nombre de dames dans la diagonale débutant dans la case indiquée et dirigée vers le haut à droite ↗.
Version vide Version à compléter
.128013:Lp(40ed3; 1jo5_n)h]6,qc[yCuvài2+xms7=wlSIatf-ORrg.éPkb8/050i0h0S0R0F0O0K0l0y0O0R0K0K0M010S0F0d010406050K0C0J0J0R0X0A040P0o0O0C0}0o0r0l020R0J0d0k0l0W0h170X0x0C0h0K050)1416181a120d041y1F051I0)1I1K1F120i0F0D0=0@0_0{0t0F0Y0t0O1Y0t0S10050-0%0O0h1T0^0`011X1Z1#1Z0S1+1-1)0S0%0o0i1a1*0X1G0S0t0=1d0K0d0R0r0{0G011/1V010T0/0h0r1l0h1)2a2c2h1;2k1-2n0J2p040a0l0#0X0o0d0o0K0F1g1i0+280X0X0h0y2K1y2r0r1G0)262W0S2423250i2t0{1#0r2m2H1)1Q1S0?1:2*0F2,0r201R1)0d2P1G2U2W31132b1i2=2i2`0X170O100m2T3511342s371;393b100G3f2c3h2U2)013m0R3c040j3q2V123t3k0{3w3y0f3B3s353u3H100p3K3D3M3F3v0o3a3x100v3R3i361U3l3W3n040L3#3E3(3G3*3Y040(3K1H2 1y2:2Z0i2%3u0y202z0*1R1G2~0h303g3_420+4a3j3:010$100+0T3_3/2?010N100l4n3T4h0r0T4k0F0R0Y1h3x0h0q0t0R1f4u4g4p0 040e4K3%4p0r102Q1X1u0F0h0X4Q3u4N0w3K4t4o38100F4#3U4%4)3$3N100n4/4h4N0s0b3R0l504*4v4S100-0/1-4=4+1;0o100M5953380%102w4`4M104P1z4b5a3G4U0y4W0C4Y4!5p3r4?4:100s4 515B4w102P140O0-0S5f4L2i5c045e5z2V525Q1;0J0F100g5F505H4p4j040N1X585V045X4R4,044.5;5?3u5S020Y0S0k5U315|3U5!5$5P5@5b4r042c0i694@044_5{5*5R10025M0k6g3U4T04560O5:335r014N4~5;06516F655I045K0C5M0R5O6k6z5S0H633g6H54044V0F4X4Z5l2i4N0z6$3l4-6*0{4N0u6)5;6l6+6i6-6A100u5(6G6?5s5_6r4h5S0U6T3r6V2i67043e6D6G5G6z6t6j646 016R765W7k7a7c316E7f5g1;5,2P0S0C0X0r726W6K6M6O7s1y4d493`7L0)3}1y0S3 7Q2#2X1 212Z0R1,7N3}1E4f6a0{2P0J0q0T0R0$4F0t0j101q1s1u1w0l6C331L3h1F0Q0O0l1w0S0l4I0_0F0l2G897!0l0i001f0/0F0K4Z0l0F0y8a0C2,0l1 0C0?1.057K3u1?1!1$1(7(3u5,0T3W3_0)7K040Z120%240c000F0i0!1.858f1.1u2c0}2k8m1-0;8V0d0@0y1r2m0S0;1-0l0O1h0Y8f8h8s1Q4B4D1-0Z2C180-0r862M7k182J0t170S0h0I10090e0e0F0w0n0s095E5{2G7A0l8r1.8 4C2n8@1=4I9f010w0l1h8b0h1f6C1O056L3h1#047^1h9f0X870C8b1e8+8x6z9b269e9g9i9l0H0m9q4)1^2,0K9G2m281m96860@8^1Y8s9_427A0;0e1u8T837.1f0l0!0Y4E2y970l0D0!0X0F8(0X0s0Z1y9R129R0P9x0!8-0R8/9W0E8f2E2J9x004I9Z0C0;9aal9)6N9+049j6v1-0U0n9:5{428_0r9?aq0)as059R0B008Y8@5!0r0F0J158Z0=7{0+0C0Iai4Ea40l4Xa~8f1h2,9W8@0D0X0.0l2`0J8Q9xaway8/ag8=8b2H2I7!0;0K2cbq3W0}9W2M0O000!5u6Z5w4Za%a)9R0V1i2b0X989$7v0{9(9daP9haR9k9m9oaX649_0J9U8$ai4Z8?0RaD0oaFa^aM9c9*bT9j0$bY6U0!0-0d1w9G0i1h0y8^7{423Wc0a#8W0;aCajalan0l0K9U8f9Y0S0Ab}781;bQb=9,9l0U0$9n0H0$9p9r31bF0F3h0)9P7%bI9H0%0}8;878_0X8?1.8z141Rb%9M3h2:8A1$1^1%2}3{7~338M7k5,4l6_6c4t6=7g4y049y917;9D6_4N5o6ybO3v5t5v5xc|104(6Pd06t5`c 5Y6.d67D5^7i5qd04|7}3g7t5)7g100r0q0+bi8:971xd8dd7l5ddg3l5i04a:d54O6_da6_6R6_7qdId77j7gdF5kc;dk5ndKd2bCd4dWdA4|dM100UdZ6^d%7)6`04czdn6Fc+5J0,7A7Cdzd:0rdF1AdIc~djdA6t6Y6!5ydcd:6(d-dbe5d:74d-0$dI6:d-di5A6Q100HejeldD0{8H8Jd~6hekez3U0o6c2^ev3vdFba0r0Y0he3d-dsdu8.dw8=dI0sd?3r128L432W482W7$3|0,0.0:04.
.128013:Lp(40ed3; 1jo5_n)h]6,qc[yCuvài2+xms7=wlSIatf-ORrg.éPkb8/050i0h0S0R0F0O0K0l0y0O0R0K0K0M010S0F0d010406050K0C0J0J0R0X0A040P0o0O0C0}0o0r0l020R0J0d0k0l0W0h170X0x0C0h0K050)1416181a120d041y1F051I0)1I1K1F120i0F0D0=0@0_0{0t0F0Y0t0O1Y0t0S10050-0%0O0h1T0^0`011X1Z1#1Z0S1+1-1)0S0%0o0i1a1*0X1G0S0t0=1d0K0d0R0r0{0G011/1V010T0/0h0r1l0h1)2a2c2h1;2k1-2n0J2p040a0l0#0X0o0d0o0K0F1g1i0+280X0X0h0y2K1y2r0r1G0)262W0S2423250i2t0{1#0r2m2H1)1Q1S0?1:2*0F2,0r201R1)0d2P1G2U2W31132b1i2=2i2`0X170O100m2T3511342s371;393b100G3f2c3h2U2)013m0R3c040j3q2V123t3k0{3w3y0f3B3s353u3H100p3K3D3M3F3v0o3a3x100v3R3i361U3l3W3n040L3#3E3(3G3*3Y040(3K1H2 1y2:2Z0i2%3u0y202z0*1R1G2~0h303g3_420+4a3j3:010$100+0T3_3/2?010N100l4n3T4h0r0T4k0F0R0Y1h3x0h0q0t0R1f4u4g4p0 040e4K3%4p0r102Q1X1u0F0h0X4Q3u4N0w3K4t4o38100F4#3U4%4)3$3N100n4/4h4N0s0b3R0l504*4v4S100-0/1-4=4+1;0o100M5953380%102w4`4M104P1z4b5a3G4U0y4W0C4Y4!5p3r4?4:100s4 515B4w102P140O0-0S5f4L2i5c045e5z2V525Q1;0J0F100g5F505H4p4j040N1X585V045X4R4,044.5;5?3u5S020Y0S0k5U315|3U5!5$5P5@5b4r042c0i694@044_5{5*5R10025M0k6g3U4T04560O5:335r014N4~5;06516F655I045K0C5M0R5O6k6z5S0H633g6H54044V0F4X4Z5l2i4N0z6$3l4-6*0{4N0u6)5;6l6+6i6-6A100u5(6G6?5s5_6r4h5S0U6T3r6V2i67043e6D6G5G6z6t6j646 016R765W7k7a7c316E7f5g1;5,2P0S0C0X0r726W6K6M6O7s1y4d493`7L0)3}1y0S3 7Q2#2X1 212Z0R1,7N3}1E4f6a0{2P0J0q0T0R0$4F0t0j101q1s1u1w0l6C331L3h1F0Q0O0l1w0S0l4I0_0F0l2G897!0l0i001f0/0F0K4Z0l0F0y8a0C2,0l1 0C0?1.057K3u1?1!1$1(7(3u5,0T3W3_0)7K040Z120%240c000F0i0!1.858f1.1u2c0}2k8m1-0;8V0d0@0y1r2m0S0;1-0l0O1h0Y8f8h8s1Q4B4D1-0Z2C180-0r862M7k182J0t170S0h0I10090e0e0F0w0n0s095E5{2G7A0l8r1.8 4C2n8@1=4I9f010w0l1h8b0h1f6C1O056L3h1#047^1h9f0X870C8b1e8+8x6z9b269e9g9i9l0H0m9q4)1^2,0K9G2m281m96860@8^1Y8s9_427A0;0e1u8T837.1f0l0!0Y4E2y970l0D0!0X0F8(0X0s0Z1y9R129R0P9x0!8-0R8/9W0E8f2E2J9x004I9Z0C0;9aal9)6N9+049j6v1-0U0n9:5{428_0r9?aq0)as059R0B008Y8@5!0r0F0J158Z0=7{0+0C0Iai4Ea40l4Xa~8f1h2,9W8@0D0X0.0l2`0J8Q9xaway8/ag8=8b2H2I7!0;0K2cbq3W0}9W2M0O000!5u6Z5w4Za%a)9R0V1i2b0X989$7v0{9(9daP9haR9k9m9oaX649_0J9U8$ai4Z8?0RaD0oaFa^aM9c9*bT9j0$bY6U0!0-0d1w9G0i1h0y8^7{423Wc0a#8W0;aCajalan0l0K9U8f9Y0S0Ab}781;bQb=9,9l0U0$9n0H0$9p9r31bF0F3h0)9P7%bI9H0%0}8;878_0X8?1.8z141Rb%9M3h2:8A1$1^1%2}3{7~338M7k5,4l6_6c4t6=7g4y049y917;9D6_4N5o6ybO3v5t5v5xc|104(6Pd06t5`c 5Y6.d67D5^7i5qd04|7}3g7t5)7g100r0q0+bi8:971xd8dd7l5ddg3l5i04a:d54O6_da6_6R6_7qdId77j7gdF5kc;dk5ndKd2bCd4dWdA4|dM100UdZ6^d%7)6`04czdn6Fc+5J0,7A7Cdzd:0rdF1AdIc~djdA6t6Y6!5ydcd:6(d-dbe5d:74d-0$dI6:d-di5A6Q100HejeldD0{8H8Jd~6hekez3U0o6c2^ev3vdFba0r0Y0he3d-dsdu8.dw8=dI0sd?3r128L432W482W7$3|0,0.0:04.
Fonction diagonale_bas
Écrire la fonction diagonale_haut qui prend en paramètres une liste echiquier et les coordonnées d'une case (ligne i et colonne j) et renvoie le nombre de dames dans la diagonale débutant dans la case indiquée et dirigée vers le bas à droite ↘.
Version vide Version à compléter
.128013:Lp(40ed3; 1jo5_n)h]6,qc[yCuvài2+Dxms7=wlSIatf-ORrg.éPkb8/050i0h0T0S0F0P0L0l0y0P0S0L0L0N010T0F0d010406050L0C0K0K0S0Y0A040Q0o0P0C0~0o0r0l020S0K0d0k0l0X0h180Y0x0C0h0L050*1517191b130d041z1G051J0*1J1L1G130i0F0D0?0^0`0|0t0F0Z0t0P1Z0t0T11050.0(0P0h1U0_0{011Y1!1$1!0T1,1.1*0T0(0o0i1b1+0Y1H0T0t0?1e0L0d0S0r0|0G011:1W010U0:0h0r1m0h1*2b2d2i1=2l1.2o0K2q040a0l0$0Y0o0d0o0L0F1h1j0,290Y0Y0h0y2L1z2s0r1H0*272X0T2524260i2u0|1$0r2n2I1*1R1T0@1;2+0F2-0r211S1*0d2Q1H2V2X32142c1j2?2j2{0Y180P110m2U3612352t381=3a3c110G3g2d3i2V2*013n0S3d040j3r2W133u3l0|3x3z0f3C3t363v3I110p3L3E3N3G3w0o3b3y110v3S3j371V3m3X3o040M3$3F3)3H3+3Z040)3L1I301z2;2!0i2(3v0y212A0+1S1H2 0h313h3`430,4b3k3;010%110,0U3`3:2@010O110l4o3U4i0r0U4l0F0S0Z1i3y0h0q0(0_4v4h4q10040e4K3(4q0r112R1Y1v0F0h0Y4Q3v4N0w3L4u4p39110F4#3V4%4)3%3O110n4/4i4N0s0b3S0l504*4w4S110.0:1.4=4+1=0o110N5953390(112x4`4M114P1A4c5a3H4U0y4W0C4Y4!5p3s4?4:110s4 515B4x112Q150P0.0T5f4L2j5c045e5z2W525Q1=0K0F110g5F505H4q4k040O1Y585V045X4R4,044.5;5?3v5S025M0k5P5@3m550/0P5:325|3V0o4s042d0i624@044_5{5*5R115 0T616l5r3w65570h5l2j4N4~5;06516E6a5I045K0C5M0S5O6s5g5b110H5U696m64044V0F4X4Z6y1=4N0z6$5s5_6*014N0u6)5;6V6+6k346t6/5(6F6?6u6,6O5Y0|5S6S6h3V5!3e6|6E6~4T6j764i746T3h6G4q78043f6C7b6t5,2Q0T0C0Y0r7f546I1x6K5N3$0*4e4a3{7H0*3~1z0T407M2$2Y20222!0S1-7J3~1F4g630|2Q0K0q0U0S0%4G0t0j111r1t1v1x0l6B341M3i1G0R0P0l1x0T0l0S0C0`0F0l2H867W0l0i001g0:0F0L4Z0l0F0y870C2-0l200C0@1/057G3v1@1#1%1)7!3v5,0U3X3`7F44040!130(250c000F0i0#1/818c1/1v2d0~2l8j1.0=8S0d0^0y1s2n0T0=1.0l0P1i0Z8c8e8p1R4C4E1.0!2D190.0r822N6~192K0t180T0h0J11090e0e0F0w0n0s095E5{2H7v0l8o1/8|4D2o8;014I0L010w0l1i880h1g6B1P056K3i1$040I1x8,0r0i2Q8_84881f0=970Y999b9d9f0e56670h0V0F9n4)1_2-0L9D2n291n93820^8=1Z8p9`437v0L0!1z9O139O0Q9u0#8*0S8,0Y0l0E8c2F2K9u009X8*857k2j98279(9e049g9,1.0V0n9;5{438?0r9@a70*a9059O0B008V8;5!0r0F0K168W0?7@0,0C0J0l0D4Fa50l4Xa)0S8c1i2-ai8;0D0Y0/0l2{0K8N9uadaf8,2z940=892J7W0=0L2dba3X0~ai2N0P000#5u6Z5w4ZaLaN9O0W1j2c0Y958u6tav9a6M9)az9h9j9laF699`0,0L9S0i8Za)4Z8:a:9U0oanaZ9#9%bBay9g0%bH7j0#0.0d1x9D0i1i0y8=7@433Xb.aJ8T0=ak0D0#9$8#ai0L1i950C0l0T0Ab+at1=bzax9*9i0H0%9kcg9m9o32bp0F3i0*9M7Zbs9E0(0~8.838?0Y8:1/8w151SbO9J3i2;8x1%1_1(2~3|7`347G8C3V5,4m6-6d4u6=6t4y4A8}9x4G9A6-4N5o6_6P6+6Y6!5yc/726.114(717#6 5`c^c~4;c}6i6^5qc:c`044}6|7c6v9-7y6n5Tdg3m5i045kc!d8c-6-7dc=bnc@d7c_4|dcc#110r0q0,b28-b5dj735ddI3wdlaUc,5ndrde68dwc~5S0VdR70d14$c{dL7daB6xdoc_dWdYd65A6`5Ddzd87s0-7v7xd43V0rdl1BdP4Od%5t5v5xe16;d!d}4-6-74dY0%e16:d.ec6ReeegdL8E8Gd|6Hefeq4q6c4-d{6Uc#dla`0r0Zd*e94{dQd+c~7ddCdE8+dG8/e1cl7j6~dy6C1zcS7I2X7Y3}0-660L04.
.128013:Lp(40ed3; 1jo5_n)h]6,qc[yCuvài2+Dxms7=wlSIatf-ORrg.éPkb8/050i0h0T0S0F0P0L0l0y0P0S0L0L0N010T0F0d010406050L0C0K0K0S0Y0A040Q0o0P0C0~0o0r0l020S0K0d0k0l0X0h180Y0x0C0h0L050*1517191b130d041z1G051J0*1J1L1G130i0F0D0?0^0`0|0t0F0Z0t0P1Z0t0T11050.0(0P0h1U0_0{011Y1!1$1!0T1,1.1*0T0(0o0i1b1+0Y1H0T0t0?1e0L0d0S0r0|0G011:1W010U0:0h0r1m0h1*2b2d2i1=2l1.2o0K2q040a0l0$0Y0o0d0o0L0F1h1j0,290Y0Y0h0y2L1z2s0r1H0*272X0T2524260i2u0|1$0r2n2I1*1R1T0@1;2+0F2-0r211S1*0d2Q1H2V2X32142c1j2?2j2{0Y180P110m2U3612352t381=3a3c110G3g2d3i2V2*013n0S3d040j3r2W133u3l0|3x3z0f3C3t363v3I110p3L3E3N3G3w0o3b3y110v3S3j371V3m3X3o040M3$3F3)3H3+3Z040)3L1I301z2;2!0i2(3v0y212A0+1S1H2 0h313h3`430,4b3k3;010%110,0U3`3:2@010O110l4o3U4i0r0U4l0F0S0Z1i3y0h0q0(0_4v4h4q10040e4K3(4q0r112R1Y1v0F0h0Y4Q3v4N0w3L4u4p39110F4#3V4%4)3%3O110n4/4i4N0s0b3S0l504*4w4S110.0:1.4=4+1=0o110N5953390(112x4`4M114P1A4c5a3H4U0y4W0C4Y4!5p3s4?4:110s4 515B4x112Q150P0.0T5f4L2j5c045e5z2W525Q1=0K0F110g5F505H4q4k040O1Y585V045X4R4,044.5;5?3v5S025M0k5P5@3m550/0P5:325|3V0o4s042d0i624@044_5{5*5R115 0T616l5r3w65570h5l2j4N4~5;06516E6a5I045K0C5M0S5O6s5g5b110H5U696m64044V0F4X4Z6y1=4N0z6$5s5_6*014N0u6)5;6V6+6k346t6/5(6F6?6u6,6O5Y0|5S6S6h3V5!3e6|6E6~4T6j764i746T3h6G4q78043f6C7b6t5,2Q0T0C0Y0r7f546I1x6K5N3$0*4e4a3{7H0*3~1z0T407M2$2Y20222!0S1-7J3~1F4g630|2Q0K0q0U0S0%4G0t0j111r1t1v1x0l6B341M3i1G0R0P0l1x0T0l0S0C0`0F0l2H867W0l0i001g0:0F0L4Z0l0F0y870C2-0l200C0@1/057G3v1@1#1%1)7!3v5,0U3X3`7F44040!130(250c000F0i0#1/818c1/1v2d0~2l8j1.0=8S0d0^0y1s2n0T0=1.0l0P1i0Z8c8e8p1R4C4E1.0!2D190.0r822N6~192K0t180T0h0J11090e0e0F0w0n0s095E5{2H7v0l8o1/8|4D2o8;014I0L010w0l1i880h1g6B1P056K3i1$040I1x8,0r0i2Q8_84881f0=970Y999b9d9f0e56670h0V0F9n4)1_2-0L9D2n291n93820^8=1Z8p9`437v0L0!1z9O139O0Q9u0#8*0S8,0Y0l0E8c2F2K9u009X8*857k2j98279(9e049g9,1.0V0n9;5{438?0r9@a70*a9059O0B008V8;5!0r0F0K168W0?7@0,0C0J0l0D4Fa50l4Xa)0S8c1i2-ai8;0D0Y0/0l2{0K8N9uadaf8,2z940=892J7W0=0L2dba3X0~ai2N0P000#5u6Z5w4ZaLaN9O0W1j2c0Y958u6tav9a6M9)az9h9j9laF699`0,0L9S0i8Za)4Z8:a:9U0oanaZ9#9%bBay9g0%bH7j0#0.0d1x9D0i1i0y8=7@433Xb.aJ8T0=ak0D0#9$8#ai0L1i950C0l0T0Ab+at1=bzax9*9i0H0%9kcg9m9o32bp0F3i0*9M7Zbs9E0(0~8.838?0Y8:1/8w151SbO9J3i2;8x1%1_1(2~3|7`347G8C3V5,4m6-6d4u6=6t4y4A8}9x4G9A6-4N5o6_6P6+6Y6!5yc/726.114(717#6 5`c^c~4;c}6i6^5qc:c`044}6|7c6v9-7y6n5Tdg3m5i045kc!d8c-6-7dc=bnc@d7c_4|dcc#110r0q0,b28-b5dj735ddI3wdlaUc,5ndrde68dwc~5S0VdR70d14$c{dL7daB6xdoc_dWdYd65A6`5Ddzd87s0-7v7xd43V0rdl1BdP4Od%5t5v5xe16;d!d}4-6-74dY0%e16:d.ec6ReeegdL8E8Gd|6Hefeq4q6c4-d{6Uc#dla`0r0Zd*e94{dQd+c~7ddCdE8+dG8/e1cl7j6~dy6C1zcS7I2X7Y3}0-660L04.
Fonction disposition_valide
Écrire la fonction disposition_valide qui prend en paramètre une liste echiquier et renvoie le booléen répondant à la question « la disposition satisfait-elle le problème des \(N\) dames ? ».
Toutes les fonctions précédentes ont été importées, dans leur version corrigée, dans les éditeurs ci-dessous. Vous pouvez directement les utiliser .
Aide (1)
On pourra (mais ce n'est pas une obligation) effectuer les vérifications illustrées par les figures suivantes :
Aide (2)
Ne pas oublier que le nombre total de dames doit être de \(N\) également.
Cela peut être vérifié en ajoutant une nouvelle partie à l'implantation, ou bien il est possible de faire cette vérification en utilisant des conditions appropriées dans le code utilisant les 4 fonctions : ligne, colonne, diagonale_haut et diagonale_bas.
Version vide Version à compléter
.128013:Lp(40zed3;N 1jEo5_êAn)h6,qc[y!FCuvà8i2Dxms7=wlSIatf-9ORrg.TéPkbè/050j0i0Z0Y0M0V0R0n0C0V0Y0R0R0T010Z0M0d010406050R0I0Q0Q0Y0)0E040W0r0V0I160r0w0n020Y0Q0d0l0n0(0i1g0)0B0I0i0R050=1d1f1h1j1b0d041H1O051R0=1R1T1O1b0j0M0J0~1012140y0M0*0y0V1+0y0Z19050_0:0V0i1$1113011*1,1.1,0Z1@1_1=0Z0:0r0j1j1?0)1P0Z0y0~1m0R0d0Y0w140N011{1(010!0{0i0w1u0i1=2j2l2q1}2t1_2w0Q2y040a0n0.0)0r0d0r0R0M1p1r0@2h0)0)0i0C2T1H2A0w1P0=2f2)0Z2d2c2e0j2C141.0w2v2Q1=1Z1#0 1|2?0M2^0w291!1=0d2Y1P2%2)3a1c2k1r2~2r330)1g0V190n0o2$3e1a3d2B3g1}3i3k3m0N3p2l3r2%2=013w0Y3l040n0k3A2(1b3D3u143G3I0n0f3M3C3e3E3S3m0s3W3O3Y3Q3F0r3j3H3m0z3%3s3f1%3v3,3x3J0S3;3P3@3R3_3.3J0L3}3)3 3+3-3T0$453t473!040o0g4c3?2 483`0o3o1I3q3(4d4l4f0o3z4q3B4s4k3h413I0o3L4y3N3=3Z4D190o3V4H3X4t4C494M3$4P4A4K4T4g3:4W4J3*4v3|4$3~4u4L4g444+464-4Z0o4b4;4R3^4Z0N4i4`4B4|3`0N4p3a4X4(4.0N4x564%4e594G5c4,4S534O5h4=5j420N4V5m4{404}4#5s515u534*3c1U381H2|2,0j2:3E0C292I0?1!1P370i393q3W055L0@5T5t010/190@0!5V5i1}0U3m5*5n3v0!5%0M2j2Q2S0M1q0t0J3H0M0@5/5!18040e625y3F192Z1*1D0M0i0)673E640x0b3%0n6n0n5d4u190w3W6p5+140r190T6u6q3h0:192F6h3*64664P6C3v6a0C6c0I6e6g6L6w016j3%066o6v5:140C0o19030n0c1F0n212^0}0^6/6.5L0V1q6;6m6o6M145$040!3,6B6V0w190/756$010r5-04317a5!0w6E040)2l0*0i6H476J7q6r046t6U7b6j6l4W6!6!6 5#190M5)4P6#7i6F1+2^7t2r7s7x7L046b0M6d6f7P1}640A7h687704797S686X7J7E6y040F6A7/6V0Q0M4M7Z14647A567C827K68712Y0Z0I0)7w3a843E0/0C190G3H0R7p7B837E717H7%3Z196_6{8l3c6V7R8x7b7)7V7X6T8A63197$7^8B787}6W190x8r3*7;7?8R477`7|7,6i19804r837C8o1987898b3q8d3*8f8h8j8w4r6Z6~6V6(6*6,6.1Z0Y0*1q3H6.1~0Y1o016}6n8*72748K7T0M8V4l7d7G8.3B8:4e7k7m0w7o8N8z5U7_7{4g9v8I9j3h6s9B046k9b8)6V8p7I8c7E7)91932w1_0t0y980Z9G6K8G7(6O6Q6S9G8J9O767G9*9D1}8X044 9#8!9H9:6x19020*0Z0l9{019=559x7y8#9J8(9d8,8aa28=048i0|8^4z7D9L19738F8/9P190pa29l7f9n2(9p4u9r7naj2(7E9w3B7Ea49/9g9$7vau190#a2aJ8Z6I8P8$ak8nam7f9Naq9-049R949U9W1o9Z8N8C6P7W6R7YaT7r9CaL8saNa{8SaPaR9za5aH8ya`9,8L04ata^4l7.b75!7;9~a0b18Y9^aU04aW3N8(al7b860^8-ae8gag8@6Ybr5!8}046+6-0}a)9T960:119a8m9caZaoa27)9ia~47av7gbVaA8+aCa.bb2r9=9@a68H049+a$b8ax3J7:b0bZb)b29G9IbO9Kbs7Ga#9oara(0M92a*0i0tbL1Gb(7!199!b,aM8Da?apb4a7b.bS9.cd7~b6b:5!b*b|aO04bha1b_9;b{cr8Obna9aYc07lbuadcC70bxah8k9J9dbRcO69b9au7ebYbe7(aB9taD5Z7-cf8NaSbla_cocW7)b=az2r7;aQcWc/ch9_b}81cJ5!9Mcpc5c7bJca11b%c:7ucj9)cF7#bj9?aKc$a|badd7Q8PcycAdjb3aEb5cHb~aaaZacc^8ocQbz4W8`bPcKdCbw190,0)1E3;0=5X5S1Q5E0=5G1H0Z5IdZ2.2*282a2,0Y1^dUdX5P1Nc+3E2Y0Q0t0!0Y0/c90y0k191z1B1D6.bo2)1X1S040X0V0n0d0i1o0n0u2-1`310Z0-2Y122l0Z0n2Vd@1he30)0n1D0098ec0)0M0Per1`e30Ve30}2Oem0Y2T0}311o2u0R0A0n0{0n1Feq2P120Md-er000-0J2S6f0~6f0_316.2Y0j1q0j2l0C902l0}1_2h2V2V100n730w2!5{1r5W5Mc55^2R2T5}5 61dSfb0+1Q3r1O0q1r0i0!0!0^eUeW0E0n0YeF0n330Q0:2Y0I8k0}2R7`10eCeleTfy0J2Z0n0z0n0R2-0I2!89900I0n0Z0Eed0n7Ae72|3E1 1-1/1;5Q5E5C3cdT3J8{cKcVdma 040+g2cZ9mbSc(9udhc-cF7;g2flg99He5dIb d4c1cygd9Gghbqf|gkcL88cNf 47afcRc*1bfj5YdVd.5Gd;0W0M6/001qeceeeq0Y0J0r0MewfT28fX1_eP0@0w16eJeUgMedef3H3,0}2Y0*2N0Iedew0Z0r1o6.gY2h0w1ZeOeX1r0I2^fUee1_eU2v6/c6g#6@g.0-1d0V0_0Z0}gQfR0@eK0deM0Zee0)0}fa2V3*f/211:2z7bav9f5Cf`gee71O0.g_ewe{10fvebd`efh37H3_5@e-g|hv5S9s7o0egd8QgC5S0+0n0H1qe{8aephderc69S95fOg)hL7m2Sf$0)0;0}0:6e1r0Jem7H6Sh?bIh`h?0d1n0}5L89hr0Rh,0,6b0wa=1A2v0ZeUhNfzh48k0)eq0K0neCh90C1heX0Vg|0R1qeqao0C0-2Hhc5~1.hn0n0eeWh4g*eZ110nfxgQgSewiffGe(h31`e_2HfU89e.iI1F0#0C0M0xeU1g5@i@fzenhr2W2Y2!i-1r2PekfA0J1E6/0r0*iq0+1bfE040%1r0r0:16isfy6`htf*fm1Y1!f.1/hzf=1Sf@5U6Lf`bB85anhEcuaMbUgw9kc!dD76g7c*aFgadpcD19b+cmb-b/c3a%b=jXggcIdJgs8qc?5?d8959V9Xdcc 4(9%a=dgjZcsc=jQ9E7fdljN3Ecwgfh)k51}bg9 cBke14c~j%c,dyd2gqabcMjTbsdFaicTbQjMj*b8dok98SjSg6b#c)j|kmkacEk2cGj)ayc4j,dxd18%d3jKa!d6ica+j{gfcgkKj~7Ua;8Ek8kA7Tktbfb^kja3kMj}c;kPb?a%kCk)c;kdkDbW9}khdugoj/gjkXdLcWgydG56gi7EbDbF90h^c80}01cbbNkpc_1}71f~l37ujPlxc`kFc?jVkJdw7bkbkNdij?a}lJaVl99dj=k@9Qlmd9cblFd=k*dfa@lNk4lA6Nk7gfk|ltkk9zj$lGb-l2k/68kgbic}k_l0bca8dzkW8e8+ksdMbykwb~cUkzkQk~g4awkG7lb$k%c.l|l;knl,kRb|gpm18;gllLk!c9lWmicFa:9(l#k`l~l%l@kLj#k.mbkBcxcWl_kil(l.bkmDdqkokVkqdBm4ldkvcS4$h*e6dWgGe8bG6pf`h#0i0e0geU0wh)jIiKhc0-6diSis0}iBhZmgc)0em^1Hf`h8eqf38k0Ie 1Zfsem2ve{ex6RiCeY1`e+jsiUn3m:0e0o0An7m(hHfn1kgJgMeR1.8km.fbnunyjI2Pi?g|0f0ngW0 1Fg(1rfze@f60ni.eV1v10g#eNf80n1~0r0Qjg0;2^01eUeA37eDfAd`gT1`f3i7eC2tiF2Ti=ewg|0Necig0ng:2liUmvbHeeeE73j0f+3rne3r1.1Pf`mvj`1o0el!0)fveU0gm_fbfPfR7E1h2S0y1ghr0P1909iW0T0w0#0o09l?aE0=op1bopn3osa,0Zovk,ckm@oReU0poB5YoD0Cl-01oG2foJ0ioL04oN0p0T0goT5VoW0Moop5o!lUj_cbo(mBoxeVozo/5So;o?o^oIeNo{oMoOp1oU2)oX05oZorp99Upbowozo-ph3Jhlo=oFfMpmoKppo prp3pu0=ongHgJ0VgLnW0Ce{0dj4e{bHhfgQep926.gMjpjrhcg,jvnc1meRgM1d1!ep1`oljy2}47hyf;36jFaHjHfb9d5(8N7e6pmz5=fce!5`5|iS60jWdxk(mla|owmpkxb;cy7@lS7k6GmykNmAk0mCl}mUpslhkyclmK7T7+k@bXk;c%kHg8l$qolY4e9Fkcmq82lQc2qLknqVgidAb86:qmcnqVc4qrl+d6qNmTce9`mN198Ul{mSaXmXhC7emak}b88u0w7OqAq`3Rj k-q@lLq_qFq{pso?8TqwmQk^r1bpgqrnr5qKr77To#k$qUa/rfckmJryaMrjqpbmmn9ymIkcdsl6r09Am0q#6VhDrxo?lTj^k#a-rcrkrek+pdrGrZqYkNc{mjrsqWmErMb8rJr@qGrQl`k@klrtr3bfrwkZpymwdbr(rKqXr+qDrxj-r_qMr-aIl/mMqOl5r rqs11arurv19r6r.d7h_pzs9rCmzrEk1rdkOdjl:r|q{shrIsmrqmOl7rUo?7zl9jJm2gtbvm!8?m7lskrguqQ8ebxdOdQm%f`gE2)m+1O0m0rhrewe3p~05pSpvp50v2t2U1`2~o1iae dTeUpV311Znk2VnSe eYnnfC0Q0-nI5Y7+n90~iGnk0w00tji+fIhpi{2te3iQeqh3eVg~0MnkfQiztJ3H0ng_0n0y3,0M0hiL3Hh,0HtwfV0ni g#2vh=fJifirhcn#m i?5L1veCnHe_0whu6Vplo`o|oN0D0g0l0w0Dp24Pgepuop0Oe}6@t$0ui;0:1otbfz5LtIo4tj0-0CfMi/uciU2k2Yg#0yi26.0eiD1riBgRgTpjtG88t,0n0F0xfyt3fAnNuFewupeC2Y0~9We3fy0dedeb2Vf5f7p_i?n#q.h@nhuwhru8p5oYp56-f01`tyob0-0wi8uZuw2;f36`jhuZu}d`i{e iBp`0J2Yu?p604fpt3hPeXt#0M1v3,0_hces1Aeu1Es{jenf0-280*p+fAe{231`u)o4iZfUezo0e-n/310}e*qlhciB0*niew0ei hkfQo=tGg*e(9Wi4880@nVvMh9iKizh15L2Y0xvhgBs dX0^0`0|04.
.128013:Lp(40zed3;N 1jEo5_êAn)h6,qc[y!FCuvà8i2Dxms7=wlSIatf-9ORrg.TéPkbè/050j0i0Z0Y0M0V0R0n0C0V0Y0R0R0T010Z0M0d010406050R0I0Q0Q0Y0)0E040W0r0V0I160r0w0n020Y0Q0d0l0n0(0i1g0)0B0I0i0R050=1d1f1h1j1b0d041H1O051R0=1R1T1O1b0j0M0J0~1012140y0M0*0y0V1+0y0Z19050_0:0V0i1$1113011*1,1.1,0Z1@1_1=0Z0:0r0j1j1?0)1P0Z0y0~1m0R0d0Y0w140N011{1(010!0{0i0w1u0i1=2j2l2q1}2t1_2w0Q2y040a0n0.0)0r0d0r0R0M1p1r0@2h0)0)0i0C2T1H2A0w1P0=2f2)0Z2d2c2e0j2C141.0w2v2Q1=1Z1#0 1|2?0M2^0w291!1=0d2Y1P2%2)3a1c2k1r2~2r330)1g0V190n0o2$3e1a3d2B3g1}3i3k3m0N3p2l3r2%2=013w0Y3l040n0k3A2(1b3D3u143G3I0n0f3M3C3e3E3S3m0s3W3O3Y3Q3F0r3j3H3m0z3%3s3f1%3v3,3x3J0S3;3P3@3R3_3.3J0L3}3)3 3+3-3T0$453t473!040o0g4c3?2 483`0o3o1I3q3(4d4l4f0o3z4q3B4s4k3h413I0o3L4y3N3=3Z4D190o3V4H3X4t4C494M3$4P4A4K4T4g3:4W4J3*4v3|4$3~4u4L4g444+464-4Z0o4b4;4R3^4Z0N4i4`4B4|3`0N4p3a4X4(4.0N4x564%4e594G5c4,4S534O5h4=5j420N4V5m4{404}4#5s515u534*3c1U381H2|2,0j2:3E0C292I0?1!1P370i393q3W055L0@5T5t010/190@0!5V5i1}0U3m5*5n3v0!5%0M2j2Q2S0M1q0t0J3H0M0@5/5!18040e625y3F192Z1*1D0M0i0)673E640x0b3%0n6n0n5d4u190w3W6p5+140r190T6u6q3h0:192F6h3*64664P6C3v6a0C6c0I6e6g6L6w016j3%066o6v5:140C0o19030n0c1F0n212^0}0^6/6.5L0V1q6;6m6o6M145$040!3,6B6V0w190/756$010r5-04317a5!0w6E040)2l0*0i6H476J7q6r046t6U7b6j6l4W6!6!6 5#190M5)4P6#7i6F1+2^7t2r7s7x7L046b0M6d6f7P1}640A7h687704797S686X7J7E6y040F6A7/6V0Q0M4M7Z14647A567C827K68712Y0Z0I0)7w3a843E0/0C190G3H0R7p7B837E717H7%3Z196_6{8l3c6V7R8x7b7)7V7X6T8A63197$7^8B787}6W190x8r3*7;7?8R477`7|7,6i19804r837C8o1987898b3q8d3*8f8h8j8w4r6Z6~6V6(6*6,6.1Z0Y0*1q3H6.1~0Y1o016}6n8*72748K7T0M8V4l7d7G8.3B8:4e7k7m0w7o8N8z5U7_7{4g9v8I9j3h6s9B046k9b8)6V8p7I8c7E7)91932w1_0t0y980Z9G6K8G7(6O6Q6S9G8J9O767G9*9D1}8X044 9#8!9H9:6x19020*0Z0l9{019=559x7y8#9J8(9d8,8aa28=048i0|8^4z7D9L19738F8/9P190pa29l7f9n2(9p4u9r7naj2(7E9w3B7Ea49/9g9$7vau190#a2aJ8Z6I8P8$ak8nam7f9Naq9-049R949U9W1o9Z8N8C6P7W6R7YaT7r9CaL8saNa{8SaPaR9za5aH8ya`9,8L04ata^4l7.b75!7;9~a0b18Y9^aU04aW3N8(al7b860^8-ae8gag8@6Ybr5!8}046+6-0}a)9T960:119a8m9caZaoa27)9ia~47av7gbVaA8+aCa.bb2r9=9@a68H049+a$b8ax3J7:b0bZb)b29G9IbO9Kbs7Ga#9oara(0M92a*0i0tbL1Gb(7!199!b,aM8Da?apb4a7b.bS9.cd7~b6b:5!b*b|aO04bha1b_9;b{cr8Obna9aYc07lbuadcC70bxah8k9J9dbRcO69b9au7ebYbe7(aB9taD5Z7-cf8NaSbla_cocW7)b=az2r7;aQcWc/ch9_b}81cJ5!9Mcpc5c7bJca11b%c:7ucj9)cF7#bj9?aKc$a|badd7Q8PcycAdjb3aEb5cHb~aaaZacc^8ocQbz4W8`bPcKdCbw190,0)1E3;0=5X5S1Q5E0=5G1H0Z5IdZ2.2*282a2,0Y1^dUdX5P1Nc+3E2Y0Q0t0!0Y0/c90y0k191z1B1D6.bo2)1X1S040X0V0n0d0i1o0n0u2-1`310Z0-2Y122l0Z0n2Vd@1he30)0n1D0098ec0)0M0Per1`e30Ve30}2Oem0Y2T0}311o2u0R0A0n0{0n1Feq2P120Md-er000-0J2S6f0~6f0_316.2Y0j1q0j2l0C902l0}1_2h2V2V100n730w2!5{1r5W5Mc55^2R2T5}5 61dSfb0+1Q3r1O0q1r0i0!0!0^eUeW0E0n0YeF0n330Q0:2Y0I8k0}2R7`10eCeleTfy0J2Z0n0z0n0R2-0I2!89900I0n0Z0Eed0n7Ae72|3E1 1-1/1;5Q5E5C3cdT3J8{cKcVdma 040+g2cZ9mbSc(9udhc-cF7;g2flg99He5dIb d4c1cygd9Gghbqf|gkcL88cNf 47afcRc*1bfj5YdVd.5Gd;0W0M6/001qeceeeq0Y0J0r0MewfT28fX1_eP0@0w16eJeUgMedef3H3,0}2Y0*2N0Iedew0Z0r1o6.gY2h0w1ZeOeX1r0I2^fUee1_eU2v6/c6g#6@g.0-1d0V0_0Z0}gQfR0@eK0deM0Zee0)0}fa2V3*f/211:2z7bav9f5Cf`gee71O0.g_ewe{10fvebd`efh37H3_5@e-g|hv5S9s7o0egd8QgC5S0+0n0H1qe{8aephderc69S95fOg)hL7m2Sf$0)0;0}0:6e1r0Jem7H6Sh?bIh`h?0d1n0}5L89hr0Rh,0,6b0wa=1A2v0ZeUhNfzh48k0)eq0K0neCh90C1heX0Vg|0R1qeqao0C0-2Hhc5~1.hn0n0eeWh4g*eZ110nfxgQgSewiffGe(h31`e_2HfU89e.iI1F0#0C0M0xeU1g5@i@fzenhr2W2Y2!i-1r2PekfA0J1E6/0r0*iq0+1bfE040%1r0r0:16isfy6`htf*fm1Y1!f.1/hzf=1Sf@5U6Lf`bB85anhEcuaMbUgw9kc!dD76g7c*aFgadpcD19b+cmb-b/c3a%b=jXggcIdJgs8qc?5?d8959V9Xdcc 4(9%a=dgjZcsc=jQ9E7fdljN3Ecwgfh)k51}bg9 cBke14c~j%c,dyd2gqabcMjTbsdFaicTbQjMj*b8dok98SjSg6b#c)j|kmkacEk2cGj)ayc4j,dxd18%d3jKa!d6ica+j{gfcgkKj~7Ua;8Ek8kA7Tktbfb^kja3kMj}c;kPb?a%kCk)c;kdkDbW9}khdugoj/gjkXdLcWgydG56gi7EbDbF90h^c80}01cbbNkpc_1}71f~l37ujPlxc`kFc?jVkJdw7bkbkNdij?a}lJaVl99dj=k@9Qlmd9cblFd=k*dfa@lNk4lA6Nk7gfk|ltkk9zj$lGb-l2k/68kgbic}k_l0bca8dzkW8e8+ksdMbykwb~cUkzkQk~g4awkG7lb$k%c.l|l;knl,kRb|gpm18;gllLk!c9lWmicFa:9(l#k`l~l%l@kLj#k.mbkBcxcWl_kil(l.bkmDdqkokVkqdBm4ldkvcS4$h*e6dWgGe8bG6pf`h#0i0e0geU0wh)jIiKhc0-6diSis0}iBhZmgc)0em^1Hf`h8eqf38k0Ie 1Zfsem2ve{ex6RiCeY1`e+jsiUn3m:0e0o0An7m(hHfn1kgJgMeR1.8km.fbnunyjI2Pi?g|0f0ngW0 1Fg(1rfze@f60ni.eV1v10g#eNf80n1~0r0Qjg0;2^01eUeA37eDfAd`gT1`f3i7eC2tiF2Ti=ewg|0Necig0ng:2liUmvbHeeeE73j0f+3rne3r1.1Pf`mvj`1o0el!0)fveU0gm_fbfPfR7E1h2S0y1ghr0P1909iW0T0w0#0o09l?aE0=op1bopn3osa,0Zovk,ckm@oReU0poB5YoD0Cl-01oG2foJ0ioL04oN0p0T0goT5VoW0Moop5o!lUj_cbo(mBoxeVozo/5So;o?o^oIeNo{oMoOp1oU2)oX05oZorp99Upbowozo-ph3Jhlo=oFfMpmoKppo prp3pu0=ongHgJ0VgLnW0Ce{0dj4e{bHhfgQep926.gMjpjrhcg,jvnc1meRgM1d1!ep1`oljy2}47hyf;36jFaHjHfb9d5(8N7e6pmz5=fce!5`5|iS60jWdxk(mla|owmpkxb;cy7@lS7k6GmykNmAk0mCl}mUpslhkyclmK7T7+k@bXk;c%kHg8l$qolY4e9Fkcmq82lQc2qLknqVgidAb86:qmcnqVc4qrl+d6qNmTce9`mN198Ul{mSaXmXhC7emak}b88u0w7OqAq`3Rj k-q@lLq_qFq{pso?8TqwmQk^r1bpgqrnr5qKr77To#k$qUa/rfckmJryaMrjqpbmmn9ymIkcdsl6r09Am0q#6VhDrxo?lTj^k#a-rcrkrek+pdrGrZqYkNc{mjrsqWmErMb8rJr@qGrQl`k@klrtr3bfrwkZpymwdbr(rKqXr+qDrxj-r_qMr-aIl/mMqOl5r rqs11arurv19r6r.d7h_pzs9rCmzrEk1rdkOdjl:r|q{shrIsmrqmOl7rUo?7zl9jJm2gtbvm!8?m7lskrguqQ8ebxdOdQm%f`gE2)m+1O0m0rhrewe3p~05pSpvp50v2t2U1`2~o1iae dTeUpV311Znk2VnSe eYnnfC0Q0-nI5Y7+n90~iGnk0w00tji+fIhpi{2te3iQeqh3eVg~0MnkfQiztJ3H0ng_0n0y3,0M0hiL3Hh,0HtwfV0ni g#2vh=fJifirhcn#m i?5L1veCnHe_0whu6Vplo`o|oN0D0g0l0w0Dp24Pgepuop0Oe}6@t$0ui;0:1otbfz5LtIo4tj0-0CfMi/uciU2k2Yg#0yi26.0eiD1riBgRgTpjtG88t,0n0F0xfyt3fAnNuFewupeC2Y0~9We3fy0dedeb2Vf5f7p_i?n#q.h@nhuwhru8p5oYp56-f01`tyob0-0wi8uZuw2;f36`jhuZu}d`i{e iBp`0J2Yu?p604fpt3hPeXt#0M1v3,0_hces1Aeu1Es{jenf0-280*p+fAe{231`u)o4iZfUezo0e-n/310}e*qlhciB0*niew0ei hkfQo=tGg*e(9Wi4880@nVvMh9iKizh15L2Y0xvhgBs dX0^0`0|04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)