Parcours tableauu

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. 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
    1. 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
      1. 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()
        
        1. 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 
          
          1. 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
            1. 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 ?
              1. Bonjour, mes indentations sont bonnes mais quand j'ai copié coller ca les a enlever
            2. 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
              1. Modérateur
                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.
            3. 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