moyen
Jeu de la ronde (1)
Des enfants jouent dans une cour de récréation : ils se placent en rond et choisissent au hasard l'un d'entre eux.
A partir de là, la règle est simple :
Le premier enfant tape sur l'épaule de son voisin de gauche : celui-ci est éliminé. Au début l'enfant \(1\) élimine donc l'enfant \(2\) ;
On passe à l'enfant restant suivant et l'on recommence : il élimine celui situé à sa gauche. Dans l'exemple, l'enfant \(3\) élimine le \(4\) ;
On continue encore et encore jusqu'à ce qu'il ne reste plus qu'un seul enfant : c'est le gagnant !
Dans le cas où \(13\) enfants jouent comme sur la figure, le gagnant est l'enfant n°\(11\) .
La question est simple : qui va gagner ?
Dans cet exercice on utilise un tableau de booléen nommé joueurs dans lequel chaque valeur indique que le joueur concerné est encore en jeu (True) ou a déjà été éliminé (False).
Attention
Les indices des listes Python étant comptabilisés à partir de 0 , avoir joueurs [ 2 ] égal à False signifie que le joueur n°\(3\) a été éliminé.
Ce tableau sera initialisé avec autant de valeurs True qu'il y a de joueurs.
La partie se déroulera ainsi :
on garde trace de l'indice du joueur qui doit jouer ;
on cherche dans le tableau l'indice du prochain joueur encore en jeu ;
on « élimine » ce joueur ;
on cherche l'indice du prochain joueur encore en jeu : ce sera à lui de jouer.
Ces différentes étapes continuent jusqu'à ce qu'il ne reste plus qu'un seul joueur encore en jeu.
Compléter les fonctions ci-dessous.
Fonction indice_prochain_True
La fonction indice_prochain_True prend en paramètres une liste de booléens ainsi qu'un indice et renvoie l'indice de la prochaine valeur de la liste égale à True.
On prendra soin de « boucler » les indices : si celui-ci dépasse la longueur de la liste, on le ramène à 0 .
On garantit que la liste booleens contient au moins une valeur True.
Exemples
>>> booleens = [ True , True , False , True , False ]
>>> indice_prochain_True ( booleens , 0 )
1
>>> indice_prochain_True ( booleens , 1 )
3
>>> indice_prochain_True ( booleens , 3 )
0
Version vide Version à trous
.128013s3_8èufv»y n7aS1me(P24:jtw«i][hE)6Oo;bcdg/T0làqp.r,=+k%95Ré050O0s0z0o0C0T0b0l0N0T0o0b0b0!010z0C0W010406050b0g0r0r0o0Y0k040p0K0T0g0 0K0m0l020o0r0W0L0l0*0s190Y0V0g0s0b050Q16181a1c140W041A1H051K0Q1K1M1H140O0C0i0@0_0{0}0F0C0P0F0T1!0F0z12050/0M0T0s1V0`0|011Z1#1%1#0z1-1/1+0z0M0K0O1c1,0Y1I0z0F0@1f0b0W0o0m0}0v011;1X010h0;0s0m1n0s1+2c2e2j1?2m1/2p0r2r040a0l0u0Y0K0W0K0b0C1i1k0-2a0Y0Y0s0N2M1A2t0m1I0Q282Y0z2625270O2v0}1%0m2o2J1+1S1U0^1=2,0C2.0m221T1+0W2R1I2W2Y33152d1k2@2k2|0Y190T120l0q2V3713362u391?3b3d3f0v3i2e3k2W2+013p0o3e040l0c3t2X143w3n0}3z3B0l0w3F3v373x3L3f0)3P3H3R3J3y0K3c3A3f0I3W3l381W3o3#3q3C0n3*3I3-3K3/3%3C0e3?3Y3^3!3$3M0(3~3m403T040q0S3P1J311A2=2#0O2)3x0N222B0,1T1I300s323j4c4l0-4t462^010$120-0h4c3@4A0A3f4G3 4A0m0h122`1S0N0s0d300K0N0F0:0m0d0R0Y1x4L4z2k11040t4*3,4N12211f0s2o1z1B4u4H4,120Z3P0l3+3S4Q4:3x4-0H0x3W0l5d534~3o120/0;1/52543Z0K120!5m5g3K0M122y573Z4-4/4|3u5n474?0K4^4`5y40595c5e5E4=040C5s4M2k5p040#5r5C2X5f5U1?0r0C123h5!135e5$4+1?4C5R4F5-5:4;3a565_5P5V5q5Z335`55045j0T5l5-5 1?4-5b5-065/5/6b3K5}636j015W623j643Z5)124b6f6i5t4B120A1Z696m6z0K4J042|0z5T5;6k044@1/5J6a6z4-0E5K5Q5S6T5%0}4-0D6e336g6h5d6n0m6l6r6n5W5Y6M5{5(5*495N6,6n5?0C5^6F6#3y6:3u6s406p6q776.5i0:680s6X4 046)3j6+6,6y746/5R6^3x6p7t6t6{6w6*7p6N6A042R0z0g0Y0m7w5F7s6f1A4w4s4d7Q0Q4g1A0z4i7V2%2Z21232#0o1.7S4g1G4y6_0}2R0r0d0h0o0$4U0F0c121s1u1w1y0l7l5D1N3k1H0J2N0+0M1h1:2d0Y0l2`0N0Y0+2A0m0z0s8e0_0l0i3A0s7H0l2O057P7M8y0l0o2m2N8c1=8n8B0g0l0B0l0y0K1x8u0j0l161T2e0z0X0l0p0C0l0T004R0C4T8v0+2d0{1:8p671/8v8J1}0s0o8J1j8#0g8!0O1j2.8#0o8q8s8u8x4m3x1^1$1(1*7-3x6u047z4u0Q8y0X1J8504870l8i0W0f8m0@0.8f0m8h8j2o0z8v2e0?0g92210g0^1:0y0g0b1w000U9s2o4l8l2R8e9I1:8r1/8u0+0P8s0l9T982O3Z9b1`1)2s740$0N124%4)6a9l4m049n847,9r2I7H0Y0:9E8`0{8!1h0;0C0b8H8$2H0+a88m977P9a1(9=9e6=120%4c9 4x8X0G1k0s0h0h0.0Z8#8%0m4S1:0-0i0C9D0l2$2H0l0Pa8aK8#3#9Q0g8%0T0l1y9E9)3A9,53ap9:ar9d9@7C7r8;7h9~8A9y9.1:a:1_a=9f3Za^7f6E6;6Gav7K5Qa_axa|0ba*9*a%9-a/409;b26n9h9j838A6e1Q4o2?bma;1{a?7.2l2n2z2B2D0p8h109E0u0k281j4c4r7-344u8y6 4DaD7i1?6I536!a@4P5RaK8)4U4W4Y4!4$4(a`356U125Bb@7q5G5I0m4{b{7C4-515~6z7r6Zc1bC59823G7BbCb55kb?b8747vc57q5v045xb%cab_bZ6O6Q4_b cu015M6x5Oc6765#au047bcGb^4.czc7bb605XcP6`5+czcB737C5Wawcma@7ech6}784A5?6C2ncS0}6H126Kc/756P5H6Rcycr58126Wc}b4cFb35L126(c)ce65c8cjcY5qc@5AcNd3c*cQ0#c@9h5,c9c~040Hc@cZc@cg7gc)bW7E0.7H7Jc#cfd314ay7SbR4f4pdH0-670b04.
.128013s3_8èufv»y n7aS1me(P24:jtw«i][hE)6Oo;bcdg/T0làqp.r,=+k%95Ré050O0s0z0o0C0T0b0l0N0T0o0b0b0!010z0C0W010406050b0g0r0r0o0Y0k040p0K0T0g0 0K0m0l020o0r0W0L0l0*0s190Y0V0g0s0b050Q16181a1c140W041A1H051K0Q1K1M1H140O0C0i0@0_0{0}0F0C0P0F0T1!0F0z12050/0M0T0s1V0`0|011Z1#1%1#0z1-1/1+0z0M0K0O1c1,0Y1I0z0F0@1f0b0W0o0m0}0v011;1X010h0;0s0m1n0s1+2c2e2j1?2m1/2p0r2r040a0l0u0Y0K0W0K0b0C1i1k0-2a0Y0Y0s0N2M1A2t0m1I0Q282Y0z2625270O2v0}1%0m2o2J1+1S1U0^1=2,0C2.0m221T1+0W2R1I2W2Y33152d1k2@2k2|0Y190T120l0q2V3713362u391?3b3d3f0v3i2e3k2W2+013p0o3e040l0c3t2X143w3n0}3z3B0l0w3F3v373x3L3f0)3P3H3R3J3y0K3c3A3f0I3W3l381W3o3#3q3C0n3*3I3-3K3/3%3C0e3?3Y3^3!3$3M0(3~3m403T040q0S3P1J311A2=2#0O2)3x0N222B0,1T1I300s323j4c4l0-4t462^010$120-0h4c3@4A0A3f4G3 4A0m0h122`1S0N0s0d300K0N0F0:0m0d0R0Y1x4L4z2k11040t4*3,4N12211f0s2o1z1B4u4H4,120Z3P0l3+3S4Q4:3x4-0H0x3W0l5d534~3o120/0;1/52543Z0K120!5m5g3K0M122y573Z4-4/4|3u5n474?0K4^4`5y40595c5e5E4=040C5s4M2k5p040#5r5C2X5f5U1?0r0C123h5!135e5$4+1?4C5R4F5-5:4;3a565_5P5V5q5Z335`55045j0T5l5-5 1?4-5b5-065/5/6b3K5}636j015W623j643Z5)124b6f6i5t4B120A1Z696m6z0K4J042|0z5T5;6k044@1/5J6a6z4-0E5K5Q5S6T5%0}4-0D6e336g6h5d6n0m6l6r6n5W5Y6M5{5(5*495N6,6n5?0C5^6F6#3y6:3u6s406p6q776.5i0:680s6X4 046)3j6+6,6y746/5R6^3x6p7t6t6{6w6*7p6N6A042R0z0g0Y0m7w5F7s6f1A4w4s4d7Q0Q4g1A0z4i7V2%2Z21232#0o1.7S4g1G4y6_0}2R0r0d0h0o0$4U0F0c121s1u1w1y0l7l5D1N3k1H0J2N0+0M1h1:2d0Y0l2`0N0Y0+2A0m0z0s8e0_0l0i3A0s7H0l2O057P7M8y0l0o2m2N8c1=8n8B0g0l0B0l0y0K1x8u0j0l161T2e0z0X0l0p0C0l0T004R0C4T8v0+2d0{1:8p671/8v8J1}0s0o8J1j8#0g8!0O1j2.8#0o8q8s8u8x4m3x1^1$1(1*7-3x6u047z4u0Q8y0X1J8504870l8i0W0f8m0@0.8f0m8h8j2o0z8v2e0?0g92210g0^1:0y0g0b1w000U9s2o4l8l2R8e9I1:8r1/8u0+0P8s0l9T982O3Z9b1`1)2s740$0N124%4)6a9l4m049n847,9r2I7H0Y0:9E8`0{8!1h0;0C0b8H8$2H0+a88m977P9a1(9=9e6=120%4c9 4x8X0G1k0s0h0h0.0Z8#8%0m4S1:0-0i0C9D0l2$2H0l0Pa8aK8#3#9Q0g8%0T0l1y9E9)3A9,53ap9:ar9d9@7C7r8;7h9~8A9y9.1:a:1_a=9f3Za^7f6E6;6Gav7K5Qa_axa|0ba*9*a%9-a/409;b26n9h9j838A6e1Q4o2?bma;1{a?7.2l2n2z2B2D0p8h109E0u0k281j4c4r7-344u8y6 4DaD7i1?6I536!a@4P5RaK8)4U4W4Y4!4$4(a`356U125Bb@7q5G5I0m4{b{7C4-515~6z7r6Zc1bC59823G7BbCb55kb?b8747vc57q5v045xb%cab_bZ6O6Q4_b cu015M6x5Oc6765#au047bcGb^4.czc7bb605XcP6`5+czcB737C5Wawcma@7ech6}784A5?6C2ncS0}6H126Kc/756P5H6Rcycr58126Wc}b4cFb35L126(c)ce65c8cjcY5qc@5AcNd3c*cQ0#c@9h5,c9c~040Hc@cZc@cg7gc)bW7E0.7H7Jc#cfd314ay7SbR4f4pdH0-670b04.
Fonction gagnant
La fonction gagnant prend en paramètre le nombre de joueurs au début de la partie (n > 0 ) et renvoie la position du joueur gagnant.
Attention, les positions des joueurs sont comptabilisées à partir de \(1\) .
Exemples
>>> gagnant ( 1 )
1
>>> gagnant ( 5 )
3
>>> gagnant ( 13 )
11
Version vide Version à trous
.128013s3_8ufvy n7aS1me(P24:jtwi]D[h)6Oo;bcdg/T0làqAp.rF-,=+k95Rxé050L0q0x0m0z0Q0b0j0K0Q0m0b0b0!010x0z0U010406050b0f0p0p0m0W0i040n0H0Q0f0 0H0k0j020m0p0U0I0j0)0q190W0S0f0q0b050N16181a1c140U041A1H051K0N1K1M1H140L0z0h0@0_0{0}0D0z0M0D0Q1!0D0x12050/0J0Q0q1V0`0|011Z1#1%1#0x1-1/1+0x0J0H0L1c1,0W1I0x0D0@1f0b0U0m0k0}0t011;1X010g0;0q0k1n0q1+2c2e2j1?2m1/2p0p2r040a0j0s0W0H0U0H0b0z1i1k0-2a0W0W0q0K2M1A2t0k1I0N282Y0x2625270L2v0}1%0k2o2J1+1S1U0^1=2,0z2.0k221T1+0U2R1I2W2Y33152d1k2@2k2|0W190Q120j0o2V3713362u391?3b3d3f0t3i2e3k2W2+013p0m3e040j0c3t2X143w3n0}3z3B0j0u3F3v373x3L3f0(3P3H3R3J3y0H3c3A3f0F3W3l381W3o3#3q3C0l3*3I3-3K3/3%3C0e3?3Y3^3!3$3M0%3~3m403T040o0P3P1J311A2=2#0L2)3x0K222B0,1T1I300q323j4c4l0-4t462^010$120-0g4c3@4A0y3f4G3 4A0k0g120M0m0M2p0k0x4L4z2k11040r4X3,4N120k0J0d0w0H1x0f0W1z1B4u4H4Z120E0v3W0j4 0j3+3S124.4:4=3P514_1?0H120!58523Z4!0C4%3x0$0K120O0W1x5f5a0}4C040g3#5s4M3a120z5z4Y5b4J042`5E4(3a0J120W2e0M0q5k5h124$4@3u5g474*4,550q4;4?355t014!0E0A4~505Z4)5I5K3x5c045e5X2X595A1?0p0z124b5~1350605F5u120y1Z1/5_3Z0k5#4-4/5(57676a5L5b12020M0x0I6h4063123h675?4`044}670669696E3o5C6y4A5{5}336q535I0k1S0K0q0d300H0K0D0:0k0d5p5r6D5,4!5W5+613K546m5)5T404!0Z6P5B5^6/6@5-4{5;6K6U6i6_565*4^745i6|5@5D736b75045:6p6M0}6R701?5m120X3A0b5S6I784 7q3y6O7p5,7s7H746j6W6Y6!6$6(6*6,5q7A6?7l6;7h715%6{7k6r0}6~7t6^727W7(7m0E776K7E7M4+6l7c7+015{0Y6S3j796z64493W6J5=5,5v2R0x4;0k7|7M7j6T7E5{0#7|6A856I1A4w4s4d8s0N4g1A0x4i8x2%2Z21232#0m1.8u4g1G4y7/2R0p0d0g0m0$6!0D0c121s1u1w1y0j6H351N3k1H0B2e0?0_0j5x0k2T0z1j518r044R4T2e4W0N8_0Z0j8@4l182o6Z0j2d0W0@0W0+0q9a8.1%0b0x1:2O211f9d0k0b910x4/0?0+4R0f0*0j0R8^4m3x1^1$1(1*8L5l5n046-7V4u8 4m3C0r9s0f8-8!7#4=0j0b1j0x0j963#1:2o0j0w5(0E0V1J8)040G2N0+2K4T1:1/9,6`9a0L9#0@001y9$9}9T9a0m0h2S9B4x7j8_0j0r9A058r9D1(1`1)2s748n668%ag0m0f0j0L0+0J1h984/9f1:9X824A1a2L0D199j0*12090r0o097;679/9;8K9@0j0_8;9*9p0f2L9|0m981a0 1:1w0z2a4V2`1x9,9U1w009A978Za#1:2|0p0J2RayaG9 0?9!2L0j9v3A9zad1:3Z9Eao9H7E8n6Cau9Q9:8(8K0T0@6)b10+0/0U1:6H1Q050f0Q3k1%04930D9e6(9|002`7Oayax7Q6)2`9~569%8;9)b#9,5(0j6x0NbK14bK8@a#000+1%632.b+1Ab.05b:1k2d0{1:awbZ6n9Za*0h8}b(0q0g0g2S8cca0fb`2|0fab0Q9}2RbP0WbPbtb}0NbH9=bw8.2m2Na,8/1j8=1j918@2R0k0h0H0z1:ak9Cbkan9Gaq7l8g7|8k8m84bq9OavcAb80j9j0k0z9a940U9jbUay0+0K3A4Sa(2$9|8!bS0z6Z0?0L8,a#a-9hc;0.b20?0k170+2Gd29WbabtbF8v0.0:0=04.
.128013s3_8ufvy n7aS1me(P24:jtwi]D[h)6Oo;bcdg/T0làqAp.rF-,=+k95Rxé050L0q0x0m0z0Q0b0j0K0Q0m0b0b0!010x0z0U010406050b0f0p0p0m0W0i040n0H0Q0f0 0H0k0j020m0p0U0I0j0)0q190W0S0f0q0b050N16181a1c140U041A1H051K0N1K1M1H140L0z0h0@0_0{0}0D0z0M0D0Q1!0D0x12050/0J0Q0q1V0`0|011Z1#1%1#0x1-1/1+0x0J0H0L1c1,0W1I0x0D0@1f0b0U0m0k0}0t011;1X010g0;0q0k1n0q1+2c2e2j1?2m1/2p0p2r040a0j0s0W0H0U0H0b0z1i1k0-2a0W0W0q0K2M1A2t0k1I0N282Y0x2625270L2v0}1%0k2o2J1+1S1U0^1=2,0z2.0k221T1+0U2R1I2W2Y33152d1k2@2k2|0W190Q120j0o2V3713362u391?3b3d3f0t3i2e3k2W2+013p0m3e040j0c3t2X143w3n0}3z3B0j0u3F3v373x3L3f0(3P3H3R3J3y0H3c3A3f0F3W3l381W3o3#3q3C0l3*3I3-3K3/3%3C0e3?3Y3^3!3$3M0%3~3m403T040o0P3P1J311A2=2#0L2)3x0K222B0,1T1I300q323j4c4l0-4t462^010$120-0g4c3@4A0y3f4G3 4A0k0g120M0m0M2p0k0x4L4z2k11040r4X3,4N120k0J0d0w0H1x0f0W1z1B4u4H4Z120E0v3W0j4 0j3+3S124.4:4=3P514_1?0H120!58523Z4!0C4%3x0$0K120O0W1x5f5a0}4C040g3#5s4M3a120z5z4Y5b4J042`5E4(3a0J120W2e0M0q5k5h124$4@3u5g474*4,550q4;4?355t014!0E0A4~505Z4)5I5K3x5c045e5X2X595A1?0p0z124b5~1350605F5u120y1Z1/5_3Z0k5#4-4/5(57676a5L5b12020M0x0I6h4063123h675?4`044}670669696E3o5C6y4A5{5}336q535I0k1S0K0q0d300H0K0D0:0k0d5p5r6D5,4!5W5+613K546m5)5T404!0Z6P5B5^6/6@5-4{5;6K6U6i6_565*4^745i6|5@5D736b75045:6p6M0}6R701?5m120X3A0b5S6I784 7q3y6O7p5,7s7H746j6W6Y6!6$6(6*6,5q7A6?7l6;7h715%6{7k6r0}6~7t6^727W7(7m0E776K7E7M4+6l7c7+015{0Y6S3j796z64493W6J5=5,5v2R0x4;0k7|7M7j6T7E5{0#7|6A856I1A4w4s4d8s0N4g1A0x4i8x2%2Z21232#0m1.8u4g1G4y7/2R0p0d0g0m0$6!0D0c121s1u1w1y0j6H351N3k1H0B2e0?0_0j5x0k2T0z1j518r044R4T2e4W0N8_0Z0j8@4l182o6Z0j2d0W0@0W0+0q9a8.1%0b0x1:2O211f9d0k0b910x4/0?0+4R0f0*0j0R8^4m3x1^1$1(1*8L5l5n046-7V4u8 4m3C0r9s0f8-8!7#4=0j0b1j0x0j963#1:2o0j0w5(0E0V1J8)040G2N0+2K4T1:1/9,6`9a0L9#0@001y9$9}9T9a0m0h2S9B4x7j8_0j0r9A058r9D1(1`1)2s748n668%ag0m0f0j0L0+0J1h984/9f1:9X824A1a2L0D199j0*12090r0o097;679/9;8K9@0j0_8;9*9p0f2L9|0m981a0 1:1w0z2a4V2`1x9,9U1w009A978Za#1:2|0p0J2RayaG9 0?9!2L0j9v3A9zad1:3Z9Eao9H7E8n6Cau9Q9:8(8K0T0@6)b10+0/0U1:6H1Q050f0Q3k1%04930D9e6(9|002`7Oayax7Q6)2`9~569%8;9)b#9,5(0j6x0NbK14bK8@a#000+1%632.b+1Ab.05b:1k2d0{1:awbZ6n9Za*0h8}b(0q0g0g2S8cca0fb`2|0fab0Q9}2RbP0WbPbtb}0NbH9=bw8.2m2Na,8/1j8=1j918@2R0k0h0H0z1:ak9Cbkan9Gaq7l8g7|8k8m84bq9OavcAb80j9j0k0z9a940U9jbUay0+0K3A4Sa(2$9|8!bS0z6Z0?0L8,a#a-9hc;0.b20?0k170+2Gd29WbabtbF8v0.0:0=04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)