Python:在x和y之间生成随机数,它是5的倍数[重复]
Posted
技术标签:
【中文标题】Python:在x和y之间生成随机数,它是5的倍数[重复]【英文标题】:Python: Generate random number between x and y which is a multiple of 5 [duplicate] 【发布时间】:2012-01-07 09:36:00 【问题描述】:我已阅读 Python 中的伪随机性手册,据我所知,您只能生成不超过给定最大值的数字,即 0-1、0-30、0-1000 等。我想要到:
a) 生成一个介于两个整数之间的数字,即 5-55,并且 b) 仅包含 5 的倍数(或者以 5 或 0 结尾的倍数,如果这样更容易的话)我环顾四周,找不到任何解释这一点的地方。
【问题讨论】:
你读过docs.python.org/library/random.html吗?向下扫描到标题为“整数函数”的部分。 【参考方案1】:在例如之间创建一个整数随机数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
【讨论】:
浮动:***.com/questions/6088077/…【参考方案2】:>>> import random
>>> random.randrange(5,60,5)
应该在任何 Python >= 2 中工作。
【讨论】:
虽然我觉得这是更好的答案,但我想指出,这个答案不包括返回 60,这可能违反直觉。我建议使用random.randrage(5,55+1,5)
作为更清晰的方法。【参考方案3】:
如果不想自己做,可以使用random.randrange函数。
例如,import random; print random.randrange(10, 25, 5)
打印一个介于 10 和 25 之间的数字(包括 10,不包括 25)并且是 5 的倍数。因此它会打印 10、15 或 20。
【讨论】:
【参考方案4】:最简单的方法是生成一个介于 0-1 之间的随机数,然后通过相乘和移位来拉伸它。 所以你会乘以 (x-y) 所以结果在 0 到 x-y 的范围内, 然后加上 x,你得到 x 和 y 之间的随机数。
要获得五个乘数,请使用四舍五入。如果不清楚,请告诉我,我将添加代码 sn-ps。
【讨论】:
正如匿名者指出的那样,使用范围内随机化要干净得多。以上是关于Python:在x和y之间生成随机数,它是5的倍数[重复]的主要内容,如果未能解决你的问题,请参考以下文章
生成一组随机 x,y,z 数字,它们之间的差异最小,在定义的限制之间