43 votes

Python : génère un nombre aléatoire entre x et y qui est un multiple de 5

J'ai lu le manuel du pseudo-aléatoire en Python, et à ma connaissance, vous ne pouvez générer des nombres que jusqu'à une valeur maximale donnée, c'est-à-dire 0-1, 0-30, 0-1000, etc. Je souhaite :

  • a) Générez un nombre entre deux entiers, c'est-à-dire 5-55, et
  • b) N'incluez que des multiples de 5 (ou ceux se terminant par 5 ou 0, si c'est plus facile)

J'ai regardé autour de moi et je ne trouve nulle part qui explique cela.

115voto

Anony-Mousse Points 24646

Créez un nombre entier aléatoire entre par exemple 1-11 et multipliez-le par 5 . Mathématiques simples.

 import random
for x in range(20):
  print random.randint(1,11)*5,
print

produit par exemple

 5 40 50 55 5 15 40 45 15 20 25 40 15 50 25 40 20 15 50 10

57voto

mtrw Points 10098
>>> import random
>>> random.randrange(5,60,5)

devrait fonctionner dans n'importe quel Python >= 2.

11voto

Felix Loether Points 2505

Si vous ne voulez pas tout faire vous-même, vous pouvez utiliser la fonction random.randrange.

Par exemple, import random; print random.randrange(10, 25, 5) imprime un nombre compris entre 10 et 25 (10 inclus, 25 exclus) et est un multiple de 5. Il imprimerait donc 10, 15 ou 20.

4voto

Ofir Farchy Points 1674

Le moyen le plus simple est de générer un nombre aléatoire entre 0 et 1, puis de l'étirer en le multipliant et en le décalant. Donc yo multiplierait par (xy) donc le résultat est dans la plage de 0 à xy, Ajoutez ensuite x et vous obtenez le nombre aléatoire entre x et y.

Pour obtenir un multiplicateur de cinq, utilisez l'arrondi. Si ce n'est pas clair, faites-le moi savoir et j'ajouterai des extraits de code.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X