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. 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
    1. 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.
    2. 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
    3. 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. 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. 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. 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. 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