2011-11-01 13 views
5

Potrzebuję zrobić ogromne obliczenia mocy (pomyśl 2^1 000 000) w C#, a ulong jest nigdzie niewystarczający. Prawdopodobnie nie ma nic większego zaimplementowanego w .NET, ale czy istnieje coś innego, czy nawet coś, co mogę zrobić, że zadziała?C# typ pamięci większy niż ulong

Odpowiedz

20

Jeśli korzystasz z .NET Framework 4.0, możesz użyć BigInteger. Wystarczy dodać odniesienie do zespołu System.Numerics.

Istnieje również wiele innych implementacji, jeśli system .NET Framework 4.0 jest niedostępny dla użytkownika, na przykład this one w CodeProject.

+0

Wow, nigdy o tym nie wiedziałem. Dzięki! Działa jak marzenie! – Entity

4

Możesz użyć System.Numerics.BigInteger z .Net 4.0.

1

Określenie tego, czego szukasz, to "arbitralna arytmetyczna precyzja", a w przypadku 2^1 000 000 dowolna dokładna liczba całkowita.

System.Numeric.BigIntegers w .NET 4 prawdopodobnie będzie dobrze działać.

Jeśli potrzebujesz użyć starszej wersji .NET lub jakiegokolwiek innego języka lub potrzebujesz więcej funkcji lub wydajności, GMP library jest zwykle przystankiem dla nieprzeciętnej matematyki. GMP jest napisany w języku C i jest dostępny przez opakowania dla prawie każdego innego języka.

Powiązane problemy