巨大(5kビット程度)の数字の上に丸められた立方根を見つける必要があります。 どうすればいいですか?大きな数字の立方根を見つける
答えて
ここにはstraightforward iterative algorithmがあります。
特殊なケースは、おなじみの 平方根アルゴリズムである:彼らはspecial case of square rootsを呼び出すのポイントを作ることに注意してください。設定することで、N = 2は、ステップ2 における反復ルールは、同じ技術が根をキューブに適用することができる平方根反復ルール
なる:N = 3に設定し、所望のprecisionを達成するまで反復。
コメントの仕様の場合、「最も近い整数と正確に切り上げる必要があります」という場合、整数または合理的な立方根を持つ数値に対してのみ可能です。つまり、引用されたアルゴリズムを使用して、この反復の結果と次の結果の差が0.5未満になるまで反復することによって、この精度のレベルへの答えを見つけることができます。これは、今後の反復がその近似から遠く離れていないことを保証するのに十分近いものです。
これは数値解析クラスの練習ですか?もしそうなら、私はこれがまさにこのような疑問を提起したのではないかと推測しています。講師は、あなたが一般的なルールを特定の問題に適用することを望みます。
GNU BCはあなたのための罰金である場合、これが行う可能性があります:
http://phodd.net/gnu-bc/bcfaq.html#bccbrt
EDIT:
それは本質的に沸く:
$ bc -l
define cbrt(x) { return e(l(x)/3) }
あなたは増やす必要があります必要な精度を得るためにスケール変数を使用します。
$ bc -l
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
define cbrt(x) { return e(l(x)/3) }
cbrt(10000000000000000000000000000000000000000000000000000000000000000000)^3
9999999999999999999845725361475980907263179272258247094885777761435.\
89049462743995306310
scale=1000
cbrt(10000000000000000000000000000000000000000000000000000000000000000000)^3
9999999999999999999999999999999999999999999999999999999999999999999.\
99999999999999999999999999999999999999999999999999999999999999999999\
99999999999999999999999999999999999999999999999999999999999999999999\
99999999999999999999999999999999999999999999999999999999999999999999\
99999999999999999999999999999999999999999999999999999999999999999999\
99999999999999999999999999999999999999999999999999999999999999999999\
99999999999999999999999999999999999999999999999999999999999999999999\
99999999999999999999999999999999999999999999999999999999999999999999\
99999999999999999999999999999999999999999999999999999999999999999999\
99999999999999999999999999999999999999999999999999999999999999999999\
99999999999999999999999999999999999999999999999999999999999999999999\
99999999999999999999999999999999999999999999999999999999999999999999\
99999999999999999999999999999999999999999999999999999999999999999999\
99999999999999999999999999999999999999999999999999999999999999999999\
99999999999999999999999999999999999999999999999978254573198390239858\
069738839057154871628814670160708326688382280410
スケール変数を増やすことなく(私のシステムではデフォルトで20に設定されています)、結果には必要な精度がありません。
これはgnuだけでなくbcでも有効です。 –
- 1. C - 数値の立方根を見つける
- 2. C - POW機能に負の数の立方根を見つける
- 3. 2つの数字の間の平方根の数を見つけよう
- 4. Python、数字のn番目の根を見つける
- 5. NaNを返さないような負の整数の立方根を見つけるには?
- 6. MATLABのより大きな立方体内の小さな立方体を見つけるには?
- 7. C++で数の平方根を見つける
- 8. 最大と2番目に大きな数字を見つける
- 9. 2つの入力から大きな数字を見つける
- 10. 数値のn番目の根を見つける関数
- 11. 最大の出現数を持つ文字を見つける
- 12. 最大9つの数字を見つける - 高速
- 13. ダーツ - 関数内のすべての根を見つける
- 14. 複数の根を見つける二等分アルゴリズム
- 15. C:正方形、立方体、および平方根を見つけるために数字の集合を含むファイルをループするFileI/O
- 16. 一般的な大きさの相似数を見つける
- 17. 数字の中で最大の正方形を見つける方法(Java)
- 18. 大きな行列の行列式を見つける方法
- 19. Excel - 大きなリストからワイルドカード文字列を見つける方法
- 20. 完璧な数字を見つける
- 21. math.sqrt()を使わずに平方根を見つける?
- 22. 数字の最大要素を見つける(それ以外)
- 23. 2の平方根を小数点以下100桁まで見つける
- 24. 最大の変数を見つける
- 25. 大きな数字で次の増分を見つける最も効率的な方法
- 26. 2つの大きなcsvファイル(Python)で文字列の部分文字列を見つける方法
- 27. 大きなデータで最大数の時間間隔を見つける
- 28. 大きな数字をつけているidl = 0.0
- 29. bigの平方根を見つけます.Int
- 30. 数字の基本的なルーツを見つける方法
http://www.gnu.org/software/bc/?または、特定の言語でこれを行う必要がある場合は、どの言語ですか?特定の時間/空間の制約はありますか? –
私はbcを試しましたが、それは非整数(1/3)の指数のようなものではありません – Dani