Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python3中生成0到无穷大之间的N个随机数_Python_Python 3.x_Random_Numbers - Fatal编程技术网

如何在Python3中生成0到无穷大之间的N个随机数

如何在Python3中生成0到无穷大之间的N个随机数,python,python-3.x,random,numbers,Python,Python 3.x,Random,Numbers,如何在python 3中生成n个随机数?n是一个待确定的变量。最好是自然数(整数>0), 我找到的所有答案都是一个范围内的随机整数,但我不想从一个范围内生成数字。(除非范围是0到无穷大)套用维特根斯坦的话,机器的极限就是语言的极限。i、 在计算机/计算世界中没有无限这回事。您可以使用(sys.maxint在python 2中)获取计算机支持的最大正整数,并将其传递给random.randint函数: >>> import sys >>> sys.maxsize

如何在python 3中生成n个随机数?n是一个待确定的变量。最好是自然数(整数>0),
我找到的所有答案都是一个范围内的随机整数,但我不想从一个范围内生成数字。(除非范围是0到无穷大)

套用维特根斯坦的话,机器的极限就是语言的极限。i、 在计算机/计算世界中没有无限这回事。您可以使用(
sys.maxint
在python 2中)获取计算机支持的最大正整数,并将其传递给
random.randint
函数:

>>> import sys
>>> sys.maxsize
9223372036854775807
>>> random.randint(0,sys.maxsize)
7512061515276834201
对于生成多个随机数,您可以使用如下列表:

>>> N = 10
>>> [random.randint(0,sys.maxsize) for _ in range(N)]
[3275729488497352533, 7487884953907275260, 36555221619119354, 1813061054215861082, 619640952660975257, 9041692448390670491, 5863449945569266108, 8061742194513906273, 1435436865777681895, 8761466112930659544]
有关中的
sys.maxint
sys.maxsize
差异的更多信息:

sys.maxint
常量已删除,因为不再存在 限制为整数的值。但是,
sys.maxsize
可以用作 大于任何实际列表或字符串索引的整数。符合 实现的“自然”整数大小通常相同 与同一平台上早期版本中的sys.maxint一样(假设 相同的构建选项)


我想你可能需要重新思考一下,你想用你想要的随机数做什么。特别是,您从哪个分布中取样? 如果你想要你的随机数均匀分布(每个数被选择的概率相等),你不能:你需要无限的内存(或时间,或两者兼而有之)

当然,如果考虑非均匀分布,这里有一些介于1和(大致)我的系统允许的最大
float
my系统之间的随机数,但是由于这些数字的表示方式存在差距。你可能会觉得“大”数被选中的概率下降得比你想象的要快

In [254]: [int(1./random.random()) for i in range(10)]
Out[254]: [1, 1, 2, 1, 1, 117, 1, 3, 2, 6]

这里我们有一个内存限制,所以我们可以得到一个系统可以达到的最大随机数。只需将所需的n位数字放入条件中,即可得到所需的结果。例如,我尝试了6位随机数字。可以根据要求进行尝试。希望这能在一定程度上解决你的问题

导入系统

从随机导入*

对于范围内的i(sys.maxsize):
print(randint(0,9),randint(0,9),randint(0,9),randint(0,9),randint(0,9),randint(0,9),sep='')

Python 3中没有
sys.maxint
。。。OP需要重新思考这个问题,并提供更多的上下文。@xnx是的,我错过了python3标签。实际上,在pyhthon 3中,它是sys.maxsize
sys.maxsize
是“可以用作比任何实际列表或字符串索引都大的整数”,但它不是Python 3可以表示的最大整数(这仅受实现可用内存的限制)。无穷大是一个相当大的数字。:-)这在数学上很方便,但很难用程序来表示你说的“在0到无穷大之间”…什么分布?如果所有数字的可能性相等,则无法实现此功能,因此此问题的“默认答案”无效。