java第七周封装一类对矩阵操作的对象,该类对象能够对矩阵进行运算,如矩阵中数据的位置变换功能、矩阵的加法功能、矩阵的乘法功能。

/* (程序头部注释开始)
 * 程序的版权和版本声明部分
 * Copyright (c) 2011, 烟台大学计算机学院学生 
 * All rights reserved.
 * 文件名称:
 * 作 者: 石丽君
 * 完成日期:
 * 版 本 号: V1.0 
 * 对任务及求解方法的描述部分
 * 输入描述: 封装一类对矩阵操作的对象,该类对象能够对矩阵进行运算,如矩阵中数据的位置变换功能、矩阵的加法功能、矩阵的乘法功能。
 * 问题描述:
 * 程序输出:
 * 程序头部的注释结束
 */ 
Matrix类
 

package com.slj;

public class Matrix {
private int line ,clomn;
private int [][]a;
public Matrix(){
	line=0;
	clomn=0;
}
public Matrix(int line,int clomn){
	this.line=line;
	this.clomn=clomn;
	a=new int[line][clomn];
	for(int i=0;i<line;i++)
		for(int j=0;j<clomn;j++){
			a[i][j]=0;
		}
}
void set_number(int line,int clomn,int number){
	a[line-1][clomn-1]=number;
}
int geta(int line,int clomn){
	return a[line][clomn];
}
void print(){
	if(line==0&&clomn==0){
		System.out.println("该矩阵不存在");
	}else{
	for(int i=0;i<line;i++){
		for(int j=0;j<clomn;j++){
			System.out.print(a[i][j]+" ");
		}
	System.out.println();
	}
	}
}
}
Testmain类
 

package com.slj;

public class Testmain {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Matrix matrix=new Matrix(2,2);
		System.out.println("初始矩阵为:");
		matrix.print();
		Matrix matrix1=new Matrix(2,2);
		matrix1.set_number(2,2,1);
		matrix1.set_number(1,1,1);
		System.out.println("改变值后的矩阵a为:");
		matrix1.print();
		Matrix matrix2=new Matrix(2,2);
		matrix2.set_number(1,2,1);
		matrix2.set_number(2,1,1);
		System.out.println("改变值后的矩阵b为:");
		matrix2.print();
		int x1=0,x2=0,y1=0;
		x1=matrix1.geta(1,1);
		x2=matrix2.geta(1,1);
		y1=x1+x2;
		System.out.println("a[0][0]+b[0][0]="+y1);
	}

}

运行结果:

初始矩阵为:
0 0
0 0
改变值后的矩阵a为:
1 0
0 1
改变值后的矩阵b为:
0 1
1 0
a[0][0]+b[0][0]=1

好的,我来回答你的问题。 首先,我需要说明一下,Python的类和对象是面向对象编程的基础,可以用来封装数据和行为,以及实现代码的复用和模块化。在这个问题,我们可以使用类和对象来实现稀疏矩阵的三元组顺序表表示法。 下面是一个可能的实现方式: ```python class SparseMatrix: def __init__(self, row, col, data): self.row = row self.col = col self.data = data def __add__(self, other): if self.row != other.row or self.col != other.col: raise ValueError("Matrix size mismatch") result = [] i, j = 0, 0 while i < len(self.data) and j < len(other.data): if self.data[i][0] < other.data[j][0] or (self.data[i][0] == other.data[j][0] and self.data[i][1] < other.data[j][1]): result.append(self.data[i]) i += 1 elif self.data[i][0] > other.data[j][0] or (self.data[i][0] == other.data[j][0] and self.data[i][1] > other.data[j][1]): result.append(other.data[j]) j += 1 else: result.append((self.data[i][0], self.data[i][1], self.data[i][2] + other.data[j][2])) i += 1 j += 1 while i < len(self.data): result.append(self.data[i]) i += 1 while j < len(other.data): result.append(other.data[j]) j += 1 return SparseMatrix(self.row, self.col, result) ``` 这个类,我们使用三个属性来表示稀疏矩阵,分别是行数、列数和非零元素的三元组。在 `__add__` 方法,我们首先判断两个矩阵的大小是否相同,如果不同就抛出异常。然后使用两个指针 `i` 和 `j` 分别遍历两个矩阵的三元组,按照行列顺序比较大小,将较小的元素添加到结果。如果行列相等,就将两个元素的值相加。最后,将剩余的元素添加到结果,并返回一个新的稀疏矩阵。 使用这个类,我们可以按照以下方式创建两个稀疏矩阵,并对它们进行加法运算: ```python A = SparseMatrix(3, 3, [(0, 0, 1), (0, 2, 2), (1, 1, 3)]) B = SparseMatrix(3, 3, [(0, 1, 4), (1, 0, 5), (2, 2, 6)]) C = A + B print(C.data) # [(0, 0, 1), (0, 1, 4), (0, 2, 2), (1, 0, 5), (1, 1, 3), (2, 2, 6)] ``` 这里我们创建了两个 $3\times 3$ 的矩阵 A 和 B,然后对它们进行加法运算,得到一个新的稀疏矩阵 C,最后输出了 C 的三元组表示法。 希望这个答案能够帮到你!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值