Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで大きな数値を掛け算する方法:bignum型の仕組みと使い方

Pythonでは、処理速度を気にすることなく、非常に大きな数値同士を直接掛け算できます。その秘密は、Pythonが「bignum(多倍長整数)」と呼ばれる整数型を標準でサポートしているためです。この型を使えば、桁数に事実上の上限がない任意の大きさの整数を扱うことができます。

int型とlong型の自動的な切り替え

Python 2.5以降では、この多倍長整数型は long という名前で、通常の int 型とは別の型として用意されています。ただし、どちらの型を使うべきかを開発者が意識する必要はありません。インタープリターが数値の大きさに応じて、自動的に適切な型を選択してくれます。

つまり、バージョン2.5以降のPythonを使っていれば、普段どおりに数式を書くだけでOKです。32ビット演算の範囲を超える数値は、自動的かつ透過的にbignumへと変換されるため、特別なライブラリのインポートや変換処理は一切不要です。

実際のコード例

たとえば、次のような大きな数値同士の掛け算も、そのまま計算できます。

a = 15421681351
b = 6184685413848
print(a * b)

このコードを実行すると、以下の出力が得られます。

95378247708541418748648

Python 3での扱いについて

なお、現在主流のPython 3では、int 型自体が最初から多倍長整数に対応しており、long 型という区別は廃止されました。そのため、Python 3環境では桁数をまったく気にせず、すべての整数演算を int 型で行えます。巨大な階乗や暗号処理などで大きな数を扱う場合でも、追加の設定なしに正確な計算結果が得られるのがPythonの強みです。

  1. Pythonで変数を宣言する方法とは?型指定不要の仕組みを徹底解説

    Pythonでは、変数を宣言するときに特定のデータ型を指定する必要はありません。実は、Pythonには変数を宣言するためのコマンド自体が存在しません。変数は、値が代入された時点で初めて作成されます。そして、代入した値によって、その変数のデータ型が自動的に決定されるのです。そのため、Pythonでの変数宣言は非常にシンプルです。手順は以下の3つだけです。変数に名前をつける必要な値を代入するデータ型は代入された値から自動的に判定されるため、明示的に定義する必要はない整数(int)型変数の宣言整数型の変数を宣言するには、以下のようにします。変数に名前をつける整数値を代入する例x=2 print(x)

  2. PythonとTensorFlowで2つの行列を乗算する方法を解説

    TensorFlowは、Googleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせてアルゴリズムやディープラーニングアプリケーションなどを実装するために利用されています。研究用途から本番運用まで幅広く使われており、複雑な数学的演算を高速に処理できる最適化技術を備えているのが特長です。 その理由の一つは、NumPyと多次元配列を基盤としている点にあります。この多次元配列は「テンソル」と呼ばれます。TensorFlowは深層ニューラルネットワークの構築をサポートし、高いスケーラビリティを持ち、人気のデータセットが多数付属しています。また、GPUに