Parcours tableauu

LYON -  
Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, j'arrive pas a programmer cela si quelqu'un pourrait m'aider ?

from random import randint

def trajet(n, mini, maxi):
"""
n – int, entier strictement positif
mini, maxi – int, strictement positifs avec mini < maxi
Sortie: list – tableau de n entiers aléatoires compris
entre mini (inclus) et maxi (inclus). Attention,
deux éléments successifs ne peuvent pas être égaux
et doivent un écart d'au maximum 3 en plus ou en
moins. Par exemple :
- La liste [2, 5, 7, 4, 2, 4] convient
- La liste [1, 2, 3, 2, 1, 4] convient
- La liste [2, 5, 8, 6, 7, 3] ne convient pas
- La liste [2, 5, 5, 6, 3, 4] ne convient pas
"""

14 réponses

  1. Chris 94 Messages postés 1937 Date d'inscription   Statut Modérateur Dernière intervention   7 536
     
    Bonjour,

    C'est pour quand ?
    0
  2. LYON
     
    j'essaye de faire un algorithme mais je bloque:

    tant que tab != N alors
    on genere un aleatoire(mini,maxi)
    si len(tab[0])- len(tab[0]+1) == 3 ou -3
    alors on ajoute cet entier au tableau

    je ne sais pas comment faire mieux je n'ai trouver que cette idée
    0
  3. LYON
     
    J'ai essayé comme ca mais toujours pas ..

    def trajet(n, mini, maxi):
    """
    n – int, entier strictement positif
    mini, maxi – int, strictement positifs avec mini < maxi
    Sortie: list – tableau de n entiers aléatoires compris
    entre mini (inclus) et maxi (inclus). Attention,
    deux éléments successifs ne peuvent pas être égaux
    et doivent un écart d'au maximum 3 en plus ou en
    moins. Par exemple :
    - La liste [2, 5, 7, 4, 2, 4] convient
    - La liste [1, 2, 3, 2, 1, 4] convient
    - La liste [2, 5, 8, 6, 7, 3] ne convient pas
    - La liste [2, 5, 5, 6, 3, 4] ne convient pas
    """
    assert mini<maxi, "Mini doit etre plus petit que Maxi"
    assert n>=0 , "N doit etre strictement positif"
    tab=[]
    ale=randint(mini,maxi)
    tab.append(ale)
    while len(tab)!=n:
    ale
    if tab[0]-ale >=3 or tab[0]>=-3:
    tab.append(ale)
    tab[0+1]
    return tab
    0
    1. Chris 94 Messages postés 1937 Date d'inscription   Statut Modérateur Dernière intervention   7 536
       
      Bon, à part les rappels au règlement, je ne peux pas grand chose pour toi, désolé...

      Cependant :
      Pense à attribuer au code la couleur syntaxique et la forme correcte avec le bouton
      <>
      en haut de la case d'édition.
      0
  4. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    Bonjour Lyon,

    L'indentation étant importante en Python, merci de re poster ton code avec les balises de code
    mode d'emploi:
    https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
    Visuellement, ça doit ressembler à ceci (avec la coloration syntaxique) :

    def test():
        print('test')
    
    test()
    


    C'est quoi le but du jeu ?
    0
    1. LYON
       
      Bonjour, mes indentations sont bonnes mais quand j'ai copié coller ca les a enlever
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. LYON
     
    Merci Phil,
    J'utilise spyder pour programmer et mes indentations sont bonnes et colorées, je dois programmer un tableau de n entiers aléatoires compris entre mini (inclus) et maxi (inclus) deux éléments successifs ne peuvent pas être égaux
    et doivent un écart d'au maximum 3 en plus ou en
    moins. Par exemple :
    - La liste [2, 5, 7, 4, 2, 4] convient
    - La liste [1, 2, 3, 2, 1, 4] convient
    - La liste [2, 5, 8, 6, 7, 3] ne convient pas
    - La liste [2, 5, 5, 6, 3, 4] ne convient pas
    0
  7. LYON
     
    def trajet(n, mini, maxi):
        """
        n – int, entier strictement positif
        mini, maxi – int, strictement positifs avec mini < maxi
        Sortie: list – tableau de n entiers aléatoires compris
                entre mini (inclus) et maxi (inclus). Attention,
                deux éléments successifs ne peuvent pas être égaux
                et doivent un écart d'au maximum 3 en plus ou en
                moins. Par exemple :
                - La liste [2, 5, 7, 4, 2, 4] convient
                - La liste [1, 2, 3, 2, 1, 4] convient
                - La liste [2, 5, 8, 6, 7, 3] ne convient pas
                - La liste [2, 5, 5, 6, 3, 4] ne convient pas
        """
        assert  mini<maxi, "Mini doit etre plus petit que Maxi"
        assert n>=0 , "N doit etre strictement positif"
        tab=[]
        ale=randint(mini,maxi)
        tab.append(ale)
        while len(tab)!=n:
            ale
            if tab[0]-ale >=3 or tab[0]>=-3:
               tab.append(ale)
        tab[0+1]
        return tab 
    
    0
  8. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    encore raté, tu vois bien que ca ne ressemble pas à ca du tout, pourtant, c'est simple de suivre le mode d'emploi

    def test():
        print('test')
    
    test()
    
    0
  9. LYON
     
    Regardez mon ancien message j'ai fais comme vous m'avez dit.
    0
  10. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    hé bien voila, on y arrive !
    0
  11. LYON
     
    vous auriez une facon de faire ce programme ?
    0
  12. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    Ton code ne fonctionne pas ?

    Il donne quoi ?
    0
  13. LYON
     
    Il me donne juste le meme nombre aléatoire N fois.
    Moi il me faut un programme qui genere N aléatoire et deux elements successifs ne peuvent pas etre égaux et doivent avoir un écart d'au maximum 3 en plus ou en moins. tout ca dans une liste
    0
  14. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    Bonjour Lyon

    Il me donne juste le même nombre aléatoire N fois.

    Normal :
    ale=randint(mini,maxi)
    n'est exécuté qu'une seule fois

    Moi, je ferais une boucle de 1 à n pour exécuter cette instruction n fois

    dans la boucle, j'ajouterais ale à une liste si les conditions sont vérifiées:

    éléments successifs différents et écart = + ou - 3
    0