[Python] Afficher la plus grande suite du chiffre 1

Résolu/Fermé
Robin - 18 mars 2015 à 18:43
 Robin - 18 mars 2015 à 19:22
Bonjour,

J'ai besoin d'aide concernant un programme, et je vous avoue que je suis carrément bloqué : Je dois écrire un algorithme permettant de générer 1000 fois un nombre entre 0 et 1. Pour ça, il n'y a pas de problèmes.
Mais on me demande ensuite d'afficher la plus grande suite de 1 parmi le résultat et c'est à partir de là que je suis bloqué !

Quelqu'un aurait-il la gentillesse de me proposer une variable ?

Merci d'avance

1 réponse

ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
18 mars 2015 à 19:09
'lut, de manière naïve, il suffit d'itérer sur les nombres générés et sauvegarder l'emplacement sur lequel on est, d'incrémenter une variable à chaque 1, la remettre à 0 aux 0, et retenir les valeurs les plus hautes rencontrées (ici j'assume l'utilisation de Python 3; la conversion au 2 c'est juste
range
->
xrange
):
# On fait notre tableau de hasard
import random
hasard = [round(random.random()) for i in range(1000)]
# On itère
maxCompte = 0
maxDebut = 0
compte = 0
debut = 0
for i, v in enumerate(hasard):
    if v == 1:
        if i > 0 and hasard[i-1] != 1: #i>0 sinon on est en dehors du tableau
            debut = i
        compte += 1
    else:
        if compte > maxCompte:
            maxCompte = compte
            maxDebut = debut
        compte = 0
print("Debut: ", maxDebut, " Compte: ", maxCompte)
0
Très bonne proposition ! Merci beaucoup, ça me sera très utile !
0