adrien69 a écrit:Eh bien, déjà par fin de descente, je pense qu'il ne faut considérer que les descentes qui sont plus grandes que les montées. (sachant que tu peux sommer deux descentes)
Ensuite voilà l'algorithme auquel je pense :
Tu appelles x(i) la suite de valeurs que prennent tes bâtons.
(0) i:=1
(0') l:=[]
(0'') g:=0
(1) while x(i+1) >= x(i) do i:= i+1 l:= [l,x(i)] end do go to (1)
(2) while x(i+1)=Max(l) then x(i-1) else goto (0'')
Tu peux changer les inégalités pour mettre les critères qui te semblent corrects.
J'ai considéré que tu avais toujours une descente très grande, ce qui n'est peut-être pas le cas (je ne connais pas ton problème de départ), il est donc possible que l'algorithme ne soit pas bien défini et boucle. Mais auquel cas je te fais confiance pour choisir un moyen de l'arrêter (tu peux par exemple prendre un nombre N et dire que s'il n'a pas marché au bout de l'analyse de N pics, c'est qu'il n'y a pas eu d'activité).
Merci pour ton aide, je ne connais pas ce langage de programmation, j'ai donc un peu de mal à comprendre ta première boucle while " l:= [l,x(i)]" et sur ta ligne (0'), tu déclares l:=[], s'agit-il d'un array (tableau dimensionnel)? Si j'ai bien compris, ce tableau "l" liste la montée d'activité?
Ensuite ta deuxième boucle somme les écarts de descente sur une variable g puis les compare à la valeur maximale du tableau dimensionnel "l"?
En fait, je ne comprends pas, j'ai l'impression que ça part sur une boucle infinie, je me trompe peut-être... je ne programme pas en GoTo, c'est une instruction que je bannis de mes codes... :lol3: