Parcours tableauu

Fermé
LYON - 1 déc. 2020 à 16:42
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 2 déc. 2020 à 13:13
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
"""
A voir également:

14 réponses

Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 341
1 déc. 2020 à 16:50
Bonjour,

C'est pour quand ?
0
dans la semaine mais j'ai une autre suite de programmes a faire après celui la
0
Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 341 > LYON
1 déc. 2020 à 16:52
0
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
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
Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 341
Modifié le 1 déc. 2020 à 17:20
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
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
Modifié le 1 déc. 2020 à 17:19
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
Bonjour, mes indentations sont bonnes mais quand j'ai copié coller ca les a enlever
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
1 déc. 2020 à 17:20
fais donc comme indiqué ici et ca va marcher


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()
0
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
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
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
1 déc. 2020 à 17:26
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
Regardez mon ancien message j'ai fais comme vous m'avez dit.
0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
1 déc. 2020 à 17:40
hé bien voila, on y arrive !
0
vous auriez une facon de faire ce programme ?
0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
1 déc. 2020 à 18:11
Ton code ne fonctionne pas ?

Il donne quoi ?
0
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
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
Modifié le 2 déc. 2020 à 13:14
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