【无标题】

问题1

import numpy as np
   
n = 100000  #定义n的个数
M = 1     #分子
N = 1000  #定义精确小数后面的位数

class bbb():  
    def __init__(self,M,D,N):  #M为分子,D为分母,N为小数精度
        self.M = M
        self.D = D
        self.N = N
        self.div = div = np.zeros(self.N,dtype=int)
        if D:
            self.division()
    def __add__(self,other):
        self.division_add(other.div)
        return self  #必须返回自身,不然一相加就Nonetype了
   
    def division(self):  #M分子,D分母,N小数位数
        r = self.M
        for i in range(self.N):
            n = 10*r/self.D
            r = 10*r%self.D
            self.div[i]=n
   
    def division_add(self,div_another):
        self.div=self.div+div_another
        for i in reversed(range(1,len(self.div))):
            self.div[i-1] += self.div[i]/10
            self.div[i] = self.div[i]%10
       
    def result_str(self):
        #map对列表里的每个元素执行相应函数
        return str(self.div[0]/10) + "".join(map(str,self.div[1:]))
   
    def result_float(self):
        return float(self.result_str())

bassaier= bbb(M,0,N)
for i in range(1,n+1):
    bassaier  += Multiple_decimals(M,i*i,N)


print("近似值:%s" %(bassaier.result_str()))
print("精确值:%s" %(str(np.pi*np.pi/6)))

问题2

3

拆分n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值