前言
是不是有的小伙伴已经学习了线性代数,但只知道它对于我们以后计算机的学习有帮助,却不知道具体体现在哪?
今天作者就带你们了解一些简单的题目。让你知道你的线性代数没有白学!!!
四道简单的矩阵题目
作者保证一定基础!编程小白也能看懂哦~
矩阵相等判定
题目描述:
系统给出两个 n*m 的矩阵,如果两个矩阵相等,就输出Yes,否则输出No。
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner (System.in);
int n=in.nextInt();
int m=in.nextInt();
int [][]a=new int [n][m];
int [][]a1=new int [n][m];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
a[i][j]=in.nextInt();
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
a1[i][j]=in.nextInt();
if(a[i][j]==a1[i][j])
{
continue;
} else {
System.out.print("No");
return;
}
}
}
System.out.print("Yes");
}
}
上三角矩阵判定
题目描述:
系统给出一个n*n的矩阵,判断该矩阵是否是上三角矩阵。是输出Yes,否则输出No。
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner (System.in);
int n=in.nextInt();
int [][]a=new int [n][n];
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
a[i][j]=in.nextInt();
}
}
for(int i=1;i<n;i++){
for(int j=0;j<i;j++){
//注意这里的条件,j<i,判断下三角矩阵
if(a[i][j]==0){
continue;
}else {
System.out.println("NO");
return ;
}
}
}
System.out.println("YES");
}
}
矩阵转置
题目描述:
系统给出n * m的矩阵,转置为m*n的矩阵。最后打印m * n的矩阵。
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner (System.in);
int n=in.nextInt();
int m=in.nextInt();
int [][]a=new int [n][m];
int [][]a1=new int [m][n];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
a[i][j]=in.nextInt();
a1[j][i]=a[i][j]; //行等于列,列等于行
}
}
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
System.out.print(a1[i][j]+" ");
}
System.out.print("\n");
}
}
}
矩阵交换
题目描述:
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner (System.in);
int n=in.nextInt();
int m=in.nextInt();
int [][]a=new int [n][m];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
a[i][j]=in.nextInt();
}
}
int k=in.nextInt();
while(k!=0){
String t=in.next();
int c=in.nextInt()-1;
int c1=in.nextInt()-1;
if(t.equals("r")){
//进行行变换,列不变
for(int j=0;j<m;j++){
int temp=a[c][j];
a[c][j]=a[c1][j];
a[c1][j]=temp;
}
}else if(t.equals("c")){
//进行列变换,行不变
for(int i=0;i<n;i++){
int temp=a[i][c1];
a[i][c1]=a[i][c];
a[i][c]=temp;
}
}
k--;
}
for(int i=0;i<n;i++){
//打印
for(int j=0;j<m;j++){
System.out.print(a[i][j]+" ");
}
System.out.print("\n");
}
}
}
上述题目来源:牛客网
最后,如果觉得作者写的不错的话,可以给一个点赞或者关注再走哦~