怎样用Python实现快速幂算法?
时间: 2024-10-06 18:06:04 浏览: 50
在Python中实现快速幂算法,通常会使用递归或循环结合位操作。以下是两个常见的实现方法:
**使用递归**:
```python
def fast_power(base, exponent):
if exponent == 0: # 阶乘为0的情况
return 1
elif exponent % 2 == 0: # 如果指数偶数
temp = fast_power(base, exponent // 2) # 递归求一半
return temp * temp
else: # 如果指数奇数
temp = fast_power(base, exponent // 2) # 递归求一半
return base * temp * temp
```
**使用循环**:
```python
def fast_power(base, exponent):
result = 1
while exponent > 0:
if exponent & 1: # 判断指数是否为奇数
result *= base
base *= base # 将基数自乘
exponent >>= 1 # 左移一位相当于除以2
return result
```
在这两种方法中,`&` 表示按位与运算,检查 `exponent` 是否有奇数部分;`>>` 表示右移运算,用于减少计算次数。
阅读全文