Inscription / Connexion Nouveau Sujet
Niveau exercices
Partager :

algorithme et entiers consecutifs

Posté par
flight
19-12-20 à 19:56

Bonjour

pour se distraire un peu , il s'agirait d'écrire un algorithme permettant de connaitre le nombre de paquets de chiffres consécutifs dans une chaine numérique quelconque  ainsi que le nombre de chiffres qui se suivent par paquet. pour exemple si je prend la chaine suivante : "1239734045673",    ici j'ai 3 paquets qui sont (123)  (34)  et (4567)  et  j'ai donc trois paquets  de valeur 3 , 2 et 4
pour l'exercice on prendra "0356823411678923"

Posté par
LittleFox
re : algorithme et entiers consecutifs 19-12-20 à 22:00


Par exemple:

def get_paquets(s):
    paquets = []
    current_paquet = [int(s[0])]
    for c in s[1:]:
        c = int(c)
        if c == current_paquet[-1] + 1:
            current_paquet.append(c)
        else:
            paquets.append(current_paquet)
            current_paquet = [c]
    paquets.append(current_paquet)
    return paquets


Je considère qu'il y a des paquets de longueur 1. Mais on peut les filtrer par après.

>>> get_paquets("0356823411678923")
[[0], [3], [5, 6], [8], [2, 3, 4], [1], [1], [6, 7, 8, 9], [2, 3]]

Posté par
royannais
re : algorithme et entiers consecutifs 20-12-20 à 09:33

Bonjour
pourquoi pas avec excel

 Cliquez pour afficher

Posté par
dpi
re : algorithme et entiers consecutifs 20-12-20 à 11:27

Bonjour,
Avec excel aussi:

 Cliquez pour afficher

Posté par
ty59847
re : algorithme et entiers consecutifs 20-12-20 à 13:43

Ce que vous proposez avec Excel marche encore avec 123678123 ?

Posté par
jarod128
re : algorithme et entiers consecutifs 20-12-20 à 14:58

Bonjour, j'aime bien le récursif:

 Cliquez pour afficher

Posté par
jarod128
re : algorithme et entiers consecutifs 20-12-20 à 14:59

Comment on fait pour l'indentation? Elle ne reste pas sur le site???

Posté par
royannais
re : algorithme et entiers consecutifs 20-12-20 à 15:01

Bonjour
ty59847
effectivement la séparation entre le 3 et le 6 n'apparait pas, je vais essayer d'y remédier

Posté par
GBZM
re : algorithme et entiers consecutifs 20-12-20 à 15:44

Bonjour,

Si on veut garder les indentations (indispensables pour un code python), il faut utiliser le bouton "code" de la fenêtre d'édition, qui se présente ainsi : </>

Posté par
jarod128
re : algorithme et entiers consecutifs 20-12-20 à 15:59

Merci GBZM

 Cliquez pour afficher

Posté par
flight
re : algorithme et entiers consecutifs 20-12-20 à 23:25

salut

avec vba :

Sub analyse()
Dim n As Integer
Dim w As String
w = ""
x = "0356823411678923"
For i = 1 To Len(x) - 1
ecart = ecart & Abs(Val(Mid(x, i + 1, 1)) - Val(Mid(x, i, 1)))
Next
MsgBox ecart
i = 1
While i <= Len(ecart)
While Val(Mid(ecart, i, 1)) = 1
i = i + 1
n = n + 1
Wend
If n <> 0 Then
   w = w & " " & n + 1
   paquets = paquets + 1
End If
n = 0
i = i + 1
Wend
MsgBox w & Chr(10) & paquets & " paquets" ' retourne 2 4 3 2 et  4 paquets
End Sub

Posté par
dpi
re : algorithme et entiers consecutifs 21-12-20 à 07:55

>flight
Mon bidule ne fonctionne bien que si il y a une rupture entre les paquets....
Je vais améliorer .
Je regrette de n'avoir jamais programmé.....

Posté par
flight
re : algorithme et entiers consecutifs 21-12-20 à 08:36

Salut dpi, comme tu es utilisateur d excel tu peux justement programmer dans cet environnement avec vba (ça peut rendre pas mal de services)

Posté par
dpi
re : algorithme et entiers consecutifs 21-12-20 à 10:15

Bonjour flight,
J'y suis arrivé en intercalant des mini-colonnes disponibles pour " ou ,ou / ....
Je ne vois pas ce qu'est vba  ?

Posté par
flight
re : algorithme et entiers consecutifs 21-12-20 à 14:17

vois ici :

Posté par
dpi
re : algorithme et entiers consecutifs 21-12-20 à 16:42

Merci flight

Je pense que je ne vais pas y aller ,il me faudrait un coach ( j'ai pratiqué Symphony  dès
1982 puis Excel....  de "base" ).



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !