π=
16arc
tan1
5−4a
rcta
n1239 π=16
arct
an15
−4ar
ctan
1239
arctanx
=x−x
33+x
55−.
....
. arc
tanx
=x−x
33+x
55−.
....
.π=16
×(11
×5−1
3×53
+...
...)
−4×(
11×239−1
3×2393+.
....
.)π =16
×(11
×5−1
3×53
+...
...)
−4×(
11×239−1
3×2393+.
....
.)級數中的分數,分母增長很快,但我們可以對乙個分式,不斷除以同乙個低精度數(52
、239
2 52、
2392
),就能得到所有分數的值。
# python 實現
import pandas as pd
deff
(number):
number1 = number+10
# 算到小數點後number1位
b = 10**number1
# 求含4/5的首項
x1 = b*4//5
# 求含1/239的首項
x2 = b// -239
# 求第一大項
he = x1+x2
#設定下面迴圈的終點,即共計算n項
number *= 2
#迴圈初值=3,末值2n,步長=2
for i in range(3,number,2):
# 求每個含1/5的項及符號
x1 //= -25
# 求每個含1/239的項及符號
x2 //= -57121
# 求兩項之和
x = (x1+x2) // i
# 求總和
he += x
# 求出π
pai = he*4
#捨掉後十位
pai //= 10**10
############ 輸出圓周率π的值
result=str(pai)
return result
最後為了方便統計出現的數字的次數,將其轉換為series格式,並定義以下函式來視覺化。
def
show
(n,plt_type='pie'):
result = f(n)
a = pd.series([int(i) for i in result])
b = a.value_counts()
if plt_type=='pie':
plt.figure(figsize=(10,8))
plt.pie(b,labels=b.index,explode=[0.05]*10,shadow=true,autopct='%1.1f%%')
plt.show()
elif plt_type=='bar':
plt.figure(figsize=(10,8))
plt.bar(b.index,b.values)
plt.show()
else:
print('type wrong')
利用此函式可輸出餅圖或柱形圖
當n=100時:
當n=10000時:
由此來看
π π
應該是正規數。突然想看看在其中會不會出現自己的生日,於是定義以下函式
import re
deffind_
(pattern,result):
loc = result.find(pattern)
return loc
result=f(300000)#產生300000位數
find_('199766',result)
最後return了140151,驚奇竟然真的在裡面了!(雖然這個演算法有誤差hhh不過姑且當他正確吧) 用馬青公式計算 的c程式
乙個計算 的c程式 由於大多數計算機內建演算法有一定精度限制,你想計算那麼多位就會產生問題。這裡有乙個c程式,允許計算要多少有多少。但馬青公式在試圖計算億位時不理想。下面就是這個程式。超過萬位時此程式就不能勝任了。而jason chen的程式可算到10萬位!目前最快的方法是chudnovsky ra...
利用函式公式進行貸款的計算
利率的調整,對大家的生活多多少少都會有影響的。當然咱們不去討論經濟走向問題,今天和大家說說有關貸款的計算。下面這樣的問題,你應該遇到過吧 若貸款50萬,還款期限為10年,利率為8 每月應償還的金額是多少呢?計算這個問題,可以直接使用pmt函式直接完成 pmt函式的作用是基於固定利率及等額分期付款方式...
NOPI Excel 讀取公式生成後的資料
using npoi.hssf.usermodel using npoi.ss.usermodel using npoi.xssf.usermodel using system using system.collections.generic using system.data using syst...