繁体   English   中英

使用MathNet在C#中给定指数的幂律分布

[英]Power Law distribution for a given exponent in C# using MathNet

我目前正在一个项目中,我需要生成多个值(最好是浮点数或双精度数),这些值遵循具有给定指数的幂定律分布!

建议我使用MathNet.Iridium库来帮助我。 我的问题是该文档不够明确,如果有的话!

我看到了多个符合幂定律分布一般思想的分布,但是我无法确定要以某个指数作为参数的良好分布。

是否有人在这方面有更多的经验,可以给我一些提示或建议吗?

要生成您选择的分布的值,可以使用Wikipedia中提到的逆累积分布函数。

逐步,这看起来像:

  1. 选择您喜欢的分布函数。
  2. 用纸和笔计算逆累积分布函数。
  3. 根据单位间隔的均匀分布生成一个值。 Random在这里会很好。
  4. 将值输入您的ICDF。

结果是使用您选择的分布函数随机选择的值。

如果您在第2步中遇到问题,也许https://mathoverflow.net/上的人员可以为您提供帮助。

编辑:如果您只需要指数gamma的任何幂律分布,则将生成一个值:

double r = 1.0 / Math.Pow(1-new Random().NextDouble(), 1.0/(gamma+1));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM