programme de première | |
---|---|
E1 : | listes |
E2 : | listes |
E3 : | listes |
E4 : | tri par insertion |
E5 : | tri par séléction |
E6 : | dictionnaires / string |
E7 : | tuple |
E8 : | boucle / booléen / liste |
E9 : | string |
E10 : | dictionnaire / fonctions |
E11 : | booléens / listes |
récursivité | |
---|---|
E1 : | somme d'entiers |
E2 : | chiffres romains |
E3 : | factorielle |
E4 : | rendu de monnaie |
POO | |
---|---|
E1 : | la classe Chien |
E2 : | carrés semi-magiques |
E3 : | filtre sur une pile |
E4 : | durées en POO |
Arbres | |
---|---|
E1: | Hauteur et taille d'un arbre |
E2: | parcours 1 |
E3: | parcours 2 |
E4: | Recherche dans un ABR |
E5: | Arbre binaire additif |
E6: | Arbre binaire de recherche |
Diviser pour régner | |
---|---|
E1 : | sommet d'un tableau |
E2 : | Indice d'une panne |
E3 : | calcul d'une puissance |
Sécurisation des communications | |
---|---|
E1 : | code César |
E2 : | Vigenre |
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.
Par exemple, 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
.
Compléter 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
>>> 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