矩阵快速幂
来源:互联网 发布:python小甲鱼视频 编辑:程序博客网 时间:2024/06/05 16:08
矩阵快速幂:求一个矩阵的幂
知识点参考该链接http://www.myexception.cn/arithmetic/1847338.html
#include <stdio.h>
#include <string.h>
typedef struct mar
{
__int64 matrix[2][2];
} Mar;
void print(Mar a)
{
int i,j;
for(i=0; i<2; i++)
{
for(j=0; j<2; j++)
{
printf("%d ",a.matrix[i][j]);
}
printf("\n");
}
}
Mar mul(Mar a,Mar b)
{
Mar temp;
int i,j,k;
for(i=0; i<2; i++)
{
for(j=0; j<2; j++)
{
temp.matrix[i][j]=0;
for(k=0; k<2; k++)
{
temp.matrix[i][j]+=(a.matrix[i][k]*b.matrix[k][j]);
}
}
}
return temp;
}
Mar power(Mar mar,int n)
{
Mar mt;
mt.matrix[0][0]=mt.matrix[1][1]=1;
mt.matrix[0][1]=mt.matrix[1][0]=0;
while(n)
{
if(n&1)
mt=mul(mar,mt);
mar=mul(mar,mar);
n=n/2;
}
return mt;
}
int main()
{
Mar m;
int i,j,n;
scanf("%d%d%d%d",&m.matrix[0][0],&m.matrix[0][1],&m.matrix[1][0],&m.matrix[1][1]);
Mar c=m;
scanf("%d",&n);
c=power(c,n);
print(c);
return 0;
}
知识点参考该链接http://www.myexception.cn/arithmetic/1847338.html
#include <stdio.h>
#include <string.h>
typedef struct mar
{
__int64 matrix[2][2];
} Mar;
void print(Mar a)
{
int i,j;
for(i=0; i<2; i++)
{
for(j=0; j<2; j++)
{
printf("%d ",a.matrix[i][j]);
}
printf("\n");
}
}
Mar mul(Mar a,Mar b)
{
Mar temp;
int i,j,k;
for(i=0; i<2; i++)
{
for(j=0; j<2; j++)
{
temp.matrix[i][j]=0;
for(k=0; k<2; k++)
{
temp.matrix[i][j]+=(a.matrix[i][k]*b.matrix[k][j]);
}
}
}
return temp;
}
Mar power(Mar mar,int n)
{
Mar mt;
mt.matrix[0][0]=mt.matrix[1][1]=1;
mt.matrix[0][1]=mt.matrix[1][0]=0;
while(n)
{
if(n&1)
mt=mul(mar,mt);
mar=mul(mar,mar);
n=n/2;
}
return mt;
}
int main()
{
Mar m;
int i,j,n;
scanf("%d%d%d%d",&m.matrix[0][0],&m.matrix[0][1],&m.matrix[1][0],&m.matrix[1][1]);
Mar c=m;
scanf("%d",&n);
c=power(c,n);
print(c);
return 0;
}
阅读全文
0 0
- 快速矩阵快速幂
- 转移矩阵+矩阵快速幂
- 矩阵乘法 矩阵快速幂
- 构造矩阵+矩阵快速幂
- 矩阵快速幂,矩阵加法,矩阵乘法
- 快速幂||矩阵快速幂
- 快速幂&矩阵快速幂
- 快速幂,矩阵快速幂
- 快速幂 矩阵快速幂
- 快速幂&矩阵快速幂
- 【快速幂】【矩阵快速幂】
- 快速幂和快速矩阵
- poj3070--矩阵 快速幂
- POJ3233矩阵快速幂
- poj3070Fibonacci 矩阵快速幂
- 矩阵的快速幂
- 矩阵快速幂
- 矩阵的快速幂
- servicestace.orm lamda查询之分组条件 例
- sizeof和strlen
- 多维数组扁平化
- 自学nginx(二): nginx的配置文件解读
- vue-cli搭建单页面应用
- 矩阵快速幂
- Windows安装redis
- SnackBar基本使用
- recyclerView的方式做频道管理
- Hibernate—(关系)
- phpcms 链接ucenter修改用户头像
- Spring MVC (2) 注解RequestMapping的使用
- 【React】在React项目中使用parallax.js
- Java 输入一串字符按照格式逆序输出