Python:在x和y之间生成随机数,它是5的倍数

Python: Generate random number between x and y which is a multiple of 5

本问题已经有最佳答案,请猛点这里访问。

我已经阅读了关于Python中伪随机性的手册,据我所知,您只能生成一个给定最大值的数字,即0-1、0-30、0-1000等。我想:

  • a)在两个整数之间生成一个数字,即5-55,和
  • b)仅包括5的倍数(或以5或0结尾的倍数,如果这样容易的话)

我环顾四周,找不到任何解释这一点的地方。


创建一个介于1-11之间的整数随机数,并将其乘以5。简单的数学。

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

生产例如

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


1
2
>>> import random
>>> random.randrange(5,60,5)

应该可以在任何python中使用>=2。


如果你不想一个人完成这一切,你可以使用random.randrange函数。

例如,import random; print random.randrange(10, 25, 5)打印的数字介于10和25之间(包括10,不包括25),是5的倍数。所以它会打印10、15或20。


最简单的方法是在0-1之间生成一个随机的nuber,然后通过乘法和移位将其拉伸。所以你会乘以(x-y),结果在0到x-y之间,然后加上x,得到x和y之间的随机数。

要得到5倍的乘数,请使用四舍五入。如果不清楚,请告诉我,我会添加代码片段。