nashidos’s diary

アルゴリズムとか機械学習とか色々

Pythonで平方根(ルート)の精度を上げる方法-パナソニックプロコン

この記事では、Python平方根の計算の精度を上げる方法を記します。

Python平方根の計算をただすること自体は難しくありません。

例えば以下のように”**”を使う方法や

print(2**0.5)
#1.4142135623730951

numpyを用いて求める方法もあります。

import numpy as np
print(np.sqrt(2))
#1.4142135623730951

しかし、これらの計算精度はあまりよくなく、以下のような高い精度を求められる問題を解くことができません。
atcoder.jp

Pythonではdecimalを使うことで楽に高い精度を出すことができます。

from decimal import Decimal
Decimal('2')**Decimal('0.5')
#Decimal('1.41421356237309504880168872421')

float型で渡してしまうとすでに精度が悪い状態で渡されてしまうためDecimalに渡す値は文字列にすることに注意しましょうね。

おわり。