Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import time
- N = 200000
- ## arctan(1/n)をTaylor展開で求める
- def arctan(p, n):
- x = p//n
- nn = n*n
- c = 1
- s = x
- k = 1
- while x > 0:
- x //= nn
- k += 2
- c = -c
- s += c*(x//k)
- return s
- ## 円周率を求める
- ## 整数部分「3」も含む仮数表現の長整数で返します
- def pi_mantissa(digit, redund=10):
- p = 10**digit
- q = 10**redund
- p *= q
- pi = 4*(12*arctan(p,18)+8*arctan(p,57)-5*arctan(p,239))
- pi //= q
- return pi
- start_time = time.time()
- result = pi_mantissa(N)
- end_time = time.time()
- print(result)
- print("実行時間 = {0:.3f} 秒".format(end_time - start_time))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement