非常に大きな電力を計算するにはどうすればよいですか?たとえば、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. pythonで(統計的な)パワー関数とサンプルサイズを計算するにはどうすればいいですか?
- 3. python3.6でforループの指数を計算するにはどうすればよいですか?
- 4. charが大文字であるかどうかをチェックし、指定された文字列の大文字を計算しないようにする関数
- 5. SwiftソフトウェアアプリケーションでPythonコードを関数計算に使用するにはどうすればよいですか?
- 6. Pythonで外部関数を計算するにはどうすればよいですか?
- 7. 以下の関数の時間複雑度を計算するにはどうすればよいですか?
- 8. 引数を持たない計算にgtestを使用するにはどうすればよいですか?
- 9. 一度に複数のR係数を計算するにはどうすればよいですか?
- 10. メイン関数でサブ関数の引数を指定しないようにするにはどうすればよいですか?
- 11. グループ合計を計算するにはどうすればよいですか?
- 12. 複数の整数リストの平均を計算するにはどうすればよいですか?
- 13. forループなしでCaltalan数値を計算するにはどうすればよいですか?
- 14. 大きな数字の間の桁の最初の小数点を計算するにはどうすればよいですか?
- 15. オプションでPythonで関数の引数を指定するにはどうすればよいですか?
- 16. Clojureで負の指数でパワー関数を作成するにはどうすればよいですか?
- 17. Clojureで高次関数の引数を指定するにはどうすればよいですか?
- 18. BigDecimalを指数関数形式に変換するにはどうすればよいですか?
- 19. Rの大きな整数の素数性をテストするにはどうすればよいですか?
- 20. 必要なメモリのページ数を計算するにはどうすればよいですか?
- 21. 巨大なラスタスタックを使用して計算をスピードアップするにはどうすればよいですか?
- 22. テキストファイルの数値を大きい数値に置き換えるにはどうすればよいですか?
- 23. Pythonの大きな複合配列の指数関数[exp()]を計算する最も速い方法
- 24. 関数引数のオブジェクト位置を指定するにはどうすればよいですか?
- 25. コマンドライン引数を指定するにはどうすればよいですか?
- 26. 適合した指数関数のxを見つけるにはどうすればよいですか?
- 27. GridViewで列を計算するにはどうすればよいですか?
- 28. エリクサーでファイルチェックサムを計算するにはどうすればよいですか?
- 29. ある関数から別の関数に引数を渡すにはどうすればよいですか?
- 30. 小数点のある数値の階乗を計算する関数を作成するにはどうすればよいですか?
これは計算を行うことで計算されるため、実際に何か他のものを求めている必要があります。現時点であなたが計算している問題は何ですか?あなたはそのような大きな数を保存する方法を知らないという問題はありますか?あなたはそれをすばやく計算する方法を知らないのですか?それともあなたを止めている何か他のものですか? –
答えの最初の「n」桁と合計桁数が必要ですか?すべての桁で正確な出力が必要な場合は、桁数が多いため不可能です。 –
"不可能"はちょっとした誇張です。実際の唯一の限界は、答えを保持するためのメモリであり、計算上の複雑さではありません。十分な金額があれば、 '2 ^(10^18)'の結果を格納できるデータセンターを構築することは確かに可能です。 –