矩阵在编程中的一个小应用
来源:互联网 发布:吸管软件 编辑:程序博客网 时间:2024/06/04 18:06
比如我们已经知道f1=1,f2=1,fn=a*fn-2+b*fn-1。用普通方法求fn就是一个循环。从3循环到n,时间复杂度为O(n)。下面用另一种方法求fn的值。
设矩阵 A = B =
则A*B= * =
A*A*B = A*(A*B) = *=
A*A*….*B=A(n-2) *B = 式(1)
如何求一个数a的b次幂a^b(使用快速幂算法,时间复杂度为lgn)。
假设b=6,用二制表示就是2^2*1+2^1*1+2^0*0 (6的二进制为110)
则a^b=a^(2^2+2^1)=a^(2^2)*a^(2^1) 注:A^(x+y)=A^x*A^y
求a^b的C伪代码
result=1;
while(b!=0)
{
if(b& 1)
result= result*a
a= a*a;
b= b>>1;
}
利用式1求f(1000)的值,需要进行大概10次的矩阵乘法运算,每次矩阵乘法需要8次乘法运算和4次加算法运算共需要大约120次运算就可以求出f(1000)的值。比原来的1000次运算快了近10倍。构造矩阵主要是为了能够使用快速幂来加快运算。
- 矩阵在编程中的一个小应用
- 在编程中的小技巧
- MATLAB sort函数应用——求一个矩阵前L个最大值及其在矩阵中的位置
- 矩阵分解在推荐系统中的应用
- 矩阵在android图形中的应用
- 矩阵分解在推荐系统中的应用
- 变换矩阵在二维图形中的应用
- 矩阵分解在推荐系统中的应用
- 矩阵分解在推荐系统中的应用
- 矩阵在图形学以及Unity中的应用
- Hessian矩阵以及在图像中的应用
- 矩阵在游戏开发中的应用
- jacobian矩阵与hessian矩阵在图像中的实际应用
- MD5在编程中的应用
- reinterpret_cast在编程中的应用
- 文件系统在编程中的应用
- RSS应用中的一个小问题
- Java集合应用中的一个小问题
- java.lang.IllegalArgumentException: id to load is required for loading
- padding,margin,border
- 提高网页加载速度最简单的5种方式
- 一个基于Unity3d思想的cocos2d引擎
- 让文本框只显示下边框和输入内容居中
- 矩阵在编程中的一个小应用
- Visual Studio 2010 Web Deployment Projects p
- H264 编码详解
- JavaScript动态添加和修改Select下拉框
- poj 2184 DP
- SEO软文写作的精髓与核心:主题,内容,目的
- LDA相关论文汇总
- HttpURLConnection用法详解
- hadoop作业调优参数整理及原理