Exercices de dichotomie
Exercice 1 : Vous êtes le professeur
Votre élève a écrit la fonction dichotomie fausse suivante :
Cette fonction doit :
Exemples
🐍 Console Python>>> dichotomie([1, 2, 3, 4], 2)
1
>>> dichotomie([1, 2, 3, 4], 1)
0
>>> dichotomie([1, 2, 3, 4], 4)
3
>>> dichotomie([1, 2, 3, 4], 5)
None
>>> dichotomie([1, 2, 3, 4], 0)
None
>>> dichotomie([1], 1)
0
>>> dichotomie([1], 0)
None
>>> dichotomie([], 1)
None
Corriger la fonction fausse ci-dessous
.128013é 052;eèOigNrmIuv)tlqùcs]1bdÀLR.ao-3,=(P[ky84fp/6w97_à+hSn:050C0h0t0H0k0u0y0c0x0u0H0y0y0M010t0k0V010406050y0q0o0o0H0n0R040)0I0u0q0 0I0*0c020H0o0V0g0c0F0h190n0v0q0h0y050W16181a1c140V04051H1A1K0W1H140C0k0r0@0_0{0}0_0*0l0q0H0l0h0J0V0R0t0(1j0c0(0k0l0(0u1:0(0t12050/0B0u0h1T0`0|011/1;1?1;0t1|1~1`0t0n1I1+0@1f0y0V0H0*0}0f01201V010U0;0h0*1n0h1`2i2k2p222s1~2v0o2x040a0c0O0n0I0V0I0y0k1i1k0-2g0n0n0h0x2S1A2z0*1I0W1+2(2c2e2d1{0C2B1W0k0*2u2P1`1Q1S0^212=2@0*0I2{1`0V2X1I2$2(38152j1k2}2q310n190u1`0H1.2X0U0}030#0#0x320h1?300I0J0A3z120c0A1A0H393c133b2A3e223g3i3k3m0h3o013q3s3u3w2^3z0J2n040c0f3F3H2k3J2$2;013O0H3j1I3l0(3n3p3r3t0-3Y313!0K3C0K3*2#3I143.3M0}3;3?053^3`3U3|3X2?3Z3A0T3C0T451B473K3d1U3N0I3h3=3Q3_3S3{3W3~4k403A0e3C0e4q38483c3/4c4A4g3V3}3v4G3y3A0X3C0X4M4s494v4b4x3P3@3R3T4U4j3x3!0!3C0!4%3,4O3L4*3:4,4z4.4B4:4i4F4?3A0S3C0S4{2%4}4u2~504y4d4f4C4h4E4W580J0Z3C0Z5d3-4P4a5i4-4e4/4D4V3 4Y3z0d120A0d5v5f4Q515k5C5n5E4X3!0A0A5J3E0W3G464|4t5O5j4S5m4;574l3z3$0A3)5!3+2%1L361A2{2+0C2e2:5y4V2`1R1I350h373I5$5_4V692A0k0C0}3r2$5V3Q6g6i5o5F6l0c2F0h6o5T5q5X2(5#4)5h0Q120-0U6b6e5g2q0Y3C6H5(5y0*0U6E0k0x1,0t0I0o0k0h6N6B2q11040N6#5x4 0*12310o0B2X1z4r3,6O4 6(0L6H0c6`5h6.040x0k1}6!6^5_6$226(0s0+6H14786I0c6n016j3c3!3$5B7k565p5/2n6s2w6v4=7u1`5@0c7D6 7a4b6E0h0B1h6~702q0I120M7M7G016Y125L7h7g3a3.7r0#6k3A424.7$6w5/427w2G7y5.4H0J7*3*7E7F6,71122s0*7S7}7O7Q824~710B122E6+876%126*7h7N3N6/6X6=1y8c6J7b120s868p0}7P040J8t3/7V045Z4N8o7j6h7l7%7n4m6m8H7s6q8L7:6u8I7-7@4n6z3%7E8i0}6D040Y1/1~8z6P7I7K0t8+4 8w020u0t0g7R7h7|8d8j04808F5y6(7e7Y8F7$7(0J4J7+8N6p5U4I2o6t7=7t7@9a7`7{8Z7T726Y1?0h0q8:5h8w8`388|8u016(8g7!838~908{8!018w0%9v3f8-7L8h7T7c918;120W0W9V5h8B5?8E9S4P978K0J4!9b9i8P9-9g7x8T7z7@9.9m9n9A3/8$0k6G9J9p1274769O228=8@0ga87H046:8m6@9F8}0}6(0P9!9P049r6Z9u9)ak9C120z949(aj1k9+2k4@8M9:9e0J4^8RaH5q4^8X9}9}9K729I9z9K9xad3:12ar9taY8w8ya39G0}8B8D4sauaC9c985a9/9^7?5G5aaLa_9ja{7B3GaQ9~5y8$4Wa2aVa473758*a*av8=0l8^aY72ag6?ao8q04ana:4Qa!0;asbnalaxaz3I9oa+010x6y030c0p0u0c0U0H1h0c2G282X0cb70cbM0c9s0q0c2Ua17f96a=9,5sa^8OaI5sa}b,5qb*9|b3b46-9Q8/be9BaXb|bsaqbua$b 5y9MaYa-b$braD0*5V5Ib+9d6x5Ib/cg5/5Kb18YaR7Tb60=77aB3/93c9cucb5V6y7q9c8U5G5W9?7;a~9;cGaPb@7D9K8$2X0t0q0n81c4b_c1bXcx6a7#b(aE3A5=aGcJaIc*cjcE5V7p7CbBavcQ0.cTcVb9bC0Q0x120m1jcta/3a0W6d5`685|651A0t5 dd2.2)0H762(5}1G7i5y2X0o0#bL0Q0h0#0(7*1s1u1w1y0cbz6_1N3J1H0DbW3l262@0c0ZbW000b0u0i0r1 3l6Y0?054V3/1X1Z1#1%1)1.1@261^2yc~12b#8hd73u040G0c0E1 d!3ud$2kd(1$1(0Rd,251@1_do4 cr0yd4dF6d2U0_bW1:dN5W2V6?2O0*2:bVd 2U5yd%1!e4d+241=e9d:c^d=b86ad^0-3%eidLel1 0Z0G060j1k2j0{1 0C1j0x0c0$dKek0lem0fbZ2k0?1~0@0`0c0I0wcOd#ewe2eyd*e6eBd.eaaS120r3=9t0n3s2u2cf5a%128?8^9ybAf204f41~cT6NeJ680Le=0ne=1kdN0-0r0n0:0t0ceVeefse$ejdM1 5=0cdB0c2Q6 e_4 exd)e5e7eC27eE9B72fkf6f80*fabdc}bf7Qfg3,b^7~fjf5fmd@d8dGdnbIbUcTfzbK3=1ge(dNdP0b0x0n0kbR0+fOe0e`1Ye|fTe eDeb6C12b7bjf3f=f70xf9fyf)fh7TbgbicWf:f!f?f*9Bcwf@d_1L3J0W0-0/0;0y04.
Exercice 2
On considère dans cet exercice des tableaux non vides contenant des nombres entiers, tous distincts, triés dans l'ordre croissant.
On cherche à déterminer l'indice d'une valeur cible dans ce tableau à l'aide d'une recherche dichotomique dans sa version itérative.
Écrire la fonction indice qui prend en paramètres le tableau de nombres tableau et la valeur cherchée cible.
Si la cible est dans le tableau, la fonction renverra son indice. Dans le cas contraire, la fonction renverra None.
Attention
Les tableaux des tests secrets peuvent être très grands. Une recherche linéaire naïve prendrait trop de temps lors de l'exécution.
Les tests secrets limitent le nombre de lectures dans le tableau à 100. Si votre code accède à plus de 100 valeurs dans le tableau, une erreur sera levée.
Exemples
🐍 Console Python>>> tableau = [23, 28, 29, 35, 37]
>>> indice(tableau, 23)
0
>>> indice(tableau, 29)
2
>>> indice(tableau, 37)
4
>>> indice(tableau, 10)
None
>>> indice(tableau, 100)
None
Question
Compléter le script ci-dessous :
.128013é 052;eèOigNrmTIuv)tlqcs]1bdLR.ao-3E,=*(P[îky84fp/6w97_Dà+hSCn:x050C0h0u0G0k0v0y0c0x0v0G0y0y0M010u0k0X010406050y0r0o0o0G0n0T040,0H0v0r140H0.0c020G0o0X0g0c0E0h1e0n0w0r0h0y050Y1b1d1f1h190X04051M1F1P0Y1M190C0k0s0|0~10120~0.0l0r0G0l0h0I0X0T0u0+1o0c0+0k0l0+0v1^0+0u17050@0B0v0h1Y0 11011@1_1{1_0u21231 0u0n1N1:0|1k0y0X0G0.120f01251!010W0_0h0.1s0h1 2n2p2u272x232A0o2C040a0c0P0n0H0X0H0y0k1n1p0=2l0n0n0h0x2X1F2E0.1N0Y1:2-2h2j2i200C2G1#0k0.2z2U1 1V1X0}262`2|0.0H301 0X2$1N2+2-3d1a2o1p322v360n1e0v1 0G1?2$0W12030%0%0x370h1{350H0I0J0I0A170c0A1F0G3e3h183g2F3j273l3n3p3r0h3t013v3x3z3B2}3E0I2s040c0f3L3N2p3P2+2_013U0G3o1N3q0+3s3u3w3y0=3(363*0J3I0J3:2*3O193@3S123`3|053~403!423%2{3)3F0V3I0V4b1G4d3Q3i1Z3T0H3m3{3W3 3Y413$444q463F0e3I0e4w3d4e3h3^4i4G4m3#433A4M3D3F0Z3I0Z4S4y4f4B4h4D3V3}3X3Z4!4p3C3*0$3I0$4-3=4U3R4:3_4=4F4@4H4_4o4L4|3F0U3I0U512,534A33564E4j4l4I4n4K4$5e0I0#3I0#5j3?4V4g5o4?4k4^4J4#454(3G0d170A0d5B5l4W575q5I5t5K4%3*0A3H045$5S4z5U5p4Y5s4`5d4r3G3,0A3/0Y3M4c3=1Q3b1F302:0C2j2^5E4#2 1W1N3a0h3c3O5|2,054#6d2F0k0C123w2+5#3W6l6n5u5L6q0c2K0h6t5Z5w5%4b4/5n0S170=0W6f6j5m2v0!3I6L5+5E0.0W172{1V0x0h6R6F2v16040O6#5D550.172e0h0G0r6+545n6(0L6L0c6S6-170x0k226!4x5}6$276(0t0/6L19756g3@6s016o3h3*3,5H7h5c5v5=2s6x2B6A4{7r1 5`3-0c7B6~5n6.040=0B1m6|7D2v0H170M7K77120o0k175R7e3P7X5+7o0%6p3F484@7#6B5=487t2L7v5;4N3E7y3M7B7C7R3_172x0.7Q6,5n7N047P7X6}7|0.0B172J6@6N78176*7Z896/0G736=8e3^79816^7M170I8s8f7S7U5(7c8p7#7%0I4t7*6m7i6u5!4s2t6y7;7q7?8H3:7`88822v6H040!1@238x4W6I0h7I0u8(5E84020v0u0g863d8W8t3T7~2{8p5E6(7b7X7d3f7g8J7j2p3*4P8I8Q6v4O8O7u8K7,7?9b8U8V7`7L8|047T1{0h6?879p12848^3O8`8y016(8i958X9q7H7J9w7|840*8.6 047 8 558r9M9I9y170Y0Y9Q5n7T175_4T8D977$7k4)6r9.9j5M4*7/6z9i7w7?4*2-7_9n7{9Y018Z0k6K9X8{4h70728%a99D8:8=0g9%3k8l8n9v9Haa9E170Q9U7E179s0k9uau6%170z929,8j4V8E9:0I4~9c9|7=5M4~9`9d8MaK7^7Aa28V9x7}9S8~af3^9zak9qaxaza%8/8va*8z5P8CaG6k9.8F5gaM7p9e0I5gaRaN8R5Ma|9ma2aZ8Z4$a88_aZ7F7173a;019z9A3=9C8)046:8oa^9D6(atbsboa,ao6e7|6(aDa@ap1paI993F5ya}8L5w5yb2a~aTbKb7aXa3aq8Z2$0u0r0n80a.9RbybEbAaHa`aJ5Q9=aS6C5ObPbM5=b/a0aW9nb9173A0y74bF8q17aE4ybwbH0.5#6D3q7+9}5M5$9g7:b3a chb{bUaY8k7G8+9Lbd9N7Obi7Fb)b%83179PcA2v9)8B939-6t8F5^b:ckaTcMb@9@5#7m7zcpa4bX0?b!b$cucX0x170m1oc2c73f0Y6i5~6c60691F0u63c^2?2.8m232-611L6M3^2$0o0%0W0G0S0h0%0+7)1x1z1B1D0cc65}1S3P303^0G0C0o1o2W0k1=2{0W841Ldpdrdt2X0I140u2f041x0x0+0h0ndL246Y1;0u0H7Tdh0c2W0b0n0G140s240/0c0)2l0.2A0R2h741T1O040q0v0c0y001*2W0c2Z0vd|0v0l4D2W0+2Ld 242$dPdOdMd 0kdL0HdTdV1C2G0kdh0F1Q7Yd10;1WdBds0.dudw6Udz1OevdDdvcadGdI0D3qebdMeddQ24e16XegdQ0r0cczd=1M0D240x3{0x0rd_e000eR6Zd eUbyeVdZ2W24dT1m3Y0H0k0{dh0vdh0{3y1d2z0@0k2$0y0F0c0q710c1=3a2S2U246h3z3^1$1(1*1,1.1?1|2b1}2Da4cy0_aybzbmaZa)cE8g6)aA9Jcs8-fE9Z04cDc$aq7F9Tbw90170tbi849#bicG9+6ec/3z04epdmd20j0n0Ld 2pf1dNf50.0{fmfo0{2Zff0ld!1I2X2lf30c230c0-f:0~0cf50vg70=0{f4ay0ngh0y0ug60k7T0u0b0hf90-e!e$e(6}4#fl2pfn1+1-0Tfr2a1|1~d36Tawfya-fPagcwfLarfGfT9R9KfKgQa(cCcx8}c#b+aq9Wg!a/04fZgTf#6Rf(0=3-0X9ugn2o0ndye|0c0h0:0x0b0=0n0|0?0ue@0^geePgpe?f90K1p3Y0W0?f:2Vg6di0=0r0:dX0.6Ydifj2Z5Efm1)gEfq291`gJfvfQ8*8,g?6ih1gnhye!55hBfogFgHhG2chI9DfRa$c.hN0y1ogng02p0C0yga9uh7h)g5hQgB1%hCfpgGhFftgKbehKct9BfCg$gTh#g)dlhNg`1md 0b2o10dNg63q0s3{h;gogqgteqd20(f=h80|0 fd3igxg7eQhveSe.eVgOeU2z0c1mfy0y2pgngb0~0n1+b!e9g6e+0.ha0nilhddjgzfkhAgCh{hVh~hHgLb(iHfXgSg-gXfJi?fNbi9FfHaba#i92,bng.8wi7i2gZg*btfVi{g:i^9(8Af$iaf)f+eX04itf_hpiw0{3a0bc1iYh:0cff220ie82|d`242Tc1jyixe#f/h11p0P1/1;0.h:ghiYgj0{0.00h*jIf}hb0_iBhfhaf90p0He_g h/0c0,0kiW1=0Gild~1eex0Xe(0be9jWdU0Bf70c0W0vei0@iYf`jF2RjAe8c1d!d~0G0Xg}eU92d=do5Edqeweyhj0:1s0XdIdAkrdCexdEeH2M0K0:1ykyd;dneui*h`hU1.3y1pi.hYi:5n2I2z2B172O0-1oh)g7jO1:1o6R6b6M3;6gc:96cK7k0V3GcNbQ4|k`3HcRcf8Gk{5X5:b4l36D7zaZ0l6(020l8?lelglf1vi a!gYi{blj3aZ0o6V040f0F7Wjf8u040N0Nf!8A5Q0f4acIc8b-99k`7mcd9?l2lMci9{k}3)lRl5lU46lRb{lbldljlh0gl)6}gWavj16|bVgR85f!ltlvlxi4cvlAlCg;lE0dlGi{fOl{a4cG3KlIc3c9l37)7nlPaOmclSb;lV7@lXb^lZ7@l#7|lc17l)muljl,c3gMcrhLgT9Og%l/87j4550x5%03ieigc12LiYiVe#2o71grb*76b,k^lL8Gk|mn3Dk`4tl1mgm)2t5a5JlQm#mqa4e46W6UmW7fmY8K6pk`9llOmjmo4Pm+l7n0m.4ZlYm(0I9llamrl%linilkl-aBgVmyi_mBly27mDj7mFno6_jcmC9!lD9*l:aZmJ17mL0Cif261yf4mRkk0GmUk0k8gkiVgbh?2Lm{d3mbk`9 men3nc9_8PcOk~0I9_m/5Ym;n$nfm@84dxnY7!lKcak`aLn%n,mkaQn+nbl3aQn:l66vn aVl$mtl(og8?mxjabolnnzi|gTi~nl9qfSnrfMj6oulmi`or12g,m5aqfYnBlun{k@m~k_b0m$cSk`b1o5m%l3b1o9o6oPodmr840U0F0#0U0U0V0Z0e0Z0$0V0J5$0e0U0h0*0J0d50m9f%c:1S5 0Yesp1697dp20=gd0y04.
Exercice 3
Une sonde interroge à intervalles réguliers l'état de fonctionnement d'un système électronique. Celui-ci peut être en marche ou en panne.
La sonde est programmée pour enregistrer les résultats de ses requêtes dans un log. Il s'agit d'un tableau de booléens (une list Python) dans lequel les valeurs True précèdent les False. La valeur True indique que le système est en marche, False qu'il est en panne.
Une panne nécessite une intervention humaine et ne peut donc pas disparaître seule : elle persiste jusqu'à la fin de l'enregistrement.
🐍 Script Python# 0 1 2 3 4
log = [True, True, False, False, False]
Lors d'une vérification on constate que le système est en panne : le log contient au moins une valeur False en dernière position. On se demande à quel moment a débuté cette panne.
Dans l'exemple précédent, le premier False est à l'indice 2 : la panne a débuté à l'instant 2.
Écrire la fonction indice_panne qui prend en paramètre le tableau de booléens log et renvoie l'instant du démarrage de la panne.
On garantit que le log n'est pas vide et que, au moment de la vérification, le système est en panne (la dernière valeur du tableau est False).
Attention
La panne du système a aussi corrompu le fichier de log. Vous ne pouvez pas lire plus de 500 valeurs dans celui-ci. Passé ce nombre de lectures, tout nouvel accès lèvera une erreur.
Il est donc important de bien concevoir votre algorithme car les logs utilisés dans les tests secrets peuvent être très longs : un milliard de valeurs !
Exemples
🐍 Console Python>>> indice_panne([True, False])
1
>>> indice_panne([False, False, False])
0
>>> indice_panne([True] * 10 + [False] * 100)
10
>>> indice_panne([True, True, False, False, False])
2
Question
Compléter le script ci-dessous :
.128013jé 052;eèigrmuv)tlqcs]1bdLR.ao-3,=(MP[ky84fp/6w97_Dà+hSn:x050z0i0r0D0k0s0v0d0u0s0D0v0v0I010r0k0S010406050v0o0n0n0D0m0O040%0E0s0o0~0E0(0d020D0n0S0h0d0B0i180m0t0o0i0v050T1517191b130S04051G1z1J0T1G130z0k0p0?0^0`0|0^0(0l0o0D0l0i0F0S0O0r0$1i0d0$0k0l0$0s1/0$0r11050.0y0s0i1S0_0{011.1:1=1:0r1{1}1_0r0m1H1*0?1e0v0S0D0(0|0g011 1U010R0:0i0(1m0i1_2h2j2o212r1}2u0n2w040a0d0L0m0E0S0E0v0k1h1j0,2f0m0m0i0u2R1z2y0(1H0T1*2%2b2d2c1`0z2A1V0k0(2t2O1_1P1R0@202;2?0(0E2`1_0S2W1H2#2%37142i1j2|2p300m180s1_0D1-2W0R0|030Y0Y0u310i1=2 0E0F0X0F0x110d0x1z0D383b123a2z3d213f3h3j3l0i3n013p3r3t3v2@3y0F2m040d0g3F3H2j3J2#2:013O0D3i1H3k0$3m3o3q3s0,3Y303!0G3C0G3*2!3I133.3M0|3;3?053^3`3U3|3X2=3Z3z0Q3C0Q451A473K3c1T3N0E3g3=3Q3_3S3{3W3~4k403z0f3C0f4q37483b3/4c4A4g3V3}3u4G3x3z0U3C0U4M4s494v4b4x3P3@3R3T4U4j3w3!0X3C0X4%3,4O3L4*3:4,4z4.4B4:4i4F4?3z0P3C0P4{2$4}4u2}504y4d4f4C4h4E4W580F0W3C0W5d3-4P4a5i4-4e4/4D4V3 4Y3A0e110x0e5v5f4Q515k5C5n5E4X3!0x3B045W5M4t5O5j4S5m4;574l3A3$0x3)0T3G464|5#5y4R534T565p5,0x425Y445;3+5e5^4 5`5B545D4=5 4n5Y4p645?664)5h695l555o5F5V4J5Y4L6i4r3,1K351z2`2*0z2d2/5y4V2_1Q1H340i363I6j1H4V6O2z0k0z0|3q2#5V3Q6V6X6q5U3z3B0d2E0i6%5T5q5X456l2p0N110,0R6Q675h0V3C6}6@3N0R112=1P0u0i0Y3b2?725x4 10040J7e4~6m110s0E0l7k5g2p7h0q0)6Q136x2$5#6$016Y3b3!3$5B7C5}6r3z2m6,2v6/6d4H3#1_640d7W0d6~6^766|7z3%7Z210E7004300r6Q7Y734b7n7p7r3/7h0M7_5y0n0k115L7%7)0|7h0w7w7%7y393.7J0Y6Z3z617I6W7D6(5q427O2F7Q5+7S8h7V7X8v84016_042W0r0o0m0(7:8x7 817x7_8d8f0F6f8i8q5~7S4n8o6.8k6:5,8P648a6P8c8j7E2j3!6t8Q8X7R5G4J8V8R7L0F8-8u7W8x0(6`0i0y1g8G7=010E110I937f5h8I04824N8L8)8e7F4Z6#9h8Y7S4!8?8/8r5G4!2%3G8w948~042r8F7%7;9a2p9604989D8}0y7n2t7}7g117j839y7@7q9T9F217u997l9G110F9#7s219c3E899g6%8N4^4.8d9n5G4^9q7K6)3y7U3G8$6y8(9;9j0F5a9@9m8:3!5a9|8l5,a83*9x9Y0|8z0V1.1}9*4Q8 917/9K949H020s0r0h9J379E9$3N119B9P5h7h889f9X6U9h8N5sa98@9~5sae9_3!aSai8v7X8}117 1=0i0oaq5y9HaC3IaE9+859RaJ3eas92avak95110#a.68aH2=a`9Z110qb35h9H0T0Tbb2p9c5:aN8b4P8Ma65K9laU6;5IaXab6*5I9v3%a$8|948z0k7$aDa(047o9WblaFa^047|aOa@3:a)0:0ka,bg7*9(bX0|9-b7bN0wb!957,2j0zb*7+117.b*9zbJb%017{b_9za*bVa-bQ7`11878Kc1bn8+6*6=3k9^bv3A6+6-br5 6=8{bAa%bC118B8D9CbG9U04b~bW9/c6aQbo7Hcbaa9s5V7Ncg9r8S5G5/a0bzbA8x8z4WbFa=8xb:7-0Eaucsa b@7^c15yb{c%b4cubUcwbLbR86aM4scya5c83A8hcCch7S602ncH9}6;8t9wclajbMbS9Ab6a~d8a:b?bTa+c0cZddbZdcbRb$cxc/0dc70(5V8Pc|cI8^0x8Ud1afc~8!d5cOcn043u0v0ib_aLc5dqds6sbqdx9~0x8=dBaY6*8`dFd6a?ar040,atb/97dfc,dhd,04b2dm3/dobk6P0T6S6z6N6B6K1z0r6Ee22-2(0D1|d 0T6C1F6TbR2W0n0Y0R0D0N7a0$611r1t1v1x0dc=6y1M3J2`3/0D0z0n1i2Q0k1,2=0R9H1FezeBeD2R0F0~0r29040KeG0(eI1K3J1G0A3k1=0v0r1~2i0`0c1~2t0d2i0m1m0j2be.e(0d0o2?0de%e)0d2b0ke-0C0d0Z2j0=790?0_0F0s0!0H0?001x0r0d0b0o78b 0*0d2T0S2tdK0m0d0!e{e}2W0u0$0i0mfC1~781+0r0E7 er0CeY7yec6B0-0/0;04.
Astuce (1)
Il s'agit d'une recherche dans un tableau trié : les valeurs True sont au début, les False à la fin.
Astuce (2)
Si le log ne contient que des valeurs False, il faut renvoyer 0.
Dans le cas contraire, l'indice cherché est l'unique indice i qui vérifie log[i - 1] and not log[i].
Crédits
Nicolas Revéret et Mireille Coilhac
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)