算法

快速幂

def quickly_power(a,n):
    if n == 0:
        return 1
    if a == 0:
        return 0
    res = 1
    flage = 1   
    tmp = a
    if n < 0:
        n = -n 
        flage = 0
    while n>0:
        if n % 2 == 1:
            res *= tmp
        n //= 2
        tmp *= tmp
    return res if flage else 1/res

牛顿法开根

f(x) = x^2-a

f^{'}(x)=2x

x_{n+1} = x_{n}-\frac{f(x)}{f^{'}(x)}

def sqrt(n):
    s = n + 1
    q = n
    while abs(s-q) > 0.00001:   # 精确到小数点后5位
        s = q
        q = q/2 + n/(2*q)
    return q

全排列(回溯法)

def full_arr(s:list):
    res = []
    def bfs(first = 0):
        if first == len(s):
            res.append(s[:])
        for i in range(first,len(s)):
            s[first],s[i] = s[i],s[first]
            bfs(first+1)
            s[first],s[i] = s[i],s[first]
    bfs()
    return res

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值