Recherche…


Remarques

Quand utiliser

BigInteger objets BigInteger sont par nature très lourds en RAM. Par conséquent, ils ne devraient être utilisés qu'en cas d'absolue nécessité, c'est-à-dire pour des nombres à une échelle vraiment astronomique.

De plus, toutes les opérations arithmétiques sur ces objets ont un ordre de grandeur plus lent que leurs homologues primitifs. Il est donc possible pour un BigInteger de provoquer un crash en consommant toute la RAM disponible.

Des alternatives

Si la vitesse est impérative pour votre solution, il peut être plus efficace d'implémenter cette fonctionnalité vous-même en utilisant une classe enveloppant un Byte[] et en surchargeant vous-même les opérateurs nécessaires. Cependant, cela nécessite un effort supplémentaire considérable.

Calculez le premier nombre de Fibonacci à 1 000 chiffres

Incluez à l' using System.Numerics et ajoutez une référence à System.Numerics au projet.

using System;
using System.Numerics;

namespace Euler_25
{
    class Program
    {
        static void Main(string[] args)
        {
            BigInteger l1 = 1;
            BigInteger l2 = 1;
            BigInteger current = l1 + l2;
            while (current.ToString().Length < 1000)
            {
                l2 = l1;
                l1 = current;
                current = l1 + l2;
            }
            Console.WriteLine(current);
        }
    }
}

Cet algorithme simple parcourt les nombres de Fibonacci jusqu'à ce qu'il atteigne une longueur d'au moins 1000 chiffres décimaux, puis l'imprime. Cette valeur est nettement supérieure à ce que pourrait contenir un ulong .

Théoriquement, la seule limite à la classe BigInteger est la quantité de RAM que votre application peut consommer.

Remarque: BigInteger est uniquement disponible dans .NET 4.0 et versions ultérieures.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow