一个矩阵的类与矩阵连乘模板
2013-06-19 21:30
274 查看
我的模板
改造自Matrix67大神博客
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int maxsize=32; struct Matrix { int element[maxsize][maxsize]; int size; int modulo; void init_matrix(int _size,int _modulo) { size=_size; modulo=_modulo; for (int i=0; i<_size; i++) for (int j=0; j<_size; j++) element[i][j]=0; } Matrix operator*(Matrix param) { Matrix product; product.init_matrix(size,modulo); for (int i=0; i<size; i++) for (int j=0; j<size; j++) for (int k=0; k<size; k++) { product.element[i][j]+=element[i][k]*param.element[k][j]; product.element[i][j]%=modulo; } return product; } Matrix power(int exp) { Matrix tmp = (*this) * (*this); if (exp==1) return *this; else if (exp & 1) return tmp.power(exp/2) * (*this); else return tmp.power(exp/2); } };
改造自Matrix67大神博客
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int maxsize=32; class CMatrix{ public: int element[maxsize][maxsize]; void setSize(int _size); void setModulo(int _modulo); CMatrix operator*(CMatrix param); CMatrix power(int exp); private: int size; int modulo; }; void CMatrix::setSize(int _size) { for (int i=0;i<_size;i++) for (int j=0;j<_size;j++) element[i][j]=0; size=_size; } void CMatrix::setModulo(int _modulo) { modulo = _modulo; } CMatrix CMatrix::operator*(CMatrix param) { CMatrix product; product.setSize(size); product.setModulo(modulo); for (int i=0;i<size;i++) for (int j=0;j<size;j++) for (int k=0;k<size;k++) { product.element[i][j]+=element[i][k]*param.element[k][j]; product.element[i][j]%=modulo; } return product; } CMatrix CMatrix::power(int exp) { CMatrix tmp = (*this) * (*this); if (exp==1) return *this; else if (exp & 1) return tmp.power(exp/2) * (*this); else return tmp.power(exp/2); }
相关文章推荐
- 一个矩阵的类与矩阵连乘模板
- Multiplication Puzzle(区间DP:类似矩阵连乘问题的DP模板)
- 矩阵连乘问题的一个具体实现
- 模板(网络流判断:是否存在一个一直行列和的矩阵)
- 用vector编写一个矩阵模板
- poj 1144 Network 【求一个网络的割点的个数 矩阵建图+模板应用】
- 矩阵连乘求斐波那契数列模板
- hdu 1575 求一个矩阵的k次幂 再求迹 (矩阵快速幂模板题)
- 求一个矩阵最大子矩阵的算法模板
- 一个我自己写的矩阵快速幂模板
- 51nod 1113 矩阵连乘快速幂模板 (对100000007取模)
- yii2高级模板使用一个域名管理前后台
- 动态规划之矩阵连乘
- 无限极分类,把子集数组压到父集数组的一个子项下面,用于在前台模板更好的循环显示
- 编写一个算法,若M*N矩阵中某个元素为0,则将其所在的行与列清零。
- 模板及运算符一个例子
- ecshop 站群,多模板,多域名共用一个后台
- 用函数模板,写一个简单高效的 JSON 查询器的方法介绍
- 给定一个m×n矩阵,如果一个元素为0,则将其整行和列的值设置为0.
- 不使用额外空间复杂度(缓存矩阵)顺时针旋转一个N*N的矩阵