生成 x 和 y 之间的随机数,该数是 5 的倍数

问题描述 投票:0回答:4

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

  • a) 生成两个整数之间的数字,即 5-55,并且
  • b) 仅包含 5 的倍数(或者以 5 或 0 结尾的内容,如果这样更容易的话)

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

python random
4个回答
126
投票

创建一个整数,例如

1-11
并乘以
5
。简单的数学。

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

产生例如

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

69
投票
>>> import random
>>> random.randrange(5,60,5)

应该可以在任何 Python >= 2 中工作。


14
投票

如果您不想自己完成所有操作,可以使用 random.randrange 函数。

例如

import random; print random.randrange(10, 25, 5)
打印 10 到 25 之间的数字(包括 10,排除 25),并且是 5 的倍数。因此它将打印 10、15 或 20。


6
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.