2

長い(非常に)整数で算術演算を行う方法はありますか? それらを追加して二乗する方法は?Windows CMD と Bash でこれを行うことはできますか? ありがとうございました!

4

4 に答える 4

1

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 乗を計算します

于 2013-01-22T19:40:49.380 に答える
1

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

ただし、上記のソースの回避策セクションを参照してください。

于 2013-01-22T21:28:19.953 に答える
0

CMDがコマンド ラインの包括的な用語であり、最近のバージョンの Windows (Win 7 以降、オプションで、XP にインストールされる場合があります)を使用するのpowershellが最も簡単であると仮定します。合計を二乗するには、次のようにします。
powershell [math]::sqrt(2+2)

Powershell はデータ型を自動的に調整します。非常に大きな数値の場合は、int64 または Decimal (int128) を自動的に使用します。これを別の値で試してみてください。 powershell (your_value_here).gettype().name

于 2013-01-23T00:05:36.650 に答える
0

私はいつも scala を使っていますが、やり過ぎかもしれません。また、式を 1 つだけ評価したい場合は、REPL モードにとどまる代わりに、少し遅くなります。

$ scala -e 'println (BigInt("12345056560232232323232323").pow(17))'
3592381313781713347169811993632501191758657981889928930682479036490714840370007545514882170730018303552133089619990376179050098738641961735841902033891344811425818404146852596771837724556848714975175935703785905563690781027522348495906322533140231903044769974928750539681481346060497468038154440312144677922886371790280816174167119667432789145549865983687361599563492624405727749237730761069822040101542802077317687934387891203

またはパリ:

$ echo "12345056560232232323232323^17" | gp -q
3592381313781713347169811993632501191758657981889928930682479036490714840370007545514882170730018303552133089619990376179050098738641961735841902033891344811425818404146852596771837724556848714975175935703785905563690781027522348495906322533140231903044769974928750539681481346060497468038154440312144677922886371790280816174167119667432789145549865983687361599563492624405727749237730761069822040101542802077317687934387891203
于 2013-01-23T01:09:45.160 に答える