打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
矩阵乘法
struct Matrix:vector<> >//使用标准容器vector做基类,需#include语句{    Matrix(int x=0,int y=0,int z=0)//初始化,默认为0行0列空矩阵    {        assign(x,vector(y,z));    }    int h_size()const//常量说明不可省,否则编译无法通过    {        return size();    }    int l_size()const    {        return empty()?0:front().size();//列数要考虑空矩阵的情况    }    Matrix pow(int k);//矩阵的k次幂,用快速幂实现,k为0时返回此矩阵的单位矩阵};Matrix operator*(const Matrix &m,const Matrix &n)//常量引用避免拷贝{    if(m.l_size()!=n.h_size())return Matrix();//非法运算返回空矩阵    Matrix ans(m.h_size(),n.l_size());    for(int i=0; i!=ans.h_size(); ++i)        for(int j=0; j!=ans.l_size(); ++j)            for(int k=0; k!=m.l_size(); ++k)                ans[i][j]+=m[i][k]*n[k][j];    return ans;}Matrix Matrix::pow(int k){    if(k==0)    {        Matrix ans(h_size(),h_size());        for(int i=0; i!=ans.h_size(); ++i)            ans[i][i]=1;        return ans;    }    if(k==2)return (*this)*(*this);    if(k%2)return pow(k-1)*(*this);    return pow(k/2).pow(2);}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
378. 有序矩阵中第K小的元素。 ①二分
用C++11优化矩阵运算的空间和时间效率
[LeetCode]48.Rotate Image
剑指offer(C++)-JZ29:顺时针打印矩阵(算法-模拟)
【深度学习系列(二)】:基于c++实现一个简单的神经网络(1)
协同过滤推荐算法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服