如何使用Python生成大于指定值的随机数字?

问题描述:

由此我的意思是我需要Python在一种条件下生成任意随机数,它必须大于用户定义的数字(可以说“x”),换句话说,它就像是说x> num>无穷大。如何使用Python生成大于指定值的随机数字?

我尝试使用随机模块,但似乎无法弄清楚什么的,因为我想是这样的

import random 
import math 
inf=math.inf 
x=15 
random.randint(x,inf) 

但因为无限注册为一个浮点数和不工作randint函数只能用于整数。我也尝试过这样的事情

import random 
import math 
inf=math.inf 
x=15 
random.uniform(x,inf) 

这应该工作,因为统一的功能与浮动点的工作,但它只是结束了每次返回无穷大。

这意味着我需要在不使用infinity(或math.inf)的情况下完成这个任务,我只需要范围有一个最小值(x)而没有最大值。有什么建议么?

我在OS X上运行的优胜美地的Python 3.6.0b4

+0

你真的想要一个整数吗?然后'random.randint(x,sys.maxsize)'会做到这一点,请参阅https://stackoverflow.com/q/7604966/3001761 – jonrsharpe

+0

如果你没有问题,那么你可以使数字与你的记忆一样大能适应。 –

+2

均匀分布只能在有界区间上定义。所以,试图在某种价值和无穷之间使用它是没有意义的。 –

没有特定的最大整数。请参阅this article

改为使用sys.maxsize

sys.maxsize给出最大值的整数Py_ssize_t类型的变量可以采用的整数。它通常在32位平台上是2^31-1,在64位平台上是2^63-1。

限制上限某些较小值,一个可以简单地一个最大小于由sys.maxsize隐含限定。例如,64位最大有符号整数9,223,372,036,854,775,807可能被限制为999,999,999,999,999L小数点后15位。你可以使用那个或者小于sys.maxsize所暗示的长整数。

+0

有没有办法将输出限制到一定数量的数字? –

+0

@JadMoussa是的,当然看到我上面编辑的答案。感谢接受! – TomServo