生成一个随机数[重复]

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 这样的外部库来生成随机数,但是是的,这应该可以工作

以上是关于生成一个随机数[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何让C#产生不重复的随机数

VBS产生随机不重复的数字

生成不重复的随机数

.net 下用C#产生一个永不重复10位随机数

php生成随机数字,范围1-100,每次生成一个数字,可以重复

生成一个随机数[重复]