Матрица Тёплица на Java


Матрица Тёплица (диагонально-постоянная матрица) - это такая матрица, в которой на всех диагоналях, параллельных главной, расположены одинаковые элементы. В коде ниже я покажу вам, как создать (заполнить) такую матрицу, вывести на экран, а также проверить, является ли матрица матрицей Тёплица.

public class MyClass {
//метод проверки    
public static boolean isMatrix(int[][] mat) {
    int m=mat.length;
    int n=mat[0].length;
    for(int i=0; i<m; i++){
        for(int j=0; j<n; j++){
            if(i+1<m && j+1<n && mat[i][j]!=mat[i+1][j+1]){
                return false;
            }
        }        
    }
    return true;
}    
    
    public static void main(String args[]) {
//параметры матрицы        
    int size = 10;
    int a1[][] = new int[size][size];
    int data[] = new int[size];
    data[0] = 8;
    data[1] = 2;
    data[2] = 4;
    data[3] = 9;

//заполнение матрицы
    for(int i=4; i<size; i++){
        data[i] = 0;
    }
    for(int i=0; i<size; i++)
    {
 for(int j=0; j<size; j++) {
    if(j>i){
        a1[i][j] = data[j-i];
    }else if(j==i){
        a1[i][j] = data[0];
    }else{
        a1[i][j] = data[i-j];
    }
}
    }
  
//вывод матрицы на экран  
   for(int i=0; i<size; i++){
        for(int j=0; j<size; j++) {
        System.out.print(a1[i][j]+" ");
        }
         System.out.println("");
   }
System.out.println("");   
   
// Готовим консоль к выводу кириллицы
String str1 = "Это Матрица Тёплица";
String str2 = "Увы, это не Матрица Тёплица";
try{
System.setOut(new java.io.PrintStream(System.out, true, "UTF-8"));
}
catch (Exception ex) {}

//проверка
if  (isMatrix(a1)) System.out.println(str1);  
else System.out.println(str2); 
    }
}
И вот что у нас получается:

Матрица Тёплица

Есть вопросы? Пишите и я с удовольствием за небольшую плату помогу вам решить онлайн задачи по Java и не только.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегизаметки, java, математика, линейная алгебра, матрица




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Урок 14. Отмена задачи C#
RssUp – быстрый rss клиент для фриланса и не только
Урок 24. Получение информации DateTime C#