如何在 python 3 中生成 n 个随机数? n为待定变量。最好是自然数(整数 > 0),我发现的所有答案都采用一个范围内的随机整数,但是我不想从一个范围内生成数字。 (除非范围是 0 到无穷大)
原文由 Billy Cole 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何在 python 3 中生成 n 个随机数? n为待定变量。最好是自然数(整数 > 0),我发现的所有答案都采用一个范围内的随机整数,但是我不想从一个范围内生成数字。 (除非范围是 0 到无穷大)
原文由 Billy Cole 发布,翻译遵循 CC BY-SA 4.0 许可协议
我认为您可能需要重新考虑您要使用所需的随机数做什么。特别是,您从什么分布中抽取数字?如果您希望随机数均匀分布(每个数字被选中的概率均等),则不能:您需要无限量的内存(或时间,或两者)。
当然,如果您允许非均匀分布,这里有一些介于 1 和(大致)最大的随机数 float
我的系统允许,但由于这些数字的表示方式存在差距。而且您可能会觉得选择“大”数字的概率比您希望的要快得多……
In [254]: [int(1./random.random()) for i in range(10)]
Out[254]: [1, 1, 2, 1, 1, 117, 1, 3, 2, 6]
原文由 xnx 发布,翻译遵循 CC BY-SA 3.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
4 回答2.9k 阅读
套用维特根斯坦的话,你的机器的极限就是你的语言的极限。即在计算机/计算世界中没有无限这样的东西。您可以使用
sys.maxsize
(Python 2 中的sys.maxint
)获取机器支持的最大正整数,并将其传递给random.randint
函数:212为了生成多个随机数,您可以使用如下列表推导式:
有关
sys.maxint
和sys.maxsize
在 python 2.X 和 3.X 中的区别的更多信息: