python: 圓周率 質數 組合

Posted by TJ Wei on 星期六, 2月 16, 2002 with No comments
算圓週率到小數點下一千位
l=4*10**1005
print reduce(lambda a,i:(4*l/5**i-l/239**i)/i-a,range(1,1450,2),0)

10^A位
T=10**A
M,l,R=100*T,4*10**(T+A+2),range(1,145*T/100,2)
print reduce(lambda (p,q,r),i:((q-r)/i-p,q/25,r/57121),R,(0,4*l/5,l/239))[0]/M

更新
l,N==10**1005,10**4
print reduce(lambda a,i:l+a*i/(2*i+1),range(N,0,-1),l)/5/N

列出所有小於N的質數
reduce(lambda x,i:filter(lambda j:j==i or j%i!=0,x),range(2,N**0.5),range(2,N))


c7 取6 程式怎麼寫 ...
python 程式碼
reduce(lambda s,i:[l+[j] for l in s for j in A if not l or j>l[-1]],A[:6],[[]])
其中A是要取六的集合。
Categories: ,