【发布时间】:2010-09-06 17:23:40
【问题描述】:
.NET 是否带有能够表示极大整数的类,例如 100 阶乘?如果没有,有什么好的第三方库可以做到这一点?
【问题讨论】:
-
缺少 BigInt 类对您来说是一个专业吗?
-
如果您在 Project Euler #20 上工作,这将是一件大事 :-)
.NET 是否带有能够表示极大整数的类,例如 100 阶乘?如果没有,有什么好的第三方库可以做到这一点?
【问题讨论】:
.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
它可以表示任何整数。
【讨论】:
这是framework 4.0中大整数文档的链接
http://msdn.microsoft.com/en-us/library/system.numerics.biginteger(VS.100).aspx
【讨论】:
Mono 已经有一个公共的 BigInteger 实现:
http://www.go-mono.com/docs/index.aspx?link=T:Mono.Math.BigInteger
你可以抓住 Mono.Security 程序集来使用它;因为它是一个 Mono 类库,它也应该是 MIT 许可的。
【讨论】: