分而治之算法计算幂代码
时间: 2024-10-22 19:15:05 浏览: 22
算法设计与分析-例题代码.rar
"分而治之"是一种解决问题的策略,尤其常用于递归算法设计。计算幂的分而治之方法通常指的是快速幂算法,它利用了指数的性质:\(a^{m+n} = a^m \times a^n\)。对于大数幂运算,常规乘法会非常慢,快速幂算法通过将大指数分解为二进制形式,大大减少了计算次数。
下面是基于分而治之的JavaScript实现快速幂的一个简单示例:
```javascript
function fastPower(base, exponent) {
// 基本情况:如果指数为0,返回1;如果基数为0,除非指数也为0,否则返回0
if (exponent === 0 || base === 0) {
return exponent === 0 ? 1 : 0;
}
// 将指数转为二进制表示
let result = 1;
let tempBase = base;
// 对于二进制的每一位
while (exponent > 0) {
// 如果该位为1,则将结果乘以当前的base
if ((exponent & 1) !== 0) {
result *= tempBase;
}
// 将base平方,并移除已处理的一位
tempBase *= tempBase;
exponent >>= 1; // 右移一位相当于除以2
}
return result;
}
// 示例:
console.log(fastPower(2, 10)); // 输出:1024
```
阅读全文