LoginSignup
6
7

More than 5 years have passed since last update.

Python 円周率を求める

Last updated at Posted at 2018-10-06

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 - ...

これを利用して求めていきます。

πを求める

規則性があるので簡単に求めることができます。

次の通りです。

pi_test.py
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を使います。

pi_test2.py
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の値を変えながらやってみてください。


最後まで見てくれて本当にありがとうございます!

6
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7