.NET 是否带有能够表示极大整数(例如 100 阶乘)的类?如果没有,有什么好的第三方库可以做到这一点?
5 回答
.NET 4 有一个BigInteger类
表示任意大的有符号整数。
BigInteger 类型是一种不可变类型,它表示一个任意大的整数,其值在理论上没有上限或下限。此类型与 .NET Framework 中的其他整数类型不同,后者具有由其 MinValue 和 MaxValue 属性指示的范围。
.NET 有一个 BigInteger 类,但不幸的是它是内部的。但是,有几个地方有自己的。您可以从 IronPython、CodeProject 或 Visual J# 中获取一个实现。不得不说,这些我自己都没试过,所以不知道哪个最好。
http://www.codeplex.com/IronPython http://www.codeproject.com/KB/cs/biginteger.aspx http://msdn.microsoft.com/en-us/magazine/cc163696.aspx
Microsoft.FSharp.Math.Types.BigInt
它可以表示任何整数。
Mono 已经有一个公共的 BigInteger 实现:
http://www.go-mono.com/docs/index.aspx?link=T:Mono.Math.BigInteger
你可以抓住 Mono.Security 程序集来使用它;因为它是一个 Mono 类库,它也应该是 MIT 许可的。