利用馬青公式輸出 的後任意位數字

2021-08-21 02:42:57 字數 2708 閱讀 8861

π=

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