たとえば100の乗算など、32文字を超える2つの非常に大きな数を乗算する方法!122で!または分割統治の助けを借りて11^200で22^122、JavaコードまたはC#コードを持っているボディはありますか?
5869 次
4 に答える
3
おそらくjava.math.BigIntegerを使用する必要があります。これにより、2^32 または 2^64 をはるかに超える整数値の表現が可能になります。BigInteger の値は基本的に、プログラムで使用できるメモリの量によってのみ制限されます。つまり、32 ビット システムでは最大 4 GB、64 ビット システムではほぼ使用可能な物理メモリと仮想メモリです。
import java.math.BigInteger;
class Foo
{
public static void main(String args[])
{
BigInteger bigInteger100Fact = bigFactorial(BigInteger("100")); //where bigFactorial is a user-defined function to calculate a factorial
BigInteger bigIntegerBar = new BigInteger("12390347425734985347537986930458903458");
BigInteger product = bigIntegerFact.multiply(bigIntegerBar);
}
}
編集:必要な場合は、 BigInteger階乗関数を次に示します
于 2010-01-03T23:05:32.150 に答える
2
KaratsubaとToom-Cookを使用するjava.lang.BigIntegerのパッチバージョンは次のとおりです。
そして、 Schönhage-Strassenを使用してBigIntegerを乗算できるJavaクラスは次のとおりです。
于 2011-11-06T00:48:33.587 に答える
1
これには、大きな整数を乗算するためのKaratsubaおよびSchonhage-Strassenアルゴリズムが含まれています。
于 2010-01-03T22:53:57.617 に答える
0
楽しみのために、配列を使用してそれを実現するものを自分で作成しました。ただし、JavaのBigIntegerクラスも同じことを行うと思います。
于 2010-01-03T22:53:47.883 に答える