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
.128013,%è Ow5e(8R0pkojicE6TS1vqd:y24»fln]93m=)rh[us;b/.àt_gé«aP+7050A0i0Z0(0r0H0T0e0s0H0(0T0T0N010Z0r0n010406050T0S0M0M0(0P0C040w0p0H0S0 0p0I0e020(0M0n0U0e0l0i190P0z0S0i0T050W16181a1c140n041A1H051K0W1K1M1H140A0r0y0@0_0{0}0Q0r0#0Q0H1!0Q0Z12050/0V0H0i1V0`0|011Z1#1%1#0Z1-1/1+0Z0V0p0A1c1,0P1I0Z0Q0@1f0T0n0(0I0}0D011;1X010G0;0i0I1n0i1+2c2e2j1?2m1/2p0M2r040a0e0)0P0p0n0p0T0r1i1k0-2a0P0P0i0s2M1A2t0I1I0W282Y0Z2625270A2v0}1%0I2o2J1+1S1U0^1=2,0r2.0I221T1+0n2R1I2W2Y33152d1k2@2k2|0P190H120e0x2V3713362u391?3b3d3f0D3i2e3k2W2+013p0(3e040e0L3t2X143w3n0}3z3B0e0E3F3v373x3L3f0h3P3H3R3J3y0p3c3A3f0u3W3l381W3o3#3q3C0+3*3I3-3K3/3%3C0k3?3Y3^3!3$3M0K3~3m403T040x0m3P1J311A2=2#0A2)3x0s222B0,1T1I300i323j4c4l0-4t462^010o120-0G4c3@4A0g3f4G3 4A0I0G122`1S0s0i0!300p0s0Q0:0I0!0v0P1x4L4z2k11040j4*3,4N12211f0i2o1z1B4u4H4,120b3P0e3+3S4Q4:3x4-0O0B3W0e5d534~3o120/0;1/52543Z0p120N5m5g3K0V122y573Z4-4/4|3u5n474?0p4^4`5y40595c5e5E4=040r5s4M2k5p040*5r5C2X5f5U1?0M0r123h5!135e5$4+1?4C5R4F5-5:4;3a565_5P5V5q5Z335`55045j0H5l5-5 1?4-5b5-065/5/6b3K5}636j015W623j643Z5)124b6f6i5t4B120g1Z696m6z0p4J042|0Z5T5;6k044@1/5J6a6z4-0R5K5Q5S6T5%0}4-0J6e336g6h5d6n0I6l6r6n5W5Y6M5{5(5*495N6,6n5?0r5^6F6#3y6:3u6s406p6q776.5i0:680i6X4 046)3j6+6,6y746/5R6^3x6p7t6t6{6w6*7p6N6A042R0Z0S0P0I7w5F7s6f1A4w4s4d7Q0W4g1A0Z4i7V2%2Z21232#0(1.7S4g1G4y6_0}2R0M0!0G0(0o4U0Q0L121s1u1w1y0e7l5D1N3k1H0f2N0$0V1h1:2d0P0e2`0s0P0$2A0I0Z0i8e0_0e0y3A0i7H0e2O057P7M8y0e0(2m2N8c1=8n8B0S0e0%0e0q0p1x8u0F0e161T2e0Z0X0e0w0r0e0H004R0r4T8v0$2d0{1:8p671/8v8J1}0i0(8J1j8#0S8!0A1j2.8#0(8q8s8u8x4m3x1^1$1(1*7-3x6u047z4u0W8y0X1J8504870e8i0n0d8m0@0.8f0I8h8j2o0Z8v2e0?0S92210S0^1:0q0S0T1w000Y9s2o4l8l2R8e9I1:8r1/8u0$0#8s0e9T982O3Z9b1`1)2s740o0s124%4)6a9l4m049n847,9r2I7H0P0:9E8`0{8!1h0;0r0T8H8$2H0$a88m977P9a1(9=9e6=120c4c9 4x8X0t1k0i0G0G0.0b8#8%0I4S1:0-0y0r9D0e2$2H0e0#a8aK8#3#9Q0S8%0H0e1y9E9)3A9,53ap9:ar9d9@7C7r8;7h9~8A9y9.1:a:1_a=9f3Za^7f6E6;6Gav7K5Qa_axa|0Ta*9*a%9-a/409;b26n9h9j838A6e1Q4o2?bma;1{a?7.2l2n2z2B2D0w8h109E0)0C281j4c4r7-344u8y6 4DaD7i1?6I536!a@4P5RaK8)4U4W4Y4!4$4(a`356U125Bb@7q5G5I0I4{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~040Oc@cZc@cg7gc)bW7E0.7H7Jc#cfd314ay7SbR4f4pdH0-670T04.
.128013,%è Ow5e(8R0pkojicE6TS1vqd:y24»fln]93m=)rh[us;b/.àt_gé«aP+7050A0i0Z0(0r0H0T0e0s0H0(0T0T0N010Z0r0n010406050T0S0M0M0(0P0C040w0p0H0S0 0p0I0e020(0M0n0U0e0l0i190P0z0S0i0T050W16181a1c140n041A1H051K0W1K1M1H140A0r0y0@0_0{0}0Q0r0#0Q0H1!0Q0Z12050/0V0H0i1V0`0|011Z1#1%1#0Z1-1/1+0Z0V0p0A1c1,0P1I0Z0Q0@1f0T0n0(0I0}0D011;1X010G0;0i0I1n0i1+2c2e2j1?2m1/2p0M2r040a0e0)0P0p0n0p0T0r1i1k0-2a0P0P0i0s2M1A2t0I1I0W282Y0Z2625270A2v0}1%0I2o2J1+1S1U0^1=2,0r2.0I221T1+0n2R1I2W2Y33152d1k2@2k2|0P190H120e0x2V3713362u391?3b3d3f0D3i2e3k2W2+013p0(3e040e0L3t2X143w3n0}3z3B0e0E3F3v373x3L3f0h3P3H3R3J3y0p3c3A3f0u3W3l381W3o3#3q3C0+3*3I3-3K3/3%3C0k3?3Y3^3!3$3M0K3~3m403T040x0m3P1J311A2=2#0A2)3x0s222B0,1T1I300i323j4c4l0-4t462^010o120-0G4c3@4A0g3f4G3 4A0I0G122`1S0s0i0!300p0s0Q0:0I0!0v0P1x4L4z2k11040j4*3,4N12211f0i2o1z1B4u4H4,120b3P0e3+3S4Q4:3x4-0O0B3W0e5d534~3o120/0;1/52543Z0p120N5m5g3K0V122y573Z4-4/4|3u5n474?0p4^4`5y40595c5e5E4=040r5s4M2k5p040*5r5C2X5f5U1?0M0r123h5!135e5$4+1?4C5R4F5-5:4;3a565_5P5V5q5Z335`55045j0H5l5-5 1?4-5b5-065/5/6b3K5}636j015W623j643Z5)124b6f6i5t4B120g1Z696m6z0p4J042|0Z5T5;6k044@1/5J6a6z4-0R5K5Q5S6T5%0}4-0J6e336g6h5d6n0I6l6r6n5W5Y6M5{5(5*495N6,6n5?0r5^6F6#3y6:3u6s406p6q776.5i0:680i6X4 046)3j6+6,6y746/5R6^3x6p7t6t6{6w6*7p6N6A042R0Z0S0P0I7w5F7s6f1A4w4s4d7Q0W4g1A0Z4i7V2%2Z21232#0(1.7S4g1G4y6_0}2R0M0!0G0(0o4U0Q0L121s1u1w1y0e7l5D1N3k1H0f2N0$0V1h1:2d0P0e2`0s0P0$2A0I0Z0i8e0_0e0y3A0i7H0e2O057P7M8y0e0(2m2N8c1=8n8B0S0e0%0e0q0p1x8u0F0e161T2e0Z0X0e0w0r0e0H004R0r4T8v0$2d0{1:8p671/8v8J1}0i0(8J1j8#0S8!0A1j2.8#0(8q8s8u8x4m3x1^1$1(1*7-3x6u047z4u0W8y0X1J8504870e8i0n0d8m0@0.8f0I8h8j2o0Z8v2e0?0S92210S0^1:0q0S0T1w000Y9s2o4l8l2R8e9I1:8r1/8u0$0#8s0e9T982O3Z9b1`1)2s740o0s124%4)6a9l4m049n847,9r2I7H0P0:9E8`0{8!1h0;0r0T8H8$2H0$a88m977P9a1(9=9e6=120c4c9 4x8X0t1k0i0G0G0.0b8#8%0I4S1:0-0y0r9D0e2$2H0e0#a8aK8#3#9Q0S8%0H0e1y9E9)3A9,53ap9:ar9d9@7C7r8;7h9~8A9y9.1:a:1_a=9f3Za^7f6E6;6Gav7K5Qa_axa|0Ta*9*a%9-a/409;b26n9h9j838A6e1Q4o2?bma;1{a?7.2l2n2z2B2D0w8h109E0)0C281j4c4r7-344u8y6 4DaD7i1?6I536!a@4P5RaK8)4U4W4Y4!4$4(a`356U125Bb@7q5G5I0I4{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~040Oc@cZc@cg7gc)bW7E0.7H7Jc#cfd314ay7SbR4f4pdH0-670T04.
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
.128013, Ow5e(8R0pkDojic6TS1vqAd:xFy24fln-]93m=)rh[us;b/.àt_géaP+7050z0g0!0(0q0H0U0c0r0H0(0U0U0O010!0q0l010406050U0T0N0N0(0Q0D040u0o0H0T0 0o0I0c020(0N0l0V0c0j0g190Q0x0T0g0U050X16181a1c140l041A1H051K0X1K1M1H140z0q0w0@0_0{0}0R0q0$0R0H1!0R0!12050/0W0H0g1V0`0|011Z1#1%1#0!1-1/1+0!0W0o0z1c1,0Q1I0!0R0@1f0U0l0(0I0}0E011;1X010G0;0g0I1n0g1+2c2e2j1?2m1/2p0N2r040a0c0)0Q0o0l0o0U0q1i1k0-2a0Q0Q0g0r2M1A2t0I1I0X282Y0!2625270z2v0}1%0I2o2J1+1S1U0^1=2,0q2.0I221T1+0l2R1I2W2Y33152d1k2@2k2|0Q190H120c0v2V3713362u391?3b3d3f0E3i2e3k2W2+013p0(3e040c0M3t2X143w3n0}3z3B0c0F3F3v373x3L3f0f3P3H3R3J3y0o3c3A3f0s3W3l381W3o3#3q3C0+3*3I3-3K3/3%3C0i3?3Y3^3!3$3M0L3~3m403T040v0k3P1J311A2=2#0z2)3x0r222B0,1T1I300g323j4c4l0-4t462^010m120-0G4c3@4A0e3f4G3 4A0I0G120$0(0$2p0I0!4L4z2k11040h4X3,4N120I0W0#0p0o1x0T0Q1z1B4u4H4Z120P0A3W0c4 0c3+3S124.4:4=3P514_1?0o120O58523Z4!0S4%3x0m0r120t0Q1x5f5a0}4C040G3#5s4M3a120q5z4Y5b4J042`5E4(3a0W120Q2e0$0g5k5h124$4@3u5g474*4,550g4;4?355t014!0P0K4~505Z4)5I5K3x5c045e5X2X595A1?0N0q124b5~1350605F5u120e1Z1/5_3Z0I5#4-4/5(57676a5L5b12020$0!0V6h4063123h675?4`044}670669696E3o5C6y4A5{5}336q535I0I1S0r0g0#300o0r0R0:0I0#5p5r6D5,4!5W5+613K546m5)5T404!0b6P5B5^6/6@5-4{5;6K6U6i6_565*4^745i6|5@5D736b75045:6p6M0}6R701?5m120C3A0U5S6I784 7q3y6O7p5,7s7H746j6W6Y6!6$6(6*6,5q7A6?7l6;7h715%6{7k6r0}6~7t6^727W7(7m0P776K7E7M4+6l7c7+015{0J6S3j796z64493W6J5=5,5v2R0!4;0I7|7M7j6T7E5{0*7|6A856I1A4w4s4d8s0X4g1A0!4i8x2%2Z21232#0(1.8u4g1G4y7/2R0N0#0G0(0m6!0R0M121s1u1w1y0c6H351N3k1H0n2e0?0_0c5x0I2T0q1j518r044R4T2e4W0X8_0b0c8@4l182o6Z0c2d0Q0@0Q0%0g9a8.1%0U0!1:2O211f9d0I0U910!4/0?0%4R0T0B0c0Z8^4m3x1^1$1(1*8L5l5n046-7V4u8 4m3C0h9s0T8-8!7#4=0c0U1j0!0c963#1:2o0c0p5(0P0Y1J8)040d2N0%2K4T1:1/9,6`9a0z9#0@001y9$9}9T9a0(0w2S9B4x7j8_0c0h9A058r9D1(1`1)2s748n668%ag0(0T0c0z0%0W1h984/9f1:9X824A1a2L0R199j0B12090h0v097;679/9;8K9@0c0_8;9*9p0T2L9|0(981a0 1:1w0q2a4V2`1x9,9U1w009A978Za#1:2|0N0W2RayaG9 0?9!2L0c9v3A9zad1:3Z9Eao9H7E8n6Cau9Q9:8(8K0y0@6)b10%0/0l1:6H1Q050T0H3k1%04930R9e6(9|002`7Oayax7Q6)2`9~569%8;9)b#9,5(0c6x0XbK14bK8@a#000%1%632.b+1Ab.05b:1k2d0{1:awbZ6n9Za*0w8}b(0g0G0G2S8cca0Tb`2|0Tab0H9}2RbP0QbPbtb}0XbH9=bw8.2m2Na,8/1j8=1j918@2R0I0w0o0q1:ak9Cbkan9Gaq7l8g7|8k8m84bq9OavcAb80c9j0I0q9a940l9jbUay0%0r3A4Sa(2$9|8!bS0q6Z0?0z8,a#a-9hc;0.b20?0I170%2Gd29WbabtbF8v0.0:0=04.
.128013, Ow5e(8R0pkDojic6TS1vqAd:xFy24fln-]93m=)rh[us;b/.àt_géaP+7050z0g0!0(0q0H0U0c0r0H0(0U0U0O010!0q0l010406050U0T0N0N0(0Q0D040u0o0H0T0 0o0I0c020(0N0l0V0c0j0g190Q0x0T0g0U050X16181a1c140l041A1H051K0X1K1M1H140z0q0w0@0_0{0}0R0q0$0R0H1!0R0!12050/0W0H0g1V0`0|011Z1#1%1#0!1-1/1+0!0W0o0z1c1,0Q1I0!0R0@1f0U0l0(0I0}0E011;1X010G0;0g0I1n0g1+2c2e2j1?2m1/2p0N2r040a0c0)0Q0o0l0o0U0q1i1k0-2a0Q0Q0g0r2M1A2t0I1I0X282Y0!2625270z2v0}1%0I2o2J1+1S1U0^1=2,0q2.0I221T1+0l2R1I2W2Y33152d1k2@2k2|0Q190H120c0v2V3713362u391?3b3d3f0E3i2e3k2W2+013p0(3e040c0M3t2X143w3n0}3z3B0c0F3F3v373x3L3f0f3P3H3R3J3y0o3c3A3f0s3W3l381W3o3#3q3C0+3*3I3-3K3/3%3C0i3?3Y3^3!3$3M0L3~3m403T040v0k3P1J311A2=2#0z2)3x0r222B0,1T1I300g323j4c4l0-4t462^010m120-0G4c3@4A0e3f4G3 4A0I0G120$0(0$2p0I0!4L4z2k11040h4X3,4N120I0W0#0p0o1x0T0Q1z1B4u4H4Z120P0A3W0c4 0c3+3S124.4:4=3P514_1?0o120O58523Z4!0S4%3x0m0r120t0Q1x5f5a0}4C040G3#5s4M3a120q5z4Y5b4J042`5E4(3a0W120Q2e0$0g5k5h124$4@3u5g474*4,550g4;4?355t014!0P0K4~505Z4)5I5K3x5c045e5X2X595A1?0N0q124b5~1350605F5u120e1Z1/5_3Z0I5#4-4/5(57676a5L5b12020$0!0V6h4063123h675?4`044}670669696E3o5C6y4A5{5}336q535I0I1S0r0g0#300o0r0R0:0I0#5p5r6D5,4!5W5+613K546m5)5T404!0b6P5B5^6/6@5-4{5;6K6U6i6_565*4^745i6|5@5D736b75045:6p6M0}6R701?5m120C3A0U5S6I784 7q3y6O7p5,7s7H746j6W6Y6!6$6(6*6,5q7A6?7l6;7h715%6{7k6r0}6~7t6^727W7(7m0P776K7E7M4+6l7c7+015{0J6S3j796z64493W6J5=5,5v2R0!4;0I7|7M7j6T7E5{0*7|6A856I1A4w4s4d8s0X4g1A0!4i8x2%2Z21232#0(1.8u4g1G4y7/2R0N0#0G0(0m6!0R0M121s1u1w1y0c6H351N3k1H0n2e0?0_0c5x0I2T0q1j518r044R4T2e4W0X8_0b0c8@4l182o6Z0c2d0Q0@0Q0%0g9a8.1%0U0!1:2O211f9d0I0U910!4/0?0%4R0T0B0c0Z8^4m3x1^1$1(1*8L5l5n046-7V4u8 4m3C0h9s0T8-8!7#4=0c0U1j0!0c963#1:2o0c0p5(0P0Y1J8)040d2N0%2K4T1:1/9,6`9a0z9#0@001y9$9}9T9a0(0w2S9B4x7j8_0c0h9A058r9D1(1`1)2s748n668%ag0(0T0c0z0%0W1h984/9f1:9X824A1a2L0R199j0B12090h0v097;679/9;8K9@0c0_8;9*9p0T2L9|0(981a0 1:1w0q2a4V2`1x9,9U1w009A978Za#1:2|0N0W2RayaG9 0?9!2L0c9v3A9zad1:3Z9Eao9H7E8n6Cau9Q9:8(8K0y0@6)b10%0/0l1:6H1Q050T0H3k1%04930R9e6(9|002`7Oayax7Q6)2`9~569%8;9)b#9,5(0c6x0XbK14bK8@a#000%1%632.b+1Ab.05b:1k2d0{1:awbZ6n9Za*0w8}b(0g0G0G2S8cca0Tb`2|0Tab0H9}2RbP0QbPbtb}0XbH9=bw8.2m2Na,8/1j8=1j918@2R0I0w0o0q1:ak9Cbkan9Gaq7l8g7|8k8m84bq9OavcAb80c9j0I0q9a940l9jbUay0%0r3A4Sa(2$9|8!bS0q6Z0?0z8,a#a-9hc;0.b20?0I170%2Gd29WbabtbF8v0.0:0=04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)