Aller au contenu

Premier minimum local

Le cadre

Alors qu'elle joue sur un chemin dallé, Élodie laisse rouler une balle. En observant les dalles devant elle, elle se rend compte que certaines dalles sont plus basses que les précédentes, d'autres plus hautes.

Elle se pose la question suivante : "Où va s'arrêter la balle ?"

le chemin dallé

On donne les hauteurs des dalles dans le chemin sous forme d'une liste de nombres entiers positifs. Cette liste compte au minimum deux valeurs.

👍 On garantit que la hauteur de la dernière dalle est strictement supérieure celles de toutes les autres.

Par exemple :

🐍 Script Python
# indices    0  1  2  3  4  5  6  7  8  9 10  11
hauteurs = [10, 8, 7, 5, 5, 4, 3, 6, 6, 5, 4, 12]

Dans l'exemple précédent, illustré par la figure, la balle s'arrête sur la dalle d'indice 6. En effet, la balle s'arrête sur la première dalle dont la hauteur est strictement inférieure à celle de la suivante.

On signale que lorsque deux dalles consécutives sont à la même hauteur, la balle continue de rouler.

Exercice

Coder une fonction indice_arrêt :

  • qui prend en argument la liste des hauteurs des dalles,

  • et qui renvoie l'indice de la dalle sur laquelle s'arrête la bille.

👍 La balle est toujours initialement sur la dalle d'indice 0.

Exemples d'utilisation
>>> hauteurs = [3, 2, 5]
>>> indice_arrêt(hauteurs)
1
>>> hauteurs = [3, 5]
>>> indice_arrêt(hauteurs)
0
>>> hauteurs = [10, 8, 7, 5, 5, 4, 3, 6, 6, 5, 4, 12]
>>> indice_arrêt(hauteurs)
6
###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : /
.128013],/fÉ.q!Br;nb _o=ylaeêpcwgu)vdV413kRméhtsP(S+02C[-i:050E0v0O0u0Z0t0P0o0y0t0u0P0P0r010O0Z0x010406050P0B0L0L0u0k0s040S0q0t0B0^0q0m0o020u0L0x0l0o0K0v120k0h0B0v0P050d0 1113150}0x04051A1t1D0d1A0}0E0Z0D0-0/0;0?0N0Z0A0N0t1R0N0O0{050(0n0t0v1M0:0=011Q1S1U1S0O1!1$1Y0O0k1B0O0N1(1O010e0*0v0m1g0v010-180P0x0u0m0?0V1Y282a1|1*1 1$220L24040a0o0Q0k0q0x0q0P0Z1b1d0$260k0k0v0y2y1t2f0m1B0d1`2K1@1_1^1Z0E2h0?1U0m212v1Y1J1L0.1)2U0Z2W0m0q2!1Y0x2D1B2I2K2=0~291d2$1}2+0k120t0{0H2H2_0|2^2g2{1*2}2 0{0V332a352I2T013a0u30040I3e2J0}3h380?3k3m0G3p2K2/0v2K2!2N0E1_2S3t010y2,2n0#1K1B3A2;343y053K0$3R371N1*0J0{0$0e3T3s3Z0?0z0{0o3)2_3i0m0e0{2)1J0y0v0p130k0w0O3:3Y2%010`040R422`3+3j0{0N0u1a0v0B0k1s1u3S3*44460C0!3y060o4u3/4n1}3#040e0q0k3y4w3;3I0m3^4E364a440q3-042)4K4x390n0{0k2a0A0v493i46484l3f4L3=4V042k4#3I4%4:4b4I044e4g4i4k2@4T0?4p4S4G4b0q0{0Y52431}0L0Z314?4o0{4q4s4v5j4F593!3^3(4)2J5l4M2|4d4f0O4h4j5e1}460X5A394J5q3X5t1*460b585J0?5504020t0O0l5N3=5v4{5z5H4+4;0{5D5#4 4c4Q5W3I5Q0T5.4b5b5d5*535f040b4r5H4t5k615$4b4z2D0O4i0m5=444^0Z4s1t3V3B1E2:1t3D1t0O3F6m2Q2L0u1#6h0d3D1z5I3i2D0L0p0e0u0J3|0N0I0{1l1n1p1r0o5~2@1G350$0(0*0,3I2)4B0{3r101n150F130Z2a5x0o0u0D2E0o0n0q0B0.1%3U3L040z1Q1$6f6|2H6$1x6S1K3i1,1T1V1X6y3I2j21230{2p0S0y0k0_0O2q0s1`1c3T3Q4L2?3S6g7d643$0v5p4~5`1}4P3/5_5m3u3@4Q0m3`3|3~405E500{4(7E7K5,4`5x4|7T455g6P34604u636b5G2=5s3i5Q0r6a5a5c040U4s7,7=3I4z6~207_5F4_5w5y4}4m7F5K5(7%6c7%5L855P0{020A5U7^5H804@5Y7#5!7X5O7(045)8w5X5-8q7.1}5:8j015@04327J8x5L7*3f7 5j8F866d8E5+5:8p7;8U0?8K8M2=067 8$01650%688I8g5 713W6i6u6w1C040W0%6-0L0M7r2A5b2m0o1$261h4C5x2m0m7o2A0/6=3l990!0o0(9f0o1p000v0t990x4h7o6/2a3{0k0c0o9t999z0m3{0o0i1E356v0%0)0+9N6T9Q0P762#4b0u0E0L1c2x0Z1c6=1c0B0P6!1C3i9Z9#0m9%1c0Y0^0O1=040j9+4k1H8}0f7l0Z2D0o0B2W0o0D6*6,1%6/6;a81%6?6^996{3W83700d7y0g9M0}6v3O.