Pergunta

O .NET vem com uma classe capaz de representar números inteiros extremamente grandes, como 100 fatorial?Caso contrário, quais são algumas boas bibliotecas de terceiros para fazer isso?

Foi útil?

Solução

.NET 4 tem um BigInteger aula

Representa um inteiro assinado arbitrariamente grande.

O tipo BigInteger é um tipo imutável que representa um número inteiro arbitrariamente grande cujo valor, em teoria, não possui limites superiores ou inferiores.Esse tipo difere dos outros tipos integrais no .NET Framework, que possuem um intervalo indicado por suas propriedades MinValue e MaxValue.

Outras dicas

O .NET possui uma classe BigInteger, mas infelizmente é interna.No entanto, vários lugares têm os seus próprios.Você pode obter uma implementação do IronPython, do CodeProject ou do Visual J#.Devo dizer que ainda não experimentei, então não sei qual é o melhor.

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

Pode representar qualquer número inteiro.

Aqui está um link para a documentação do big inteiro no framework 4.0

http://msdn.microsoft.com/en-us/library/system.numerics.biginteger(VS.100).aspx

Mono já possui uma implementação pública do BigInteger:

http://www.go-mono.com/docs/index.aspx?link=T:Mono.Math.BigInteger

Você pode simplesmente pegar o assembly Mono.Security para usá-lo;como é uma biblioteca de classes Mono, ela também deve ser licenciada pelo MIT.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top