Python で 円周率を求める
円周率を使いたいとき、標準モジュールであるmath
をimportし、math.pi
を利用すればすぐにでます。
3.1415926535897932384626433832795...
円周率πは無理数ですが、無理数の中で1番役に立つ数だと言っても過言では無いと思います。
その円周率を求めてみたいとは思いませんか?
ということで、今回は円周率を求めたいと思います。(もしかしたら既出かも...?)
円周率πに隠された規則性
無理数は小数点以下が規則性がなく無限に続き、分数で表せない数です...が、実は分数で表すことができます。それがこちら。
π=4(1/1 - 1/3 + 1/5 - 1/7 + 1/9 - ...)
これを展開して...
π=4/1 - 4/3 + 4/5 - 4/7 + 4/9 - ...
これを利用して求めていきます。
πを求める
規則性があるので簡単に求めることができます。
次の通りです。
A=100
pi=0
for L in range(1,A):
if L%2==0:
B=-1
else:
B=1
pi+=(4/(2*L-1))*B
print(pi)
Aの値を大きくすれば、時間はかかりますがより詳しくなります。
Aを150にすると、おなじみの3.14が出ます。
僕はiosアプリのPythonista3を使っているのでA=1千万が限界かもです。
google colaboratoryはインターネット環境が必要ですが、スーパーコンピュータが処理しているので、もしかしたらA=1億でもいけるかもしれません。
グラフで見てみる
どのように値が変化して円周率が求められるのか見てみましょう。
matplotlib.pyplot
を使います。
import matplotlib.pyplot as plt
A=100
pi=0
piplot=[]
for L in range(1,A):
if L%2==0:
B=-1
else:
B=1
pi+=(4/(2*L-1))*B
piplot.append(pi)
plt.plot(piplot)
plt.show()
実際にAの値を変えながらやってみてください。
最後まで見てくれて本当にありがとうございます!