我目前正在从事一个项目,我需要生成多个值(最好是浮点数或双精度值),这些值遵循具有给定指数的幂律分布!
有人建议我使用 MathNet.Iridium 库来帮助我。我遇到的问题是,如果有的话,文档并不像应有的那样明确!
我看到多个分布符合幂律分布的一般概念,但我无法确定一个好的分布以将某个指数用作参数。
有没有人在这方面有更多的经验,可以给我一些提示或建议?
我目前正在从事一个项目,我需要生成多个值(最好是浮点数或双精度值),这些值遵循具有给定指数的幂律分布!
有人建议我使用 MathNet.Iridium 库来帮助我。我遇到的问题是,如果有的话,文档并不像应有的那样明确!
我看到多个分布符合幂律分布的一般概念,但我无法确定一个好的分布以将某个指数用作参数。
有没有人在这方面有更多的经验,可以给我一些提示或建议?
要生成您选择的分布值,您可以使用逆累积分布函数,如wikipedia中所述。
一步一步,这看起来像:
Random
在这里会做得很好。结果是使用您选择的分布函数随机选择的值。
如果您在第 2 步遇到问题,也许https://mathoverflow.net/上的人可以帮助您。
编辑:如果您只需要任何具有指数伽玛的幂律分布,这将生成一个值:
double r = 1.0 / Math.Pow(1-new Random().NextDouble(), 1.0/(gamma+1));