web-dev-qa-db-fra.com

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

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

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

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

35
tkbx

Créez un entier aléatoire entre p. Ex. 1-11 et le multiplier 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
99
Anony-Mousse
>>> import random
>>> random.randrange(5,60,5)

devrait fonctionner dans tout Python> = 2.

54
mtrw

Si vous ne voulez pas tout faire par 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 un multiple de 5. Ainsi, 10, 15 ou 20 seront imprimés.

10
Felix Loether

Le moyen le plus simple est de générer un nombre aléatoire compris entre 0 et 1, puis de l’étirer en le multipliant et en le décalant.
Donc, yo serait multiplié par (x-y) pour que le résultat soit dans la gamme de 0 à x-y,
Ajoutez ensuite x et vous obtenez le nombre aléatoire entre x et y.

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

4
Ofir Farchy