样本大于人口Python

时间:2014-04-04 08:36:57

标签: python random

我需要一个包含基数为nlittle的整数的列表,这些整数必须是随机的(valuemin,value)但我得到的错误样本大于运行下面代码的人口

    nlittle=random.randrange(5,15)
    value=random.randint(1,100)
    valuemin=int(valore*0.8)
    minmoduniform=5*valoremin
    maxmoduniform=20*valore
    puniform=random.sample(xrange(valuemin,value), nlittle)
    rouniform=random.sample(xrange(valuemin,value), nlittle)

如果nlittle(在我的代码中)大于xrange的差异,我该如何解决这个问题并打印一个列表? TY

2 个答案:

答案 0 :(得分:1)

rands = [random.randint(valuemin, value) for x in xrange(nlittle)]

这会在nlittlevaluemin之间选择value个整数。

答案 1 :(得分:0)

//获取基数

我同意@Jasper。改写你的问题。

可能的解决方案可能是使用,

n= xrange(valuemin,value)
m= xrange(valuemin,value)
puniform=random.sample(n, min(len (n) ,nlittle))
rouniform=random.sample(m, min(len(m) ,nlittle))

//查看您的代码可能出错的原因。

您的代码片段在多个实例中可能会遇到麻烦。

让我们来看一个案例。

nlittle是5到15之间的随机整数。说它是15 值介于0到100之间。表示已分配3。 希望,valuemin不到三个说1.(我无法确定,因为我不知道valoremin)

你试图从2个对象的列表中获取15个对象的样本,这些对象会给你错误。

在此处查看随机库的documentatoin。它会更有帮助 https://docs.python.org/2/library/random.html

我在网站上为random.sample(pop,k)添加了一个摘录。

  

random.sample(population,k)

     

返回k长度的唯一元素列表   从人口序列中选择。用于随机抽样而不用   更换。

     

2.3版中的新功能。

     

返回包含来自总体的元素的新列表   让原始人口保持不变。结果列表在   选择顺序,以便所有子切片也将是有效的随机   样本。这允许抽奖获奖者(样本)被分割   成为大奖和第二名的获奖者(下属)。

     

人口中的成员不需要是可以清洗或独特的。如果   人口包含重复,然后每次出现都是可能的   选择样本。

     

要从一系列整数中选择样本,请使用xrange()对象作为   一个论点。这对于采样来说尤其快速且节省空间   来自大量人口:样本(xrange(10000000),60)。