非常に大きな電力を計算するにはどうすればよいですか?たとえば、1000000000000000000
の数値大きな指数関数を計算するにはどうすればよいですか?
答えて
Int64
の範囲を超える大きな数値の場合、.NETはBigInteger
クラス(「任意に大きな符号付き整数を表す」)を持ちます。実際には、BigInteger
が表すことができる値は、使用可能なシステムメモリとそのメモリをすべて割り当てるCLRの能力によって制約されます。
理論的には、このようなことができますが、実際にはBigInteger.Pow(value, int.MaxValue)
になる前にメモリが足りなくなる可能性があります。
var value = new BigInteger(x);
var result = BigInteger.Pow(value, 1000000000);
result = BigInteger.Pow(result, 1000000000);
BigInteger.Pow
は、第二引数の正規int
がかかるため、あなたが2つ(またはそれ以上)が必要になりますことをご注意int
の範囲内に収めることができるよりも大きな電力を計算するために呼び出します。
つまり、BigInteger
での演算は、通常の数値型の数値演算よりもはるかに遅くなることを理解することも重要です。したがって、全体的な目標が何であるか、およびそれに頼らずに達成する方法があるかどうかを慎重に検討する必要があります。 BigInteger
を使用してください。
これは動作しません。結果は長すぎてメモリに格納できません。あなたは 'System.OutOfMemoryException'を取得します。 –
@IvanGritsenko入力に依存しませんか?入力が比較的小さい場合、出力は大きくなりますが、決して管理不能ではありません –
あなたは正しいですが、 'value = 1'のために*働くだけです。 –
pow(value、1000000000000000000)のような値を格納できるC#のデータ型はありません(値が1の場合を除く)。 BigIntegerでもこのような大きな数値を格納できません。
技術的に彼は自分のタイプを書くことができました。 –
@KevinWellsは技術的に正しいです。しかし、最終結果は一連の文字として保存する必要があります(文字列のようになる可能性があります) – DivideByzero
この方程式にはメソッドがない場合、電卓のウィンドウでどのようにプログラムされましたか? –
- 1. 指数表記で大きな数値を印刷するにはどうすればよいですか?
- 2. SwiftソフトウェアアプリケーションでPythonコードを関数計算に使用するにはどうすればよいですか?
- 3. 複数の整数リストの平均を計算するにはどうすればよいですか?
- 4. 大きな数字の間の桁の最初の小数点を計算するにはどうすればよいですか?
- 5. グループ合計を計算するにはどうすればよいですか?
- 6. 必要なメモリのページ数を計算するにはどうすればよいですか?
- 7. BigDecimalを指数関数形式に変換するにはどうすればよいですか?
- 8. 小数点のある数値の階乗を計算する関数を作成するにはどうすればよいですか?
- 9. ある関数から別の関数に引数を渡すにはどうすればよいですか?
- 10. List()から整数値の積算合計を取得するにはどうすればよいですか?
- 11. GridViewで列を計算するにはどうすればよいですか?
- 12. ラケットで非自然対数を計算するにはどうすればよいですか?
- 13. 英数字を変換して計算に使用するにはどうすればよいですか?
- 14. PHPで整数変数のサイズを大きくするにはどうすればよいですか?
- 15. 指定日からX日の曜日を計算するにはどうすればよいですか?
- 16. .NETで非常に大きな整数を表現するにはどうすればよいですか?
- 17. 大きな指数で動作するPythonのベッセル関数
- 18. グラフのエントロピーを計算するにはどうすればよいですか?
- 19. ページテーブルのサイズを計算するにはどうすればよいですか?
- 20. 数値のパーセンテージを計算するにはどうすればよいですか?
- 21. 2つの整数の類似度を計算するにはどうすればよいですか?
- 22. C++ doubleの有効桁数を計算するにはどうすればよいですか?
- 23. 最大ダウンロードサイズを指定するにはどうすればよいですか?
- 24. 変数/関数定義をParallel(ParallelMapなど)で設定するにはどうすればよいですか?
- 25. 任意に大きな数値を計算するクラス?
- 26. 非常に大きな整数を計算する
- 27. Pythonの対数正規累積分布関数の逆数を計算するにはどうすればよいですか?
- 28. PHP - 大きな整数のmod計算
- 29. Rで大きな素数を特定するにはどうすればよいですか?
- 30. ActionScript 2でどのような関数が別の関数と呼ばれるのかを調べるにはどうすればよいですか?
これは計算を行うことで計算されるため、実際に何か他のものを求めている必要があります。現時点であなたが計算している問題は何ですか?あなたはそのような大きな数を保存する方法を知らないという問題はありますか?あなたはそれをすばやく計算する方法を知らないのですか?それともあなたを止めている何か他のものですか? –
答えの最初の「n」桁と合計桁数が必要ですか?すべての桁で正確な出力が必要な場合は、桁数が多いため不可能です。 –
"不可能"はちょっとした誇張です。実際の唯一の限界は、答えを保持するためのメモリであり、計算上の複雑さではありません。十分な金額があれば、 '2 ^(10^18)'の結果を格納できるデータセンターを構築することは確かに可能です。 –