题目描述
编写矩阵类Matrix,包含以下成员变量:整数变量 row_size, col_size, 分别表示矩阵的行数与列数,整数的二维数组 values[][],表示一个整数矩阵. 包含以下成员方法:
void setMatrix(int m, int n)方法: 参变量 m,n分别赋值给成员变量 row_size, col_size, 并由键盘输入,完成 values 数组元素的赋值。
void setMatrix(int m, int n, int v[][]) 方法: 参变量 m,n分别赋值给成员变量 row_size, col_size, 并将参变量 的 v数组 赋值给 成员变量 values 数组。
Matrix add(Matrix m),方法:求当前对象对应的矩阵 与 参变量 m 矩阵的 和矩阵,作为返回值返回。
Matirx mul(Matrix m) 方法:求当前对象对应的矩阵 与 参变量 m 矩阵的 积矩阵,作为返回值返回。
void print() 方法:完成当前对象的 成员变量 values数组 的输出;
Main类已经编写好如下:
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Matrix m1 = new Matrix();
int v1[][] = {{1,0}, {0,1},{1,1}};
m1.setMatrix(3,2,v1);
int v2[][] = {{1,2}, {3,4},{5,6}};
Matrix m2 = new Matrix();
m2.setMatrix(3,2,v2);
Matrix m3 = m1.add(m2);
m3.print(); //输出m1与m2两个矩阵的和矩阵
System.out.println();
Matrix m4 = new Matrix();
m4.setMatrix(2,3); //完成m4矩阵的初始化,其间需要从键盘输入2行3列的整数矩阵
Matrix m5 = m1.mul(m4);
m5.print(); //输出m1与m4两个矩阵的积矩阵
}
}
输入
输入一个2行3列的整数矩阵( m4.setMatrix(2,3) 语句 )
输出
先输出m1+m2 矩阵,再输出m1*m4矩阵;行内整数用一个空格隔开;两个矩阵间包含一个空行。
样例输入
1 1 1 1 1 1
样例输出
2 2 3 5 6 7 1 1 1 1 1 1 2 2 2
提示
两个矩阵的和 为 两个矩阵对应元素的和 组成的矩阵;
两个矩阵的积的计算规则,请查看Problem 1063:
Sign Up Login
http://www.gdufoj.space/problem.php?id=1063
//定义Matrix类
class Matrix{
//声明成员变量
public int row_size;
public int col_size;
public int values[][];
//成员方法
public void setMatrix(int m,int n) {
Scanner reader = new Scanner(System.in);
row_size = m;
col_size = n;
this.values = new int[row_size][col_size];
for(int i=0;i<row_size;i++) {
for(int j=0;j<col_size;j++) {
values[i][j] = reader.nextInt();
}
}
}
public void setMatrix(int m,int n,int v[][]) {
row_size = m;
col_size = n;
values = v;
}
public Matrix add(Matrix m) {
Matrix he = new Matrix();
he.row_size = this.row_size;
he.col_size = this.col_size;
he.values = new int[row_size][col_size];
for(int i=0;i<row_size;i++){
for(int j=0;j<col_size;j++){
he.values[i][j] = this.values[i][j]+m.values[i][j];
}
}
return he;
}
public Matrix mul(Matrix m) {
Matrix ji = new Matrix();
ji.row_size = this.row_size;
ji.col_size = m.col_size;
ji.values = new int[ji.row_size][ji.col_size];
for(int i=0;i<ji.row_size;i++){
for(int j=0;j<ji.col_size;j++){
for(int k=0;k<m.row_size;k++){
ji.values[i][j] += this.values[i][k]*m.values[k][j];
}
}
}
return ji;
}
public void print() {
for(int i=0;i<row_size;i++) {
for(int j=0;j<col_size;j++) {
System.out.print(values[i][j]+" ");
}
System.out.println();
}
}
}
这篇博客介绍了如何使用Java编写一个矩阵类Matrix,包括设置矩阵大小、初始化矩阵、计算矩阵加法和乘法的方法。Matrix类还包含了打印矩阵的功能。文章通过样例输入输出展示了矩阵加法和乘法的计算规则,并提供了相关问题的链接。
6027

被折叠的 条评论
为什么被折叠?



