【入门必备】线性代数与编程语言能摩擦出怎样的火花?

前言

是不是有的小伙伴已经学习了线性代数,但只知道它对于我们以后计算机的学习有帮助,却不知道具体体现在哪?
今天作者就带你们了解一些简单的题目。让你知道你的线性代数没有白学!!!

在这里插入图片描述

四道简单的矩阵题目

作者保证一定基础!编程小白也能看懂哦~

矩阵相等判定

题目描述:

系统给出两个 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");
            }
    }
}

上述题目来源:牛客网
最后,如果觉得作者写的不错的话,可以给一个点赞或者关注再走哦~

おすすめ

転載: blog.csdn.net/weixin_62633072/article/details/122287182