"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como gerar números aleatórios com somas fixas para garantir a distribuição uniforme?

Como gerar números aleatórios com somas fixas para garantir a distribuição uniforme?

Postado em 2025-04-19
Navegar:792

How to Generate Random Numbers with a Fixed Sum, Guaranteed Uniform Distribution?

gerando números aleatórios com uma soma fixa

o desafio postado é gerar uma série de números pseudo-random cuja soma é igual a um valor predefinido. Especificamente, como gerar quatro números que, quando adicionados, iguais 40.

em vez de depender de um método que poderia influenciar a distribuição do primeiro número, uma abordagem mais uniforme é empregada. A solução utiliza uma estratégia de dividir o valor predefinido em segmentos menores, usando divisores selecionados aleatoriamente. f

d = 40 - g

Esta técnica garante uma probabilidade igual para cada conjunto de números, garantindo uma distribuição uniforme. Os números aleatórios resultantes atendem ao requisito de somando o valor predefinido. def Constenhe_sum_sample_pos (n, total): "" "" Retorne uma lista escolhida aleatoriamente de n números inteiros positivos, resumindo para o total. Cada lista é igualmente provável que ocorra. "" " divisores = classificados (random.sample (intervalo (1, total), n - 1)) Return [a - b para a, b em zip (divisores [total], [0] divisores)]


para gerar números inteiros não negativos, uma transformação adicional é empregada:

def restritora_sum_sample_nonneg (n, total): "" "" Retorne uma lista escolhida aleatoriamente de n números inteiros não negativos, resumindo para o total. Cada lista é igualmente provável que ocorra. "" " Retornar [x - 1 para x em restrição_sum_sample_pos (n, total n)]

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3