Quais são os melhores métodos para gerar com precisão números inteiros aleatórios distribuídos de acordo com uma lei de energia? A probabilidade de obter ( k = 1 , 2 , … ) deve ser igual a p k = k - γ / ζ ( γ ) e o método deve funcionar bem para qualquer γ > 1 .
Eu posso ver duas abordagens ingênuas:
Calcular até alguns grande k max para que Σ k max K = 1 é "suficientemente perto" para 1, em seguida, gerar números inteiros de acordo com estas probabilidades. Isso simplesmente não funcionará se γ for próximo de 1, pois k max precisaria ser enorme.
Desenhe números reais de uma distribuição contínua da lei de energia (um problema mais fácil que eu sei resolver) e arredonde-os para números inteiros de alguma maneira. É possível calcular analiticamente a probabilidade precisa de obter cada número inteiro com o método acima. I podem utilizar rejeição para corrigir estes para (que também pode ser calculado sempre que possa avaliar o ζ função). (Isso seria um pouco complicado, pois eu teria que arredondar de forma a obter números inteiros com maior probabilidade que p k para k maior que algum valor pequeno e manipular k menos que isso separadamente.)
Existe um método melhor que também seja preciso (não aproximado)?