원주율의 숫자 빈도에 비밀은 있는가?

【개요】



원주율에 나타나는 숫자의 빈도를 조사해 보았습니다.
  김에 네이피어수도 조사해 보았습니다.
  소수점 이하를 대상으로 하고 있습니다.

【준비】



Python 라이브러리 Plotly를 사용하기 위해 API 키를 Plotly에서 가져옵니다.
  (그래프를 그리지 않는 경우는 필요없음)
· 원주율네이피어 수 에서 소수점 이하의 숫자를 텍스트에 복사합니다.
  (덧붙여 네이피어수에 관해서는 최초의 행이 다른 행과 자리수가 다르기 때문에, 0으로 메운다)

【폴더 구성】



|---scripts
   |---pi.py(원주율의 숫자의 빈도를 조사한다)
   |---pi_graph.py(원주율의 막대 그래프 작성)
   |---pi.txt(소수점 이하의 원주율)
   |---e.py(네이피어수의 숫자의 빈도를 조사한다)
   |---e_graph.py(네이피어수의 막대 그래프 작성)
   |---e.txt(소수점 이하의 네이피어수)

【프로그램과 결과】



그래프를 보려면
https://plot.ly/~사용자 이름/0/#plot
에 액세스하면 볼 수 있다고 생각합니다.

pi.py
# -*- coding: utf-8 -*-

zero = 0
one = 0
two = 0
three = 0
four = 0
five = 0
six = 0
seven = 0
eight = 0
nine = 0

for line in open('pi.txt', 'r'):
    for i in xrange(100):
        if(line[i] == '0'):
            zero += 1
        elif(line[i] == '1'):
            one += 1
        elif(line[i] == '2'):
            two += 1
        elif(line[i] == '3'):
            three += 1
        elif(line[i] == '4'):
            four += 1
        elif(line[i] == '5'):
            five += 1
        elif(line[i] == '6'):
            six += 1
        elif(line[i] == '7'):
            seven += 1
        elif(line[i] == '8'):
            eight += 1
        elif(line[i] == '9'):
            nine += 1
print zero    #99959
print one     #99758
print two     #100026
print three   #100229
print four    #100230
print five    #100359
print six     #99548
print seven   #99800
print eight   #99985
print nine    #100106

e.py
# -*- coding: utf-8 -*-

zero = -3 #テキストの最初の行を0で3つ埋めたため、減らしとく
one = 0
two = 0
three = 0
four = 0
five = 0
six = 0
seven = 0
eight = 0
nine = 0

for line in open('e.txt', 'r'):
    for i in xrange(60):
        if(line[i] == '0'):
            zero += 1
        elif(line[i] == '1'):
            one += 1
        elif(line[i] == '2'):
            two += 1
        elif(line[i] == '3'):
            three += 1
        elif(line[i] == '4'):
            four += 1
        elif(line[i] == '5'):
            five += 1
        elif(line[i] == '6'):
            six += 1
        elif(line[i] == '7'):
            seven += 1
        elif(line[i] == '8'):
            eight += 1
        elif(line[i] == '9'):
            nine += 1
print zero    #498642
print one     #500511
print two     #499302
print three   #501715
print four    #500420
print five    #500489
print six     #499875
print seven   #500015
print eight   #499078
print nine    #500290

pi_graph.py
# -*- coding: utf-8 -*-

import plotly
import plotly.plotly as py
import plotly.graph_objs as go 
plotly.tools.set_credentials_file(username='ユーザ名', api_key='APIキー')

data = [go.Bar(
            x=['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'],
            y=[99959, 99758, 100026, 100229, 100230, 100359, 99548, 99800, 99985, 100106]
    )]

py.iplot(data, filename='basic-bar')



e_graph.py
# -*- coding: utf-8 -*-

import plotly
import plotly.plotly as py
import plotly.graph_objs as go 
plotly.tools.set_credentials_file(username='ユーザ名', api_key='APIキー')

data = [go.Bar(
            x=['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'],
            y=[498642, 500511, 499302, 501715, 500420, 500489, 499875, 500015, 499078, 500290]
    )]

py.iplot(data, filename='basic-bar')



【고찰】



원주율도 네이피어수의 숫자도 같은 빈도로 출현하고 있는 것처럼・・・
이미 같은 빈도로 출현한다고 하는 수학의 정리가 있는 것일까?
 (알고 있으면 코멘트로 가르쳐 주셨으면 합니다)

【참고 사이트】



htps: //pぉt. ly/py 쵸/바 r-chan rts/

좋은 웹페이지 즐겨찾기