一、幂运算

1.幂的定义:

的幂就是多个相乘,记作,表示次幂,即相乘,我们把叫做底数,叫做指数。

2.幂的运算:

我们可以用公式将幂运算进行简化,公式如下:

3.求幂方法:

(1). Python,C++,Java都有专门求幂的系统函数,用法如下:

python

import math
math.pow(底数, 指数)

C++

#include <cmath>
int main() {pow(底数, 指数);
}

Java

public class Main {public static void main(String[] args) {Math.pow(底数, 指数);}
}

(2).快速幂

,所以指数为奇数是要先把奇数转化为偶数,在进行乘方,算法时间复杂度

具体代码如下:

python:

def quickPow(base, n):ans = 1while n > 1:if n % 2 == 1:ans *= basen //= 2base **= 2return ans * base

C++

int quickPow(int base, int n) {int ans = 1;while (n > 1) {if (n & 1) ans *= base;n >>= 2, base *= base;}return ans * base;
}

二、快速幂取余

1.和差积的模运算:

2.快速幂取余:

一般来说,幂的值很大,题目会让你输出模下的值,这是我们要用快速幂取余,我们只需稍微改动快速幂的代码即可实现。

python

def quickPow(base, n, p):base %= pans = 1while n > 1:if n % 2 == 1:ans = ans * base % pn //= 2base **= 2base %= preturn ans * base % p

C++

int quickPow(int base, int n, int p) {long long ans = 1;while (n > 1) {if (n & 1) ans = ans * base % p;n /= 2, base = base * base % p;}return ans * base % p;
}

【数学】幂运算与快速幂取余相关推荐

  1. 幂运算(快速幂)Java实现

    幂运算(快速幂)Java实现 暴力幂运算 Math类下的pow(double a, double b) 快速幂(涉及位运算) 测试 暴力幂运算 public static long pow1(int ...

  2. 二进制,位运算,快速幂

    二进制位运算 一,前言 二,取整运算 三,七种位运算 1,&:与运算,遇0则0 2,|: 或运算,遇1则1. 3,~:取反,0变1,1变0 4,^:异或运算 5, <<<&l ...

  3. mysql 矩阵运算_HDU 2276 Kiki amp; Little Kiki 2 (位运算+矩阵快速幂)

    HDU 2276 Kiki Little Kiki 2 (位运算矩阵快速幂) ACM 题目地址:HDU 2276 Kiki Little Kiki 2 题意 : 一排灯,开关状态已知,每过一秒:第i个 ...

  4. HDU 2276 Kiki Little Kiki 2 (位运算+矩阵快速幂)

    HDU 2276 Kiki & Little Kiki 2 (位运算+矩阵快速幂) ACM 题目地址:HDU 2276 Kiki & Little Kiki 2 题意:  一排灯,开关 ...

  5. 二分幂,快速幂,矩阵快速幂,快速乘

    前言 二分幂,快速幂,矩阵快速幂在算大指数次方时是很高效的. 求 a^n 的值是多少?n是1到10^18次方的一个整数. 求一个数的n次方,朴素的算法就是直接for循环,一遍一遍的乘,a*a*a*a* ...

  6. 快速幂或者矩阵快速幂

    快速幂或者矩阵快速幂在算大指数次方时是很高效的,他的基本原理是二进制,下面的A可以是一个数也可以是一个矩阵(本文特指方阵),若是数就是快速幂算法,若是矩阵就是矩阵快速幂算法,用c++只需把矩阵设成一个 ...

  7. 数论-快速幂、矩阵快速幂、慢速乘

    文章目录 快速幂 矩阵快速幂 慢速乘 例题 HDU-2817 HDU-3117 XUJC-1395 快速幂 首先幂运算 a n a^n an就是 n n n个 a a a相乘,我们可以直接调用库函数 ...

  8. 快速幂和矩阵快速幂详解+模板

    1.快速幂 一般的,我们都知道求只需要连续乘3次2就能得到,那么等于多少呢?其实这个一很简单,不就是13个2相乘吗,连续乘13次2就行了.那么,呢? 是不是要连续乘100次.1000次,我们将这类问题 ...

  9. 数论(二)快速幂 (矩阵快速幂)等比数列求和 最大公因数和最小公倍数

    快速幂 1.快速幂用于快速计算a的b次方,时间复杂度是O(log2b) 2.用于a和b比较大小的情况,常用的快速幂是带模快速幂 3.分析一个例子: 3 15=?  15=(1111)2 3e1 * ...

最新文章

  1. 虚拟机管理你的服务器,全面解析VMware的虚拟机管理解决方案
  2. vs2019 MFC 中 cannot open include file 'afxres.h' 问题解决方法
  3. Hibernate 中配置属性详解(hibernate.properties)
  4. 青少年蓝桥杯_2020_steam考试_初级组_第三题
  5. cfree运行程序错误的原因_ARM Cortex-M 系列 MCU错误代码自动追踪库的使用分享
  6. 使用VMware安装CentOS7详请(自己做过测试)
  7. js获取字符串最后一个字符代码
  8. printf 地址_C程序显示主机名和IP地址
  9. 冒泡排序 和 归并排序
  10. __attribute__((section(name))) study again
  11. Angular在FormGroup中使用ngModel失效报错问题的解决办法
  12. 从SDE库文件手工删除SDE图层(转载)
  13. MFC树型控件 搜索并展开高亮指定树节点
  14. vue组件,通过props父组件给子组件传值,WTF, 子组件报错undefined???
  15. 阿里巴巴正式开源全球化OpenMessaging和ApsaraCache项目
  16. 10.27大视野月赛翻车实况
  17. Buffer的基本用法
  18. iphone 如何运行android,iPhone成功运行Android,厉害~
  19. Manjaro安装教程及安装后操作
  20. 斗战神服务器正在维护6,斗战神什么时候服务器数据互通_斗战神1月6日、8日服务器数据互通公告_快吧游戏...

热门文章

  1. linux(ubuntu)上使用sdkman快速安装java环境,maven,gradle
  2. 不解“安全态势感知”为何物?
  3. 2019奥林匹克计算机竞赛试题,2019-2020年小学数学奥林匹克竞赛试题及答案三年级...
  4. canon老的一体机在win10上无法直接安装成功
  5. 懂得拥有也要学会放弃
  6. depot_tools在windows上用遇到的问题和RTC编译出错
  7. C++ Primer Plus(第6版)读书笔记--c++自定义函数
  8. html中div被挤下来,移动端布局,底部的div被挤下去,麻烦帮看看
  9. Python的egg包
  10. Java核心技术 卷1-总结-18