题目描述 description

给定一个N阶矩阵A,输出A的M次幂(M是非负整数)
  例如:
  A =
  1 2
  3 4
  A的2次幂
  7 10
  15 22

输入 input

第一行是一个正整数N、M(1<=N<=30, 0<=M<=5),表示矩阵A的阶数和要求的幂数
  接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值输出 output输出共N行,每行N个整数,表示A的M次幂所对应的矩阵。相邻的数之间用一个空格隔开

样例输入 sample input

2 2
1 2
3 4

样例输出 sample output

7 10
15 22

分析:

当矩阵A的列数与矩阵B的行数相等时才可进行矩阵乘法
矩阵相乘:矩阵A*矩阵B=矩阵C
则:
矩阵C的行数等于A的行数,矩阵C的列数等于B的列数
矩阵C的第m行第n列元素等于矩阵A的第m行元素与矩阵B的第n列元素的乘积之和

代码如下

#include <stdio.h>
#include <string.h>
#define N 100
int A[N][N],t[N][N],r[N][N];
int main()
{  int n,m,i,j,k;  scanf("%d%d",&n,&m);  for(i=0;i<n;i++)              //输入矩阵A for(j=0;j<n;j++)  scanf("%d",&A[i][j]);  for(i=0;i<n;i++)             //初始化矩阵r (矩阵A的幂次方) r[i][i]=1;while(m--)                    //幂次方计算 (核心段) {  memset(t,0,sizeof(t));  for(i=0;i<n;i++)  for(j=0;j<n;j++)  for(k=0;k<n;k++)               //当一个矩阵列数等于行数时才可进行自乘,即幂次计算 t[i][j]+=r[i][k]*A[k][j];  //  t[i][j]= t[i][j]+r[i][k]*A[k][j];for(i=0;i<n;i++)  for(j=0;j<n;j++)  r[i][j]=t[i][j];   //将中间矩阵t的值赋给矩阵r }                             //m次幂计算后输出矩阵rfor(i=0;i<n;i++)  {  for(j=0;j<n-1;j++)  printf("%d ",r[i][j]);      printf("%d\n",r[i][j]);      }  return 0;
} 

运行结果

void *memset(void *s, int ch, size_t n);
函数解释:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。
memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法.
memset()函数原型是extern void *memset(void *buffer, int c, int count) buffer:为指针或是数组,c:是赋给buffer的值,count:是buffer的长度.

矩阵乘法(幂次计算)相关推荐

  1. 矩阵乘法次数的计算过程

    矩阵乘法次数的计算: 以两个矩阵相乘为例,A1xA2,A1和A2为两个矩阵,假设A1的行列数是pxq,A2的行列数是qxr.那么对于A1xA2而言,我们需要分别执行pxr次对应A1的行元素乘以A2的列 ...

  2. C语言求二阶矩阵最小值,C语言科学计算入门之矩阵乘法的相关计算

    1.矩阵相乘矩阵相乘应满足的条件: (1) 矩阵A的列数必须等于矩阵B的行数,矩阵A与矩阵B才能相乘: (2) 矩阵C的行数等于矩阵A的行数,矩阵C的列数等于矩阵B的列数: (3) 矩阵C中第i行第j ...

  3. Luogu P3597 [POI2015]WYC___矩阵乘法快速幂+倍增

    题目大意: 给定一张n个点m条边的带权有向图,每条边的边权只可能是1,2,3中的一种.将所有可能的路径按路径长度排序,请输出第k小的路径的长度,注意路径不一定是简单路径,即可以重复走同一个点. 无自环 ...

  4. 十个利用矩阵乘法解决的经典题目

    出自matrix67.com 好像目前还没有这方面题目的总结.这几天连续看到四个问这类题目的人,今天在这里简单写一下.这里我们不介绍其它有关矩阵的知识,只介绍矩阵乘法和相关性质.     不要以为数学 ...

  5. 【转载】ACM中矩阵乘法的应用

    copied from  大神's blog 不要以为数学中的矩阵也是黑色屏幕上不断变化的绿色字符.在数学中,一个矩阵说穿了就是一个二维数组.一个n行m列的矩阵可以乘以一个m行p列的矩阵,得到的结果是 ...

  6. 快速幂或者矩阵快速幂

    快速幂或者矩阵快速幂在算大指数次方时是很高效的,他的基本原理是二进制,下面的A可以是一个数也可以是一个矩阵(本文特指方阵),若是数就是快速幂算法,若是矩阵就是矩阵快速幂算法,用c++只需把矩阵设成一个 ...

  7. 矩阵之矩阵乘法(转载)

    参考Matrix67:http://www.matrix67.com/blog/archives/276 十个利用矩阵乘法解决的经典题目 好像目前还没有这方面题目的总结.这几天连续看到四个问这类题目的 ...

  8. 【Scala-spark.mlib】本地矩阵乘法计算效率比较(稠密稀疏哪家强?)

    矩阵乘法效率比较 1. 矩阵乘法 2. 效率比较  2.1. DenseMatrix(50% zeros) X DenseMatrix  2.2. SparseMatrix X DenseMatrix ...

  9. HDU4549(矩阵快速幂+快速幂)

    f(n)=a^f(n-1) + b^f(n-2):计算矩阵部分用矩阵快速幂:计算a的幂次和b的幂次用快速幂. #include<iostream> #include<algorith ...

  10. 用MapReduce实现矩阵乘法

    主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项 ...

最新文章

  1. linux下编译php扩展
  2. delete from inner join
  3. hdu5056(找相同字母不出现k次的子串个数)
  4. cocos2d实现语音_Cocos2d-x 3.2 Lua示例CocosDenshionTest(音频测试)
  5. hdu 1080(LCS变形)
  6. Android中handler的使用及原理---学习笔记
  7. Netty : netty 3如何解决空轮询bug
  8. 在程序中表示什么_程序开发中:什么是前后端分离?你搞清楚了吗?
  9. JVM监控及诊断工具GUI篇之Arthas(五):其他指令
  10. 算高差改正数的计算机程序,水准测量中测量高差的改正数怎么计算?
  11. 9.2-Scrapy框架爬虫【进阶】-spiders用法
  12. element-ui下载到本地方法(python 或java)
  13. 斐讯n1做服务器性能,斐讯N1:系统配置优化
  14. 【数据结构与算法 - 数据结构基础】什么是数据结构?
  15. 一、JSX语法的基本使用
  16. 面试不是无情物,参数注解知多少?
  17. unity人物刚体移动_教程篇 | Unity人物移动动画
  18. #遗憾#重重的挫败感再次袭来!!!
  19. 社交类App如何防黑产垃圾用户?
  20. P1209 [USACO1.3]修理牛棚 Barn Repair

热门文章

  1. 基于STM32的PWM电机驱动TB6612、A4950
  2. GoLand 连接远程代码库
  3. apt 安装软件出现“无法定位软件包”的问题
  4. pdf转的html 360看不了,360浏览器看不了pdf
  5. imdisk 想说爱你不容易
  6. Qt入门教程【高级控件篇】QTreeView树形视图
  7. linux下电路仿真软件下载,Virtual Breadboard免费版
  8. VirtualXposed 免ROOT使用Xposed模块
  9. 75. 颜色分类(图解)
  10. MATLAB_图形学_形态学课程_5个车牌扣出车牌照片