3

アルゴリズムを検証するために Javascript で Modular Exponentiation を実行しようとしましたが、Javascript が Python と比較して正確な結果を出していないことにショックを受けました。Javascriptがデータ型を(テキストとして)処理する方法と関係があると思いますが、それについてもっと知りたいと思い、両方の言語が設計された目的を知っています.

.js と .py でのべき乗剰余の結果の比較

4

2 に答える 2

10
于 2013-11-02T14:15:24.247 に答える
7

Pythonpow()関数は、整数入力に対して整数の結果を返します。

>>> pow(17, 22)
1174562876521148458974062689L

これは、浮動小数点の結果を使用するものと同じ関数ではありません。Math.pow()

> Math.pow(17, 22)
  1.1745628765211486e+27

Python での同等の関数は次のmath.pow()とおりです。

>>> import math
>>> math.pow(17, 22)
1.1745628765211484e+27

実際の結果は微妙に異なりますが、同じ制限があります。

>>> math.pow(17, 22) % 21
3.0

JavaScript には Number 型しかありません。これは JS 算術演算を常にfloat 精度に制限しますが、Python ではメモリ バウンドの整数型がサポートされているため、精度の範囲が広がります。

于 2013-11-02T14:15:52.547 に答える