pythonで円周率を求める

一度pythonのdecimal.Decimalで求めたが、最大で15桁までしか求められなかったので、それ以上求められるプログラムを作ってみました。計算桁数を300桁に拡大しました。

a = int(input("正確性"))
b = 0
for i in range(a):
    b += int(16 * (((-1) ** i) * 10 ** 300) / ((i * 2 + 1) * (5 ** (i * 2 + 1))))
    b -= int(16 * (((-1) ** i) * 10 ** 300) / ((i * 2 + 1) * (239 ** (i * 2 + 1))))
c = []
for i in range(len(str(b))):
    c.append(str(b)[i])
c.insert(1,".")
print("".join(c))

計算結果

正確性:10

3.141592653589792157645346483454328875160628346118050692291383352532539018553295738176654063743619756525472535262973287205557631795009685142167626559289287348802902771833109578030361557330471099255745004942333926836966090004679496265485273912002112571200790982708412544161936408907023363888961453817856

正確性:50

3.141592653589793699190710247113692157316396163587324181780806634555298156718577270565537752321980193838315531355970078108039022729131680934218435819784901584140871817364085642845532771425094802665351229437372256047133255416123579456636016246842552078871637252092376618508962292023935215131175996620800

正確性:100

3.141592653589793699190710247113692157316396163587324181780806634555298160583310567654981803033056548854130728280209627396388567341619923998393691300865516793201219190747258354705694511001575627349036256984422081846328082097416165157676790880513707479558738622802103189321064581611729667402533028495360

正確性:1000

3.141592653589793699190710247113692157316396163587324181780806634555298160583310567654981803033056548854130728280209627396388567341619923998393937385430545290367922434558099052266779887045043523960348752801811590248707121002629256152935763065890799807059689594055102603037872265941093156464591388246267

正確性:10000

3.141592653589793699190710247113692157316396163587324181780806634555298160583310567654981803033056548854130728280209627396388567341619923998393937385430545290367922434558099052266779887045043523960348752801811590248707121002629256152935763065890799807059689594055102603037872265941093156464591388246267

なぜか正確性を50以上上げてもほぼ意味がなくなった。15桁以上の精度が出なかった。

正確な円周率300桁

3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127

円周率.jpより

コメント

タイトルとURLをコピーしました