python——位幂运算

python初学练习

本篇为一些刚接触python,有一定的python语法基础的,想练习并锻炼自己对python的简单运用,进一步了解关于一些python 语法的运用,在本篇中是使用python来实现位幂运算。

关于位幂运算

传统的求幕算法是在计算例如2的13次方时,程序将计算12次乘方,但实际上,可以先计算出2×2=4的值,这样2可以写成4X4×4X4×4×4×2(此处多余一个2)的形式,再计算4X4=16的值,则2可以写成16×16×16X2的值,这样计算2X2,4×4,16×16X16X2的值,只计算了5次即得出结果。
由于计算机执行的是二进制,所以我们可以通过位运算进行计算其实可以通过位运算对基本快速幂算法进行优化,例如判断n是否偶数,可以使用“按位与”运算符“&.”,即判断n的值是否为0即可。而n=n/2可以使用“右移”运算待“>>”,即n>>=1即可
大致算法思路如下:
例如:求解2^10
假设x 代表每一次计算所得的值;n = 10的二进制为:1010
经过一次位运算n >>=1,此时n = 0101 x = x*x 即x = 4
重复以上运算………………
………………….
…………………
………………….
最终得出x = 1024

python具体代码实现

def mypow(x,n):
    if(n == 0):
        return 1
    else:
        while (n&1)==0:         # 运算符&࿱
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值