【发布时间】:2012-11-19 17:08:22
【问题描述】:
这与随机抽样有关。我正在使用 random.sample(number,5) 从数字中包含的数字范围内返回随机数列表。我使用 while i
if len(numbers) != len(set(numbers)):
识别具有重复项的集合,然后使用 random.sample(number,5) 尝试进行另一次随机化以将集合替换为重复项。我似乎得到了大约 8% 的重新随机化(使用打印语句来说明重复的数字),但似乎遗漏了大约 5%。我做错了什么?实际代码如下:
while i < 100:
set1 = random.sample(numbers1,5)
if len(set1) != len(set(set1))
print('duplicate(s) found, random selection repeated')
set1 = random.sample(numbers1,5)
在另一个例程中,我尝试执行与上述相同的操作,但通过添加相同的集合来搜索两组中的重复项,用 set2 替换 set1。这给出了相同类型的故障。 set2 例程缩进并放置在上述例程的正下方。而 i
【问题讨论】:
-
5% 似乎被遗漏了是什么意思?
-
在 100 个返回的“集合”中,5 个包含重复项,而大约 8 个已重新随机化,并且与其他集合一样没有重复项
-
这是部分返回的示例 [3, 10, 10, 21, 26, 41] [8, 11, 15, 22, 23, 33] [7, 20, 30, 34, 36, 40] [14, 28, 30, 33, 35, 46] [7, 22, 35, 37, 45, 48] [11, 21, 28, 40, 41, 45] 发现重复,随机选择重复 [7, 11, 16, 18, 25, 25]
-
是不是因为
if len(set1) != len(set(set1))没有缩进?