Pythonでべき乗の計算をするなど大きな整数を扱う

Pythonでの基本的な数値の計算で、最低限知っておきたいものをご紹介します。

Pythonによる演算

べき乗の計算

Pythonの四則演算のうち足し算、引き算および掛け算、は次の演算子で計算します。このほか、よく使うのはべき乗や平方根の計算です。**のような記号のことを、コンピュータの用語で演算子(operator)といいます。

演算の種類 演算子(operator)
足し算 + 7+3 → 10
引き算 - 7-3 → 4
掛け算 * 7*3 →21
べき乗 ** 2**3→8

以下、べき乗のプログラムを作成します。

  1. #1 べき乗と平方根、立方根の計算
  2. print(2**3)
  3. print(3**4)
  4. print(2**31)

8
81
2147483648

べき乗は”**”を使います。Excelなどほかのプログラミング言語では”^”を使うので、注意が必要です。

Pythonによる演算結果の出力

変数に数値を代入してから計算することもできます。print文でフォーマット済み文字列リテラル(Literal String Interpolation)を使って出力すると次の通りになります。

  1. # 2 python での和、差、積の計算
  2. x = 3
  3. y = 2
  4. print(f'x + y = {x+y}')
  5. print(f'x - y = {x-y}')
  6. print(f'x * y = {x*y}')
  7. print(f'x ** y = {x**y}')

x + y = 5
x - y = 1
x * y = 6
x ** y = 9

このようにフォーマット済み文字列リテラルを使うと計算結果をわかりやすく表示することができます。

桁数が多きくなるとき

桁数の大きな整数の表示

桁数の大きな整数の表示

べき乗を使って計算すると、計算結果が大きな数字になることがあります。この場合には、3桁ごとにカンマ区切りにした方が見やすくなります。

  1. #3 数字の出力の書式(format)をカンマ区切りにする
  2. price=1000
  3. print(f'金額は{price:,}円です。')

金額は1,000円です。

このように、{ }:中括弧の中を{’変数:,}とすると、変数に代入されている数字を桁区切りで表示できるようになります。桁数が大きな数字になると、この方法はとても有効です。

  1. #4 数字の出力の書式(format)をカンマ区切りにする
  2. val=2**31
  3. print(f'2の31乗は{val:,}です。')

2の31乗は2,147,483,648円です。

桁数が多い数字を入力するには

変数に桁数が多い数字を変数に代入するときなど、(カンマ)ではなく_(アンダースコア)を使って3桁ごとに桁区切りをします。

  1. #5 桁数が大きな数字を間違いなく入力する
  2. val=2_147_483_648
  3. print(val)
  4. print(f'2の31乗は{val:,}です。')

2147483648
2の31乗は2,147,483,648です。

ただし、アンダースコアを使って入力しても、変数には区切り無しで代入されます。3桁区切りで表示したければ、フォーマット済み文字列リテラルにする必要があります。

Pythonで取り扱うことができる数字の限界

Pythonではどれくらい大きな数字を取り扱うことができるでしょうか。結論からいうと整数であれば、コンピュータの性能が許せばいくらでも大きな数字を表すことができます。

  1. #6 #6 Pythonで取り扱うことのできる整数の限界
  2. big_number=2**500
  3. print(f'2の500乗は{big_number:,}です。')

2の500乗は3,273,390,607,896,141,870,013,189,696,827,599,152,216,642,046,043,064,789,483,291,368,096,133,796,404,674,554,883,270,092,325,904,157,150,886,684,127,560,071,009,217,256,545,885,393,053,328,527,589,376です。

ただし小数などについては、表すことができる数字には制約があるので注意が必要です。

関数

pow関数

べき乗は**の演算子を使っても計算することができますが、次のようにpow関数という機能を使って計算することができます。

  1. #7 pow関数によるべき乗の計算
  2. print(pow(2,10))

1024

関数は三角関数という言葉からもあるように、ある数x(input)を決めると、もう一つの数y(output)が決まるような数量的な関係という意味です。pythonなどのプログラミング言語ではinputであるxを引数(argument)、outputであるyを戻り値(return value)といいます。pow関数は基数(base)をbとし、その指数:n乗を計算するときpow(基数,指数)のように指定すると、べき乗した結果が計算されます。

pow関数

$b^n$ = pow(基数:base,指数:n-th power)

べき乗(exponentiation)は英語でb to the n-th (power)、b raised to the power of n

と表現されるのでpowはpowerの略と考えられます。

引数:argumentは議論するといった意味で使いますが、数学ではそこから別の数学的な量が推測されたり、計算される、数学的な量というような意味で使われます。金属の銀(ラテン語ではargentum)と同じ語源で白黒はっきりするとか真理を明らかにするというような文脈で使われます。

print関数

これまでprint( )の機能を使ってきましたが、実はprint( )も関数です。関数には、pow関数のように、()の中に引数を指定し、関数の中で特殊な計算をして値を戻すだけでなく、print関数のように、コンピュータに対しある操作をするように命令するものもあります。