.NET est-il fourni avec une classe capable de représenter des entiers extrêmement grands, tels que 100 factoriels? Si non, quelles sont les bonnes bibliothèques tierces pour y parvenir?Comment puis-je représenter un entier très grand dans .NET?
Répondre
Framework 4 a une classe BigInteger
représente un nombre entier signé arbitrairement grand. Le type BigInteger est un type immuable qui représente un entier arbitrairement grand dont la valeur en théorie n'a pas de limite supérieure ou inférieure. Ce type diffère des autres types intégraux du .NET Framework, dont la plage est indiquée par leurs propriétés MinValue et MaxValue.
.NET a une classe BigInteger, mais elle est interne, malheureusement. Cependant, plusieurs endroits ont le leur. Vous pouvez récupérer une implémentation à partir de IronPython, ou de celle de CodeProject, ou de Visual J #. Je dois dire, je n'ai pas essayé moi-même, donc je ne sais pas lequel est le meilleur.
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
il peut représenter un nombre entier quelconque.
Mono a une mise en œuvre BigInteger publique déjà:
http://www.go-mono.com/docs/index.aspx?link=T:Mono.Math.BigInteger
Vous pouvez simplement saisir l'ensemble Mono.Security à l'utiliser; puisque c'est une bibliothèque de classe Mono, il devrait être sous licence MIT aussi.
Voici un lien de la documentation grand entier dans le cadre 4,0
http://msdn.microsoft.com/en-us/library/system.numerics.biginteger(VS.100).aspx
Le manque d'une classe BigInt est un important pour vous? – Fowl
C'est un gros problème si vous travaillez sur Project Euler # 20 :-) – CMPalmer