我需要使用Erlang distribution创建100,000到100,000,000之间的随机数。正如它在链接页面上提到的,参数 x 可以是任何数字[0,+ infinity );因此,我的价值范围在理论上是可以接受的。
但是,在计算概率密度函数时,返回的值总是 0 ,这是因为将 e 提升到 - \ lambda * x的幂具有如此大的x值的总是为零。
我需要能够将 e 提升到如此大的权力(实际上是非常小的权力(例如,-40,000))。我的应用程序在.NET4.5中,我检查了system.numerics命名空间。但是,到目前为止,我无法弄清楚如何执行此计算。
答案 0 :(得分:2)
对于大浮点数,您可以使用BigRational。 This回答有一个很好的解释。
答案 1 :(得分:0)
.NET中的默认浮点数不具备您要查找的精度,因为正如您所指出的,此类指数的值小于数字的精度(因此为0值)
如果你想坚持使用C#,为什么不为任意精度库使用包装器。