【题目描述】

计算两个矩阵的乘法。n×m阶的矩阵A乘以m×k阶的矩阵B得到的矩阵C 是n×k阶的,且C[i][j] = A[i][0]×B[0][j] + A[i][1]×B[1][j] + …… +A[i][m-1]×B[m-1][j](C[i][j]表示C矩阵中第i行第j列元素)。

第一行为n, m, k,表示A矩阵是n行m列,B矩阵是m行k列,n, m, k均小于100。 然后先后输入A和B两个矩阵,A矩阵n行m列,B矩阵m行k列,矩阵中每个元素的绝对值不会大于1000。

输出矩阵C,一共n行,每行k个整数,整数之间以一个空格分开。

【输入样例】

3 2 3
1 1
1 1
1 1
1 1 1
1 1 1

【输出样例】

2 2 2
2 2 2
2 2 2

#include <iostream>
using namespace std; 
int main() 
    int n,m,k;
    int i,j,l;
    cin>>n>>m>>k;//输入矩阵列数、行数
    int a[n+1][m+1],b[m+1][k+1],c[n+1][k+1]={0};     //初始化等于0不能少
    for(i=1;i<=n;i++)//输入第一个矩阵
        for(j=1;j<=m;j++)
            cin>>a[i][j];
    for(i=1;i<=m;i++)//输入第二个矩阵
        for(j=1;j<=k;j++)
            cin>>b[i][j];
    for(i=1;i<=n;i++)//计算矩阵C
        for(j=1;j<=k;j++)
            for(l=1;l<=m;l++)
            c[i][j]+=a[i][l]*b[l][j];
    for(i=1;i<=n;i++)//输出n*k阶的矩阵C
        for(j=1;j<=k;j++)
            cout<<c[i][j]<<" ";
		cout<<endl;
    return 0;
                    【题目描述】计算两个矩阵的乘法。n×m阶的矩阵A乘以m×k阶的矩阵B得到的矩阵C 是n×k阶的,且C[i][j] = A[i][0]×B[0][j] + A[i][1]×B[1][j] + …… +A[i][m-1]×B[m-1][j](C[i][j]表示C矩阵中第i行第j列元素)。【输入】第一行为n, m, k,表示A矩阵是n行m列,B矩阵是m行k列,n, m, k均小于100。 然后先后输入A和B两个矩阵,A矩阵n行m列,B矩阵m行k列,矩阵中每个元素的绝对值不会大于1000。【输出】输出矩阵
				
编写一个函数实现M行K列矩阵与K行N列矩阵的乘法。设A为M行K列矩阵,B为K行N列矩阵,则C=A×B,乘积C为M行N列矩阵。 (阵乘法的规则是:设A[m,k],B[k,n],则C[m,n]= A[m,k] ×B[k,n]。) 问题分析:定义两个二维矩阵A[X][X],B[X][X],输入A B的元素,C[i][j]=∑A[i][k]*B[k][i],最后输出C。
void MatrixMultiple(float matrix1[MATRIX1_ROW][MATRIX1_COL], float matrix2[MATRIX2_ROW][MATRIX2_COL], float getMatrixMultiple[MATRIX1_ROW][MATRIX2_COL]) //vector<Vec3f> robotPoint; memset(getMatrixMultiple,
##逆矩阵的性质和求法 逆矩阵的性质 性质1: A可逆⇒∣A−1∣=1∣A∣A可逆\Rightarrow|A^{-1}| = \frac{1}{|A|}A可逆⇒∣A−1∣=∣A∣1​ 性质2: A可逆⇒A−1可逆,(A−1)−1=AA可逆\Rightarrow A^{-1}可逆, (A^{-1})^{-1}=AA可逆⇒A−1可逆,(A−1)−1=A 性质3: AB=E(orBA=E)⇒B=A−1AB=E(or BA=E) \Rightarrow B=A^{-1}AB=E(orBA=E)⇒B=A−1 我们在这一篇《模式识别、推荐系统中常用的两种矩阵分解-----奇异值分解和非负矩阵分解 》中详细介绍了矩阵奇异值分解的数学证明,我们沿用这一篇的博文的符号,继续讨论这一章的内容。 矩阵的奇异值分解定理: 设矩阵,秩为,,则该矩阵可以分解为: 也可以表示为:
【题目描述】 计算两个矩阵的乘法。n×m阶的矩阵A乘以m×k阶的矩阵B得到的矩阵C 是n×k阶的,且C[i][j] = A[i][0]×B[0][j] + A[i][1]×B[1][j] + …… +A[i][m-1]×B[m-1][j](C[i][j]表示C矩阵中第i行第j列元素)。 第一行为n, m, k,表示A矩阵是n行m列,B矩阵是m行k列,n, m, k均小于100。 提交数: 14556 通过数: 7513 【题目描述】 计算两个矩阵的乘法。n×m阶的矩阵A乘以m×k阶的矩阵B得到的矩阵C 是n×k阶的,且C[i][j] = A[i][0]×B[0][j] + A[i][1]×B[1][j] + …… +A[i][m-1]×B[m-1]j。 第一行为...
int A[size][size], B[size][size], C[size][size], D[size][size]; int E[size][size], F[size][size], G[size][size], H[size][size]; int P1[size][size], P2[size][size], P3[size][size], P4[size][size], P5[size][size], P6[size][size], P7[size][size]; int tmp1[size][size], tmp2[size][size]; // 拆分矩阵 int i, j; for (i = 0; i < size; i++) { for (j = 0; j < size; j++) { A[i][j] = a[i][j]; B[i][j] = a[i][j + size]; C[i][j] = a[i + size][j]; D[i][j] = a[i + size][j + size]; E[i][j] = b[i][j]; F[i][j] = b[i][j + size]; G[i][j] = b[i + size][j]; H[i][j] = b[i + size][j + size]; // 计算P1到P7 sub_matrix(F, H, tmp1); strassen_mul(A, tmp1, P1); add_matrix(A, B, tmp1); strassen_mul(tmp1, H, P2); add_matrix(C, D, tmp1); strassen_mul(tmp1, E, P3); sub_matrix(G, E, tmp1); strassen_mul(D, tmp1, P4); add_matrix(A, D, tmp1); add_matrix(E, H, tmp2); strassen_mul(tmp1, tmp2, P5); sub_matrix(B, D, tmp1); add_matrix(G, H, tmp2); strassen_mul(tmp1, tmp2, P6); sub_matrix(A, C, tmp1); add_matrix(E, F, tmp2); strassen_mul(tmp1, tmp2, P7); // 计算结果矩阵 add_matrix(P5, P4, tmp1); sub_matrix(tmp1, P2, tmp2); add_matrix(tmp2, P6, c[0]); add_matrix(P1, P2, c[1]); add_matrix(P3, P4, c[2]); add_matrix(P5, P1, tmp1); sub_matrix(tmp1, P3, tmp2); sub_matrix(tmp2, P7, c[3]); int main() int a[N][N] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}}; int b[N][N] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}}; int c[N][N]; int i, j; strassen_mul(a, b, c); printf("Result:\n"); for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { printf("%d ", c[i][j]); printf("\n"); return 0; 本代码中定义了THRESHOLD变量,当矩阵大小小于等于阈值时,使用标准矩阵乘法算法计算。简单起见,本代码中矩阵大小固定为4 * 4,可以根据需要修改。
#include <bits/stdc++.h> using namespace std; int main(){ int a,b,c; cin>>a>>b; c=a; a=b; b=c; cout<<"a="<<a<<" "<<"b="<<b; return 0; } Eason魏宇轩 要借助另一个变量 #include <bits/stdc++.h> using namespace std; int main(){ int a,b,c; cin>>a>>b; c=a; a=b; b=c; cout<<"a="<<a<<" "<<"b="<<b; return 0; } [恭喜发财] [Done] Eason魏宇轩 #include<bits/stdc++.h> using namespace std; int main(){ int a,b,c; cin>>a>>b; c=a; a=b; b=c; cout<<a<<" "<<b; return 0; } #include <bits/stdc++.h> using namespace std; int main(){ int a,b,c; cin>>a>>b; c=a; a=b; b=c; cout<<"a="<<a<<" "<<"b="<<b; return 0; } [100分] 亿条小咸鱼 可以100分,但变量没变。 陆星辰练习生 [Done] 他不输出,我没办法。 要个中间值 许祺峥(许祺峥) #include<bits/stdc++.h> [加一][加一] 必须喝雪碧 [忙疯了] 戴瑞辰(朱文平) 马子恒+张家港市杨舍实验学校 借一个空杯 #include <bits/stdc++.h> using namespace std; int main() { int a,b,c; cin>>a>>b; c=a; a=b; b=c; cout<<