生成一个随机数[重复]
Posted
技术标签:
【中文标题】生成一个随机数[重复]【英文标题】:Generate a random number [duplicate] 【发布时间】:2019-02-10 09:07:15 【问题描述】:我正在做一个问题,要求我使用random()
以相等的概率生成一个介于 0 到 9999 之间的数字。我知道我可以通过乘以来缩放random()
,但我得到的主要是 4 位数字。有人知道该怎么做吗?
【问题讨论】:
在 0-9999 个数字中,1000-9999 是 4 位数字。因此,当每个数字的概率相同时,您很可能会得到一个 4 位数字。 我知道我可以通过乘以 random() 来缩放它:你不应该那样做 ;) 顺便说一句:欢迎来到 ***。你被否决的原因是,因为有很多关于在 x 和 y 之间生成随机数的问题,所以你应该先搜索你的问题,然后再盲目提问。请花点时间阅读the tour 并阅读how to ask a good question 我实际上试图搜索类似的问题,但我不能。 【参考方案1】:使用randint
。
>>> import random as r
>>> r.randint(0,9999)
6935
>>> r.randint(0,9999)
5550
>>>
【讨论】:
【参考方案2】:建议,假设你想要一个随机整数:
from random import randint
print(randint(0,9999))
【讨论】:
【参考方案3】:您将获得 4 位数字,因为它们是您范围的 90%,因此这是意料之中的。但是,您不需要缩放random()
,而是使用random.randint
。
【讨论】:
【参考方案4】:import numpy as np
# retruns n numbers with uniform(equal) propability between a and b
# thus for each x in arr: a <= x < b
arr = np.random.uniform(a, b, n)
如果你希望它们是整数
arr = np.round(arr).astype(int)
参见此处:np.random.uniform
【讨论】:
没有必要使用像 numpy 这样的外部库来生成随机数,但是是的,这应该可以工作以上是关于生成一个随机数[重复]的主要内容,如果未能解决你的问题,请参考以下文章