5

大きな数を扱うのに適した言語をお勧めできますか?

これまでのところ、Actionscript 2 と Objective-c を使用してきましたが、Objective-c を使用してもNSDecimalNumbers、計算で 32 桁に制限されていました... 50,000 桁の数字で計算できるようにするには、少なくとも必要です。

4

5 に答える 5

8

Pythonには任意の長さの整数があり、それらを透過的に使用するため、このための特別なコードやクラスは必要ありません。

>>> len(str(math.factorial(123456)))
574965
于 2013-02-06T07:27:05.010 に答える
3

おそらくすでにマシンにインストールされているbcも試してください。

于 2013-02-06T09:48:50.077 に答える
3

おそらくHaskellはあなたにアピールするでしょう。

于 2013-02-06T08:31:58.993 に答える
2

現在、ほとんどの言語は、ネイティブに、または何らかの外部ライブラリ (つまり gmp) を介して、任意の長さの数値を何らかの形でサポートしています。

唯一の重要な違い*は、言語内の統合レベルです。たとえば、C++、Python、Perl、SWI-Prolog、Haskell、C# などでは、標準の数学演算子を使用して、big-int を他の組み込みの数値型として操作できます。一方、C、Objective-C、Java などの演算子のオーバーロードをサポートしていない言語では、ライブラリ関数を明示的に使用する必要があります。

アプリケーションでの big-int 操作の普及度に応じて、より big-int に適した言語に切り替えるかどうかにかかわらず、成果が得られる場合があります。

アップデート

[*] もちろん、正確さと速度も重要です。しかし、ほとんどの言語は内部で GMP を使用しているため、その点で大きな違いはありません。独自の big-int 実装を提供する Mathematica や Maple などの数学指向の (そして高価な!) 言語/アプリケーションは、ここで何らかの利点を持つ可能性があります。

于 2013-02-06T10:19:11.717 に答える
1

そのクラスで Java を試すBigIntegerか、C で小さなライブラリを作成することを検討できます。数学がかなり単純な場合は、いつでも配列を使用できます。

おそらくMatlabを試してください(わからない)

于 2013-02-06T07:24:04.940 に答える