Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1687 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  (Python) Sous séquence contigues

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

(Python) Sous séquence contigues

n°2158186
plard
Posté le 26-09-2012 à 02:20:55  profilanswer
 

Bonjour,
 
je dois écrire un script Python qui, à l'aide des fonction Liste, boucle for et itérateur range(), et à partir d'une liste non trié d'entiers qu’un utilisateur du programme fournira, affiche la somme maximale d’une sous séquence contiguë présente dans la liste. De plus, je dois retourner les indices du début et de la fin de la sous séquence dans la liste. Les éléments de la liste peuvent être positifs ou négatifs. Par exemple si la liste contient les éléments suivants : 11, 13, -4, 3, -26, 7, -13, 25, -2, 17, 5, -8, 1
La sous séquence 3, -26, 7, -13, 25 a pour somme -4, par contre, la sous séquence de somme maximale est 25, -2, 17, 5 (de somme 45). Votre script devra afficher par conséquence : 45 7 10.
 
J'aimerais si possible que quelqu'un m'éclair sur ce problème car c'est la folie je ne sais pas par ou commencer.
Merci d'avance.

mood
Publicité
Posté le 26-09-2012 à 02:20:55  profilanswer
 

n°2158433
plard
Posté le 27-09-2012 à 21:28:24  profilanswer
 

J'ai cogiter un peu et je pensais commencer comme ça, pour l'utilisateur:
while True:
print("\n\nEntrez votre séquence séparée par une virgule\n" )
try:
lst = list(eval(input()))
except NameError:
print("Vous n'avez pas entré des nombres entiers" )
continue
except SyntaxError: # oui on peut prévoir un autre except, autant qu'on aura besoin
print("Vous n'avez pas respecté le format: des nombres séparés par des virgules!" )
continue
break
 
print(lst)
ensuite c'est de calculer ses sous-séquences et c'est ce qui me bloque. Personellement j'ai trouvé qu'il y avait en tout N + (N+1) + (N+2) ... +1 sous-liste. Soit N (N+1)/2. Est-ce que il y a moyen de jouer avec ça ?
 
Merci encore.

n°2158713
masklinn
í dag viðrar vel til loftárása
Posté le 01-10-2012 à 14:58:43  profilanswer
 

plard a écrit :

ensuite c'est de calculer ses sous-séquences et c'est ce qui me bloque.


C'est con, vu que c'est exactement le but de ton exercice :/

 

T'as songé à regarder du côté des combinaisons (mathématiques)? Après tout ton but est d'extraires le sous-ensembles des combinaisons continues de la liste (pas besoin des combinaisons avec des trous), de calculer leurs sommes et de regarder laquelle est la plus grande. Donc la première étape me semblerait être énumérer ces combinaisons

 

Accessoirement, aucune raison d'utiliser eval pour un truc pareil.


Message édité par masklinn le 01-10-2012 à 15:03:43

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  (Python) Sous séquence contigues

 

Sujets relatifs
python, regex, unicode [résolu]Python numpy ecriture résultat avec itération
Tableau python vers array php ?bonjour, problème synthax python sous idle
[python] : trier une liste sur deux criètes (histoire de ".")Traitement de fichier avec python !
[PYTHON] Action sur les variablesSalut Python
[python] plante avec raw_input!Python débutant separateur
Plus de sujets relatifs à : (Python) Sous séquence contigues


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR