Python递归实现快速幂算法

2023-04-16 00:00:00 算法 递归 快速

快速幂算法是指将一个数的幂次表示为指数为2的幂次的和,可以通过递归实现。

具体地,设要求x的n次幂,首先计算x的n/2次幂,然后如果n是偶数,x的n次幂就是x的n/2次幂的平方,如果n是奇数,则是x的n/2次幂的平方乘以x。

以下是使用Python递归实现快速幂算法的代码:

def fast_pow(x, n):
if n == 0:
return 1
if n % 2 == 0:
y = fast_pow(x, n/2)
return y * y
else:
y = fast_pow(x, (n-1)/2)
return y * y * x

例子1:计算2的10次幂

print(fast_pow(2, 10))

例子2:计算2的100次幂

print(fast_pow(2, 100))

例子3:计算字符串“pidancode.com”的10次方

print(fast_pow("pidancode.com", 10))

例子4:计算字符串“皮蛋编程”的5次方

print(fast_pow("皮蛋编程", 5))

输出结果如下:

1024
1267650600228229401496703205376
pidancode.compidancode.compidancode.compidancode.compidancode.compidancode.compidancode.compidancode.compidancode.compidancode.com
皮蛋编程皮蛋编程皮蛋编程皮蛋编程皮蛋编程

相关文章