矩阵的简单测试模板
来源:互联网 发布:淘宝迈克菲恩是正品吗 编辑:程序博客网 时间:2024/05/18 01:28
参考了雍学长的代码,写了一个模板,不是很完善。在初始化的时候我没有初始化为单位矩阵而是初始化为0矩阵(因为在做其他矩阵的运算时,用单位矩阵会出问题)。
下面是个函数的的意义:
void matrixPut(Matrix &temp):输出矩阵;
void matrixBuild(Matrix &temp):自定义一个矩阵;
Matrix mat_pls(const Matrix & a,const Matrix &b):矩阵的加法;
Matrix mat_mul(Matrix &a,Matrix &b):矩阵的乘法(注意这里形参不能用const,否则会出错);
Matrix fast_mod(Matrix a,int k):矩阵的快速幂(要先初始化矩阵为单位矩阵);
#include<cstdio>#include<cstring>#include<iostream>using namespace std;const int mod=0x3f3f3f3f;const int maxn=1e7+7;typedef long long ll;const int N=2;struct Matrix{ ll a[N][N]; Matrix(){ memset(a,0,sizeof(a)); //µ¥Î»¾ØÕó /*for(int i=0;i<N;i++){ a[i][i]=1; }*/ }};void matrixPut(Matrix &temp){ for(int i=0;i<N;i++){ for(int j=0;j<N;j++){ printf("%lld%c",temp.a[i][j],j==N-1?'\n':' '); } }}void matrixBuild(Matrix &temp){ for(int i=0;i<N;i++) for(int j=0;j<N;j++) scanf("%lld",&temp.a[i][j]); //matrixPut(temp);}Matrix mat_pls(const Matrix & a,const Matrix &b){ Matrix ans; for(int i=0;i<N;i++){ for(int j=0;j<N;j++) ans.a[i][j]+=a.a[i][j]+b.a[i][j]; } return ans;}Matrix mat_mul(Matrix a,Matrix &b){ Matrix ans; for(int i=0;i<N;i++){ for(int j=0;j<N;j++){ for(int k=0;k<N;k++) ans.a[i][j]+=a.a[i][k]*b.a[k][j]%mod; } } return ans;}Matrix fast_mod(Matrix &a,int k){ Matrix ans; for(int i=0;i<N;i++)ans.a[i][i]=1; while(k){ if(k&1)ans=mat_mul(a,ans); a=mat_mul(a,a); k=k>>1; } return ans;}int main(){ Matrix m1,m2,m3,m4; printf("please input matrix1:\n"); matrixBuild(m1); // matrixPut(m1); printf("please input matrix2:\n"); matrixBuild(m2); //matrixPut(m1); //m3=mat_pls(m1,m2); //matrixPut(m3); m3=mat_mul(m1,m1); matrixPut(m3); int k; printf("input k: \n"); scanf("%d",&k); m4=fast_mod(m1,k); matrixPut(m4); return 0;}
0 0
- 矩阵的简单测试模板
- 有关矩阵的模板【模板】
- 矩阵乘法的模板
- 对一个简单的字符串模板进行的测试
- 一个简单的linux的测试修改模板
- 数据结构练习---java实现普通矩阵与稀疏矩阵的矩阵转置,矩阵加法,矩阵乘法,应用简单工厂与模板方法。
- 简单性能测试函数模板
- 矩阵的测试
- 自己写的矩阵模板
- 矩阵的快速幂模板
- 矩阵的简单算法
- 简单的矩阵类
- 基础的测试模板
- 测试矩阵乘法的例子
- 矩阵模板
- 矩阵模板
- 矩阵模板
- 【矩阵模板】
- Beyond
- 屏幕广播的实现(三)
- 二维“数组”转换成二维“指针”
- fzu 1263 (栈的应用)
- 20140424工作总结
- 矩阵的简单测试模板
- VS2010类模板更改,增加版权等等信息
- 在网页中用html5打开摄像头
- 算法分析---查找最大回文子串
- 又是一个简单的问题浪费一上午
- 在设计数据库时我们会考
- LINUX共享内存使用常见陷阱与分析
- 一对一关系映射:
- printf动态刷新,实现进度功能