C#中的大量操作

时间:2016-01-31 21:36:21

标签: c# distribution biginteger gaussian

我需要使用Erlang distribution创建100,000到100,000,000之间的随机数。正如它在链接页面上提到的,参数 x 可以是任何数字[0,+ infinity );因此,我的价值范围在理论上是可以接受的。

但是,在计算概率密度函数时,返回的值总是 0 ,这是因为将 e 提升到 - \ lambda * x的幂具有如此大的x值的总是为零。

我需要能够将 e 提升到如此大的权力(实际上是非常小的权力(例如,-40,000))。我的应用程序在.NET4.5中,我检查了system.numerics命名空间。但是,到目前为止,我无法弄清楚如何执行此计算。

2 个答案:

答案 0 :(得分:2)

对于大浮点数,您可以使用BigRationalThis回答有一个很好的解释。

答案 1 :(得分:0)

.NET中的默认浮点数不具备您要查找的精度,因为正如您所指出的,此类指数的值小于数字的精度(因此为0值)

如果你想坚持使用C#,为什么不为任意精度库使用包装器。

http://gnumpnet.codeplex.com/