gpt4 book ai didi

大于人口的样本的python随机样本

转载 作者:太空宇宙 更新时间:2023-11-03 13:58:26 24 4
gpt4 key购买 nike

我有一个整数列表,代表 60 天内每天提交的申请数量。我需要随机生成一个包含 288 个整数的列表,这些整数总和为每天的申请数量。我有以下代码:

import random as r

issued = [1000,200,344...]
def random_sum_to(n, num_terms = None):
num_terms = (num_terms or r.randint(2, n)) - 1
a = r.sample(range(1, n), num_terms) + [0, n]
list.sort(a)
return [a[i+1] - a[i] for i in range(len(a) - 1)]

for i in issued:
print(random_sum_to(i,288))

发布的是整数列表,是每天提交的应用程序的总和。此代码适用于大于 288 的数字,但适用于小于 288 的数字。阅读此处我看到应该使用 random.choice,但我无法弄清楚如何正确实现它。查看结果,似乎从未打印过 0,因此这显然是问题的潜在来源。有什么建议吗?

最佳答案

坦率地说,所有这些 zip 内容、列表理解等可能看起来很聪明,但你为什么不使用 Multinomial sampling

实际上,根据定义,总和自动等于 N

import numpy as np

t = np.random.multinomial(200, [1/288.]*288, size=1) # sample 288 numbers summed to 200
print(t)
print(sum(t[0]))

t = np.random.multinomial(1000, [1/288.]*288, size=1) # sample 288 numbers summed to 1000
print(t)
print(sum(t[0]))

关于大于人口的样本的python随机样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52426195/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com