文章目录
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: # 运算符&