在 Y 和 Z 之间生成 X 个随机整数? [复制]

Posted

技术标签:

【中文标题】在 Y 和 Z 之间生成 X 个随机整数? [复制]【英文标题】:Generate X random integers between Y and Z? [duplicate] 【发布时间】:2017-02-22 23:45:06 【问题描述】:

Python 中是否有一个函数(我正在使用 SageMath)来获取 0 到 30 之间的 10 个随机整数,例如,不重复它们?

【问题讨论】:

在这里查找:***.com/questions/3996904/… @dima:郑重声明,这不是Generate random integers between 0 and 9 的重复,因为生成多个唯一值是一个有意义的不同问题。也就是说,Generate a set of sorted random numbers from a specific range 是相同的,除了它还希望对值进行排序(并且可以轻松省略该步骤)。 【参考方案1】:
import random
random.sample(range(31), 10) 

【讨论】:

def gen_between(start, end, count): return random.sample(range(start, end+1), count) 将有助于更自定义地调用它。 random.sample(range(30+1), 10),实际上。 @AdamSmith 似乎不值得。一方面,它迫使我们关心startcount,我们可能很多时候都不会关心 @zvone 仅在您使用 python 2 时,在这种情况下您应该使用 xrange 作为 ShadowRanger 并且文档说 @zvone:很多人认为xrange 返回一个生成器对象,而实际上它返回一个主要实现序列协议的对象(因此是可迭代的),对于random.sample,重要的是您可以在其上调用len 并按整数索引对其进行索引。 Py3 的 range 只是 Py2 的 xrange 的改进版本,支持完整的序列协议(允许切片、O(1) 成员资格测试等)。【参考方案2】:
>>> n=[]
>>> while len(n)<=10:
    x=randint(0,30)
    if x not in n:
        n.append(x)

每次运行此代码时不要忘记清除列表

【讨论】:

这可能会生成一个只有一个数字的列表。 嗯我忘了 或者您可以将其设为返回列表的函数,因此无需清理列表... 是的,你是对的 ?

以上是关于在 Y 和 Z 之间生成 X 个随机整数? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何用matlab生成一个随机的三维坐标

Python:在x和y之间生成随机数,它是5的倍数[重复]

在 0 和 'x' 之间生成唯一的随机数(整数)

java测试题

生成每个之间距离最小的3-d随机点?

蓝桥杯直线(省赛C/C++填空)