高效幂算法
来源:互联网 发布:哪些排序算法不稳定 编辑:程序博客网 时间:2024/05/21 15:47
《数据结构与算法分析》mark.Allen.weiss中提供的分治算法
(美) Mark Allen Weiss
计算一个整数的幂 XN 的常见算法是使用 N-1 次乘法自乘。然而我们可以找到更好的算法。可以应用这样一种递归算法:如果 N 是偶数,有XN=XN/2 * X N/2 , 如果 N 是奇数,则有 XN =X (N-1)/2 * X (N-1)/2 * X 。
为了说明这个算法为什么更高效,我们举一个例子。例如计算 X62 ,用第一种的常见算法我们要做61次自乘。而用第二种算法只要做9次乘法:
X3=(X2)X , X7=(X3)2X , X15=(X7)2X , X31=(X15)2X , X62=(X31)2
因为求 X3 X7 X15 X31 各做了两次乘法,最后求 X62 又做了一次乘法,总共就是9次。
#include<iostream>using namespace std;long pow_s(int x, int n)//x的n次方{if (n == 0){return 1;}if (n == 1){return x;}if (n % 2 == 0){return pow_s(x*x, n / 2);}else{return pow_s(x*x, n / 2)*x;}}
0 0
- 高效幂算法
- 算法高效算法
- 高效的算法
- Bresenham高效画线算法
- 高效全组合算法
- 吸血鬼数字 高效算法
- 16宫格全解高效算法
- Bresenham高效画线算法
- A*高效搜索算法
- 高效排序算法
- 搞笑(高效)算法
- 求高效算法
- Bresenham高效画线算法
- 高效的最大公约数算法
- N皇后高效算法
- 高效Permutation算法
- 排列组合的高效算法
- [索引] 高效算法
- 仿淘宝购物车嵌套ListView
- Spring-Boot Not Finding JSP Pages in WAR File
- Application Cache---HTML5应用程序缓存Application Cache
- 通过地址获取经纬度(中文地址亦可)
- /etc/fstab 参数详解及如何设置开机自动挂载
- 高效幂算法
- Java枚举介绍及使用详解
- java -- java读取文件md5工具方法
- beanstalk python操作
- 多线程(四) 实现线程范围内模块之间共享数据及线程间数据独立(Map集合)
- Yii2:推荐一个方法arrayHelper::map()
- Hadoop安装配置(棒极了,每一小步都写得非常清楚)
- 第二题
- FireDAC 下的 Sqlite [9] - 关于排序