Sujet : Re: Les raisons de ma question de ce jour : panne de mémoire avec list et str
De : om+news (at) *nospam* miakinen.net (Olivier Miakinen)
Groupes : fr.comp.lang.pythonDate : 02. Dec 2024, 22:13:50
Autres entêtes
Organisation : There's no cabale
Message-ID : <vil7uf$kmg$1@cabale.usenet-fr.net>
References : 1
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 SeaMonkey/2.49.4
Le 02/12/2024 17:55, Dominique a écrit :
La 3e énigme parle d'un crêpier amateur qui empile des crêpes de tailles
inégales. [...]
nb=int(input('Nombre de crêpes '))
#Calcul de la taille des crêpes de 0 à 9
crepes=str(random.randint(9**nb,10**nb))
for i in crepes:
crepe.append(i)
Je ne comprends ni le commentaire, ni le code.
Prenons par exemple nb = 5. Tu demandes un nombre aléatoire entre 9^5 = 59049
et 10^5 = 100000, ça te donnera donc un nombre dont au moins l'un des chiffres
est supérieur ou égal à 5, mais tu pourrais par exemple obtenir 60000, avec donc
quatre fois le chiffre 0 et une fois le chiffre 6 : ça ne correspond pas à
l'énoncé qui demande des tailles inégales.
D'ailleurs, si nb > 10, il sera complètement impossible que toutes les tailles
soient différentes !
Voyons voir...
<
https://docs.python.org/3/library/random.html>
random.shuffle(x)
Shuffle the sequence x in place.
</>
Du coup, je ferais plutôt un truc du genre :
crepe = list(range(0, nb))
random.shuffle(crepe)
Par exemple, avec nb = 13 ça m'a donné :
[5, 12, 2, 7, 1, 6, 11, 3, 10, 0, 9, 4, 8]
-- Olivier Miakinen