長い(非常に)整数で算術演算を行う方法はありますか? それらを追加して二乗する方法は?Windows CMD と Bash でこれを行うことはできますか? ありがとうございました!
4 に答える
bash ではbcを使用できます。ここにリンクhttp://www.gnu.org/software/bc/manual/html_mono/bc.html
私のバージョン( bc 1.06.95 )の場合:
1) 文字列 (式中) の文字数の制限: 2147483647
2) 指数の値の制限: 2147483647
例えば:
echo "2^2" | bc
- 2 の 2 乗を計算します
Windows CMD には次の制限があります。
バッチ演算には重大な制限があります: 32 ビット整数しか処理できません。(-2,147,483,648 ~ +2,147,483,647)
Windows NT 4 およびおそらく 2000 では、この制限はさらに深刻で、符号なし 32 ビット整数しか処理できません。(0~4,294,967,295)
ソース: http://www.robvanderwoude.com/battech_math.php
ただし、上記のソースの回避策セクションを参照してください。
CMDがコマンド ラインの包括的な用語であり、最近のバージョンの Windows (Win 7 以降、オプションで、XP にインストールされる場合があります)を使用するのpowershell
が最も簡単であると仮定します。合計を二乗するには、次のようにします。
powershell [math]::sqrt(2+2)
Powershell はデータ型を自動的に調整します。非常に大きな数値の場合は、int64 または Decimal (int128) を自動的に使用します。これを別の値で試してみてください。
powershell (your_value_here).gettype().name
私はいつも scala を使っていますが、やり過ぎかもしれません。また、式を 1 つだけ評価したい場合は、REPL モードにとどまる代わりに、少し遅くなります。
$ scala -e 'println (BigInt("12345056560232232323232323").pow(17))'
3592381313781713347169811993632501191758657981889928930682479036490714840370007545514882170730018303552133089619990376179050098738641961735841902033891344811425818404146852596771837724556848714975175935703785905563690781027522348495906322533140231903044769974928750539681481346060497468038154440312144677922886371790280816174167119667432789145549865983687361599563492624405727749237730761069822040101542802077317687934387891203
またはパリ:
$ echo "12345056560232232323232323^17" | gp -q
3592381313781713347169811993632501191758657981889928930682479036490714840370007545514882170730018303552133089619990376179050098738641961735841902033891344811425818404146852596771837724556848714975175935703785905563690781027522348495906322533140231903044769974928750539681481346060497468038154440312144677922886371790280816174167119667432789145549865983687361599563492624405727749237730761069822040101542802077317687934387891203