Python 生成一个1到100000之间的x个随机整数的列表,每个整数最多只有10个副本
我正在尝试生成一个10万个唯一ID的数据集,即20年(即2001-2020年)中的1-10万个ID,其中每个ID每年列出0-10次,根据指数为0.5的幂律分布随机确定,因此在任何给定年份,所有ID中的一半没有条目,四分之一的ID有一次访问,等等 到目前为止,我有:Python 生成一个1到100000之间的x个随机整数的列表,每个整数最多只有10个副本,python,for-loop,Python,For Loop,我正在尝试生成一个10万个唯一ID的数据集,即20年(即2001-2020年)中的1-10万个ID,其中每个ID每年列出0-10次,根据指数为0.5的幂律分布随机确定,因此在任何给定年份,所有ID中的一半没有条目,四分之一的ID有一次访问,等等 到目前为止,我有: randomlist = [] for i in range(0,100000): n = random.randint(1,100000) randomlist.append(n) print(randomlist)
randomlist = []
for i in range(0,100000):
n = random.randint(1,100000)
randomlist.append(n)
print(randomlist)
但是,这只创建一个整数列表,不考虑幂律分布的条件,也不考虑任何时间元素
非常感谢您的帮助 您可以反复循环,直到生成列表
randomlist = []
x = 100000
counter = 0
while(counter<x):
n = random.randint(1,100000)
if(randomlist.count(n)>=10):
continue
else:
randomlist.append(n)
counter += 1
看看class collections.Counter。告诉我如何解决这个编码问题。我们希望您先做一个测试,然后问一个关于实现的具体问题。一个包含100000个数字的列表,每个数字的范围在1到100之间,绝对可以保证某些整数的重复数超过10个-事实上,每个整数平均会有一千个副本。我投票结束这个问题,因为它提出了相互矛盾的要求,并且没有试图解决它们。你是说RandInt1100000吗?
lst = list(range(1,100001)) * 10
randomlist = random.sample(lst,100000)