不管求一个数的幂还是矩阵的幂,比如a^16,把a做15次乘法是最容易想到的方法,但这样效率特别低。其实可以先算出a^2,其平方就是a^4,再平方就是a^8,最后平方一次,就是a^16,只要4次乘法就够了。这种逐次平方法求幂是个很基本的算法,不懂的读者请看这里:利用逐次平方法快速求幂。

另外,可以使用Application.WorksheetFunction直接调用Excel内置的函数,比如矩阵相乘函数MMULT,所以函数的实现非常简洁:

Function pow(a, m)
' a是方阵,m是不小于1的整数次幂pow = am = m - 1While m > 0If m Mod 2 Thenpow = Application.WorksheetFunction.MMult(pow, a)End Ifa = Application.WorksheetFunction.MMult(a, a)m = Int(m / 2)Wend
End Function

VBA实现矩阵快速求幂相关推荐

  1. LeetCode Super Pow(快速求幂算法)

    题意:给出底数a,指数b(很大的数,用数组形式给出,每个元素为1位),求其对1337的模 思路:在遍历数据过程中,用ans(n)表示上一次计算结果,则ans(n+1) = pow(ans(n), 10 ...

  2. 快速求幂(Quick Exponentiation)

    接触ACM没几天,向各路大神求教,听说ACM主要是研究算法,所以便开始了苦逼的算法学习之路.话不多说,RT所示,学习快速求幂. 在头文件<math.h>或是<cmath>中,d ...

  3. 矩阵相关操作和矩阵快速幂

    矩阵相关操作和矩阵快速幂 矩阵基本运算以及快速幂模板 POJ - 3070. Fibonacci Hdu - 1757A. Simple Math Problem Codeforces - 185A. ...

  4. POJ3420 Quad Tiling【矩阵快速幂】

    Quad Tiling Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5008 Accepted: 2269 Descripti ...

  5. 快速幂算法(矩阵快速幂还不是很会。。日后会更新)

    PS:转载,自己写的不如人家,怕误导.转载地址:http://www.cnblogs.com/CXCXCXC/p/4641812.html 首先,快速幂的目的就是做到快速求幂,假设我们要求a^b,按照 ...

  6. 2015多校10 1006.CRB and Puzzle HDU5411(邻接矩阵求k长路条数,矩阵快速幂

    题意:有若干字符,现在要把它们连成一个字符串,每种字符后面只能接特定种类的字符,现在询问能连接出的长度小于等于m的字符串有多少种. 思路:我们可以把这个转移关系看成一个图,如果字符a后面可以接b,那么 ...

  7. 蓝桥杯 算法提高 递推求值(矩阵快速幂)详解

    传送门 问题描述 已知递推公式: F(n, 1)=F(n-1, 2) + 2F(n-3, 1) + 5, F(n, 2)=F(n-1, 1) + 3F(n-3, 1) + 2F(n-3, 2) + 3 ...

  8. NYOJ 301 递推求值(矩阵快速幂)

    递推求值 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 给你一个递推公式: f(x)=a*f(x-2)+b*f(x-1)+c 并给你f(1),f(2)的值,请求出f(n ...

  9. c语言求佩尔方程的解设计思路,c语言版 佩尔方程求最小正整数解及第k解(矩阵快速幂)...

    佩尔方程讲解连接: 若一个丢番图方程具有以下的形式: 且 为正整数,则称此方程为佩尔方程(英文:Pell's equation 德文:Pellsche Gleichung) 若 是完全平方数,则这个方 ...

最新文章

  1. linux开发神器--Tmux
  2. 辉光数码管中挥之不去的记忆
  3. C++学习之路 | PTA乙级—— 1022 D进制的A+B (20分)(精简)
  4. “1天一朵云”,这是如何做到的?
  5. 《深入理解 Spring Cloud 与微服务构建》第九章 熔断器 Hystrix
  6. 华为大数据中心山西_任正非:华为愿与山西一道建立“煤矿人工智能创新实验室”...
  7. MyBatis的ResultMaps之一对多关系
  8. 中rsa非对称加密_HTTP的数据传输中,对称加密和非对称加密的区别是什么?
  9. 40岁学python怎么样_40岁老男人从0开始学Python实录(第5天):到底Python是啥东东?...
  10. Vimac 0.3.14最新版 (一款让你用键盘代替鼠标软件)
  11. 资源池(从内存池到连接池)
  12. 值得收藏:一份非常完整的MySQL规范
  13. android打开系统文件怎么打开方式,Android调用系统应用打开任意文件
  14. document.getElementById/Name/TagName
  15. 徐佐君:智慧园区网络 开放使能共赢
  16. CodeForces - 497D Gears
  17. python中词云图是用来描述_Python如何实现中国地图词云图
  18. 打印机服务器纸张属性不显示,为什么我的打印机能在打印机服务器属性里设置自定义纸张大小,却无法? 爱问知识人...
  19. 不服来试试,Excel中被吹上天的Ctrl+E,到底有多厉害?
  20. 西安80坐标转成经纬度坐标

热门文章

  1. map放入另一个map的值
  2. 良匠-手把手教你写NFT抢购软(四)
  3. python双斜杠是什么意思_Python中正反斜杠(‘/’和‘\’)的意义与用法
  4. unll是什么意思_null是什么意思?
  5. Python单元测试、Python文档测试
  6. 【84期分享】4款中国风PPT模板免费下载
  7. RT-Thread学习笔记
  8. CMOS设置不当引起的故障排除
  9. 股票预测数据与真实数据对比图(八)2021/07/16
  10. 一键备份还原ghost_一键ghost硬盘版_onekey ghost_一键还原精灵