2011-08-10 9 views
1

私はPythonインタープリタに大きなa(20個の数字)b(4個の数字)c(20個の数字)を入れたb%cを入れました。 (a、b、c)とほぼ同じように速い。私は、Pythonが最初に** bを計算し、結果のモジュロ(%)を得る別の動作を期待しています。そのようなcalcは、より多くの時間を要します。シーンの背後にある魔法はどこにありますか?大きな数字を使ったPython **と%演算子の動作

+1

効率的に '(x ** y)%z'を計算するのに' pow'を使うことができます。 http://stackoverflow.com/questions/101268/hidden-features-of-python/3371415#3371415 –

+0

ありがとうございました。 – Bole

答えて

2

舞台裏では魔法はありませんが、Pythonは任意精度の整数をサポートしていますが、よく実装されています。それは本当に** b、そして%cを計算しました。

0

今日のコンピュータは驚くほど速いです、非常に複雑な計算がまったくの時間のように思えるものの中に発生する可能性があります。遅れを見るには、このような計算を何度も繰り返す必要があります。私は100万から始めるだろう。

6

あなたのようなPythonインタプリタの何かに入力している場合:次に、秒のカップルを見て

20937505974095709374 ** 3438 

待ちます。次にしよう:差がある理由

20937505974095709374 ** 3438 % 6 

をそして待機を見ていない、と思って、その後、あなたが最初のインスタンスで見遅延は実際にあなたの端末がバッファリングと巨大なを印刷するのに要する時間でありますあなたが画面に作成した番号。

+1

これはまさに問題です。各計算をむしろ変数に割り当てることでわかりますそれを印刷するよりも。 – kindall

関連する問題