1. Створено матрицю 3 x 4, заповнити її числами 0 і 1 так, щоб в одному рядку була рівно одна одиниця, і вивести на екран.
2. Створити і вивести на екран матрицю 2 x 3, заповнену випадковими числами з [0, 9].
3. Дана матриця. Вивести на екран перший і останній стовпці.
4. Дана матриця. Вивести на екран перший і останній рядки.
5. Дана матриця. Вивести на екран всі рядки з парними номерами.
6. Дана матриця. Вивести на екран всі непарні стовпці.
7. Дан двомірний масив 5 × 5. Знайти суму модулів негативних непарних елементів.
8. Дан двоdbмірний масив n × m елементів. Визначити, скільки разів зустрічається число 7 серед елементів масиву.
9. Дана квадратна матриця. Вивести на екран елементи, які стоять на головній діагоналі.
10. Дана матриця. Вивести k-й рядок і p-й стовпець матриці.
Відповідь:
public class TMat1 { public static void main(String[] args) { int[][] matrix = {{0, 1, 0, 0}, {1, 0, 0, 0}, {0, 0, 1, 0}}; for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < matrix[i].length; j++) { System.out.printf("%3d ", matrix[i][j]); } System.out.println(); } } }
Відповідь:
public class TMat2 { public static void main(String[] args) { Matrix m = new Matrix(2, 3, 0, 9); System.out.println(m.toString()); } }
Відповідь:
public class TMat3 { public static void main(String[] args) { Matrix m = new Matrix(5, 5, 0, 10); System.out.println(m.toString()); System.out.println("Перший стовпець"); for (int i = 0; i < m.getN(); i++) { System.out.printf("%3d%n", m.getColumn(0)[i]); } System.out.println("Останній стовпець"); for (int i = 0; i < m.getN(); i++) { System.out.printf("%3d%n", m.getColumn(m.getM() - 1)[i]); } } }
Відповідь:
public class TMat4 { public static void main(String[] args) { Matrix m = new Matrix(6, 0, 10); System.out.println(m.toString()); System.out.println("Перший рядок"); for (int i = 0; i < m.getM(); i++) { System.out.printf("%3d", m.getRow(0)[i]); } System.out.println("\nОстанній рядок"); for (int i = 0; i < m.getM(); i++) { System.out.printf("%3d", m.getRow(m.getN() - 1)[i]); } } }
Відповідь:
public class TMat5 { public static void main(String[] args) { Matrix m = new Matrix(5, 5, 0, 10); System.out.println(m.toString()); for (int i = 1; i < m.getN(); i += 2) { for (int j = 0; j < m.getM(); j++) { System.out.printf("%3d", m.getRow(i)[j]); } System.out.println(); } } }
Відповідь:
public class TMat6 { public static void main(String[] args) { Matrix m = new Matrix(5, 5, 0, 10); System.out.println(m.toString()); for (int i = 0; i < m.getM(); i += 2) { for (int j = 0; j < m.getN(); j++) { System.out.printf("%3d", m.getColumn(i)[j]); } System.out.println(); } } }
Відповідь:
import static java.lang.Math.abs; public class TMat7 { public static void main(String[] args) { Matrix m = new Matrix(2, 2, -10, 10); System.out.println(m.toString()); int sum = 0; int element; for (int i = 0; i < m.getN(); i++) { for (int j = 0; j < m.getM(); j++) { element = m.getElement(i, j); if (element % 2 == -1 && element < 0) { sum += abs(element); } } } System.out.println("Сума модулів непарних від'ємних елементів " + sum); } }
Відповідь:
public class TMat8 { public static void main(String[] args) { Matrix m = new Matrix(10, 10, 0, 10); System.out.println(m.toString()); int count = 0; for (int i = 0; i < m.getN(); i++) { for (int j = 0; j < m.getM(); j++) { if (m.getElement(i, j) == 7) { count++; } } } System.out.println("Кількість елементів =7 -> " + count); } }
Відповідь:
public class TMat9 { public static void main(String[] args) { Matrix m = new Matrix(5, 2, 2); System.out.println(m.toString()); System.out.println("Елементи головної діаганалі"); for (int i = 0; i < m.getN(); i++) { System.out.printf("%3d", m.getElement(i, i)); } } }
Відповідь:
import java.util.Arrays; import java.util.Scanner; public class TMat10 { public static void main(String[] args) { Matrix m = new Matrix(5, 10, 0, 10); System.out.println(m.toString()); System.out.println("Який рядок вивести? Від 1 до " + m.getN() + " -> "); int n = new Scanner(System.in).nextInt(); System.out.println(Arrays.toString(m.getRow(n - 1))); System.out.println("Який стовпець вивести? Від 1 до " + m.getM() + " -> "); n = new Scanner(System.in).nextInt(); System.out.println(Arrays.toString(m.getColumn(n - 1))); } }
Відповідь:
public class TMat11 { public static void main(String[] args) { Matrix m = new Matrix(5, 4, 0, 10); System.out.println(m.toString()); System.out.println("Змінена матриця"); int[] temp = new int[m.getM()]; for (int i = 0; i < m.getN(); i++) { temp = m.getRow(i); if (i % 2 == 0) { for (int j = temp.length - 1; j >= 0; j--) { System.out.printf("%3d", temp[j]); } } else { for (int j = 0; j < temp.length; j++) { System.out.printf("%3d", temp[j]); } } System.out.println(); } } }
Відповідь:
public class TMat12 { public static void main(String[] args) { Matrix m = new Matrix(10, 1, 0, 0); for (int j = 0; j < m.getM(); j++) { m.setElement(1, 0, j); m.setElement(1, m.getN() - 1, j); } for (int i = 0; i < m.getN(); i++) { m.setElement(1, i, 0); m.setElement(1, i, m.getM() - 1); } System.out.print(m.toString()); } }
Відповідь:
public class TMat13 { public static void main(String[] args) { Matrix m = new Matrix(10, 1, 1); for (int i = 0; i < m.getN(); i++) { for (int j = i; j < m.getM(); j++) { if(i==j){ m.setElement(3,i,j); }else { m.setElement(2,i,j); } } } System.out.println(m.toString()); } }
Відповідь:
public class TMat14 { public static void main(String[] args) { Matrix m = new Matrix(10, 0, 9); for (int i = 0; i < m.getN(); i++) { m.setElement(1, i, m.getN() - i - 1); } System.out.println(m.toString()); } }
Відповідь:
public class TMat15 { public static void main(String[] args) { Matrix m = new Matrix(3, 1, 0, 0); m.setElement(1,0,0); m.setElement(1,0,m.getM()-1); m.setElement(1,m.getN()-1,0); m.setElement(1,m.getN()-1,m.getM()-1); System.out.println(m.toString()); } }
Відповідь:
import java.util.Random; public class TMat16 { public static void main(String[] args) { Random random = new Random(); Matrix m = new Matrix(10, 1, 1); for (int i = 0; i < m.getN(); i++) { m.setElement(random.nextInt(9) + 1, i, i); } System.out.println(m.toString()); } }
Відповідь:
import java.util.Random; public class TMat17 { public static void main(String[] args) { Matrix matrix = new Matrix(5, -10, 10); modifyMatrix(matrix); System.out.println(matrix.toString()); } private static void modifyMatrix(Matrix matrix) { int sum; Random random = new Random(); int rElem; int value; for (int i = 0; i < matrix.getN(); i++) { sum = getSumRow(matrix.getRow(i)); rElem = random.nextInt(matrix.getM()); sum -= matrix.getElement(i, rElem); value = i + 1 - sum; matrix.setElement(value, i, rElem); } } private static int getSumRow(int[] row) { int sum = 0; for (int i = 0; i < row.length; i++) { sum += row[i]; } return sum; } }
Відповідь:
public class TMat18 { public static void main(String[] args) { Matrix matrix = new Matrix(10, 2, 0, 5); System.out.println(matrix.toString()); changeMatrix(matrix); System.out.println(matrix.toString()); } private static void changeMatrix(Matrix matrix) { int[] temp = matrix.getRow(matrix.getN() - 2); matrix.setRow(matrix.getRow(matrix.getN() - 1), matrix.getN() - 2); matrix.setRow(temp, matrix.getN() - 1); } }
Відповідь:
import java.util.Random; public class TMat19 { public static void main(String[] args) { Matrix matrix = new Matrix(5, 5, 0, 0); changeMatrix(matrix); System.out.println(matrix.toString()); } private static void changeMatrix(Matrix matrix) { Random random = new Random(); int i; int j; for (int k = 0; k < matrix.getN(); k++) { do { i = random.nextInt(matrix.getN()); j = random.nextInt(matrix.getM()); } while (matrix.getElement(i, j) == 1); matrix.setElement(1, i, j); } } }
Відповідь:
import java.util.Scanner; public class TMat20 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Кількість рядків ->"); int n = scanner.nextInt(); System.out.print("Кількість стовбців ->"); int m = scanner.nextInt(); System.out.println("Вкажіть набір чисел"); Matrix matrix = new Matrix(n, m, 0, 0); int temp; for (int i = 0; i < n; i++) { System.out.print(i + 1 + " число -> "); temp = scanner.nextInt(); for (int j = 0; j < m; j++) { matrix.setElement(temp, i, j); } } System.out.println("\nШукана матриця\n"); System.out.println(matrix.toString()); } }
Відповідь:
import java.util.Random; public class TMat21 { public static void main(String[] args) { Matrix matrix = new Matrix(2, 1, 1); changeMatrix(matrix); System.out.println(matrix.toString()); } private static void changeMatrix(Matrix matrix) { Random random = new Random(); int j; for (int i = 0; i < matrix.getN(); i++) { j = random.nextInt(matrix.getM()); matrix.setElement(0, i, j); } } }
Відповідь:
import java.util.Random; public class TMat22 { private static Random random = new Random(); private static Matrix matrix = new Matrix(10, 0, 0); public static void main(String[] args) { changeMatrix(matrix); System.out.println(matrix.toString()); } private static void changeMatrix(Matrix matrix) { for (int j = 0; j < matrix.getM(); j++) { if (j >= matrix.getN()) { matrix.setColumn(setAllOne(), j); } else { matrix.setColumn(setOne(j+1), j); } } } private static int[] setOne(int i) { int[] temp = new int[matrix.getN()]; int index; for (int j = 0; j < i; j++) { do { index = random.nextInt(temp.length); } while (temp[index] == 1); temp[index] = 1; } return temp; } private static int[] setAllOne() { int[] temp = new int[matrix.getN()]; for (int i = 0; i < temp.length; i++) { temp[i] = 1; } return temp; } }
Відповідь:
public class TMat23 { public static void main(String[] args) { Matrix matrix = new Matrix(3, -1, 1); System.out.println(matrix.toString()); int sum = getSumElem(matrix); System.out.println("Сума елементів = " + sum); } private static int getSumElem(Matrix matrix) { int sum = 0; for (int i = 0; i < matrix.getN(); i++) { for (int j = 0; j < matrix.getM(); j++) { sum += matrix.getElement(i, j); } } return sum; } }
Відповідь:
import java.util.Arrays; public class TMat24 { public static void main(String[] args) { Matrix matrix = new Matrix(3, 10, -10, 10); System.out.println(matrix.toString()); changeMatrix(matrix); System.out.println(matrix); } private static void changeMatrix(Matrix matrix) { int[] temp; for (int i = 0; i < matrix.getN(); i++) { temp = matrix.getRow(i); Arrays.sort(temp, secondNegativeElement(temp), matrix.getM()); matrix.setRow(temp, i); } } private static int secondNegativeElement(int[] row) { int count = -1; for (int i = 0; i < row.length; i++) { if (row[i] < 0) { count++; } if (count == 1) { return i+1; } } return row.length - 1; } }
Відповідь:
import java.util.Arrays; public class TMat25 { public static void main(String[] args) { Matrix matrix = new Matrix(10, -10, 10); System.out.println(matrix.toString()); getInfoMinElement(matrix); } private static void getInfoMinElement(Matrix matrix) { System.out.println("Найменьші елементи в кожному рядку"); for (int i = 0; i < matrix.getN(); i++) { minElement(matrix.getRow(i), i); } } private static void minElement(int[] row, int i) { Arrays.sort(row); System.out.println(i + 1 + " рядок: " + row[0]); } }
Відповідь:
public class TMat26 { public static void main(String[] args) { Matrix matrix = new Matrix(1, 0, 10); System.out.println("Початкова матриця"); System.out.println(matrix.toString()); int[] temp = matrix.getRow(0); matrix.setRow(matrix.getRow(matrix.getN() - 1), 0); matrix.setRow(temp, matrix.getN() - 1); System.out.println("\nЗмінена матриця"); System.out.println(matrix.toString()); } }
Відповідь:
public class TMat27 { public static void main(String[] args) { Matrix matrix = new Matrix(1, 2, 0, 20); System.out.println(matrix.toString()); getInfo(matrix); } private static void getInfo(Matrix matrix) { for (int i = 0; i < matrix.getN(); i++) { if (isRise(matrix.getRow(i))) { System.out.println(i + 1 + " рядок зростає."); } } } private static boolean isRise(int[] row) { if (row.length == 1) { return false; } for (int i = 0; i < row.length - 1; i++) { if (row[i] >= row[i + 1]) { return false; } } return true; } }
Відповідь:
public class TMat28 { public static void main(String[] args) { Matrix matrix = new Matrix(5, -5, 5); System.out.println(matrix.toString()); getInfo(matrix); } private static void getInfo(Matrix matrix) { long div = divElemRows(matrix.getRow(0)); long temp; int rows = -1; for (int i = 1; i < matrix.getN(); i++) { temp = divElemRows(matrix.getRow(i)); if (div > temp) { div = temp; rows = i + 1; } } System.out.println(rows + " рядок шуканий"); } private static long divElemRows(int[] row) { long temp = 1; for (int i = 0; i < row.length; i++) { temp *= row[i]; } System.out.println(temp); return temp; } }
Відповідь:
public class TMat29 { public static void main(String[] args) { Matrix matrix = new Matrix(5, -2, 2); System.out.println(matrix.toString()); matrix = changeMatrix(matrix); System.out.println(matrix.toString()); } private static Matrix changeMatrix(Matrix matrix) { int index = findMaxZeroMatrix(matrix); return delRow(matrix, index); } private static Matrix delRow(Matrix matrix, int index) { if (index < 0 || index >= matrix.getN()) { return matrix; } Matrix temp = new Matrix(matrix.getN() - 1, matrix.getM(), 0, 0); for (int i = 0, j = -1; i < matrix.getN(); i++) { j++; if (i == index) { i++; } temp.setRow(matrix.getRow(i), j); } return temp; } private static int findMaxZeroMatrix(Matrix matrix) { int count = 0; int temp; int index = -1; for (int i = 0; i < matrix.getN(); i++) { temp = countZero(matrix.getRow(i)); if (count < temp) { count = temp; index = i; } } return index; } private static int countZero(int[] row) { int count = 0; for (int i = 0; i < row.length; i++) { if (row[i] == 0) { count++; } } return count; } }
Відповідь:
import static java.lang.Math.abs; public class TMat30 { static Matrix matrix = new Matrix(5, -10, 10); public static void main(String[] args) { // Matrix matrix=new Matrix(5,-10,10); System.out.println(matrix.toString()); changeMatrix(matrix); System.out.println(matrix); } private static void changeMatrix(Matrix matrix) { int max = findMax(matrix); setElements(matrix, max); } private static void setElements(Matrix matrix, int max) { for (int i = 0; i < matrix.getN(); i++) { for (int j = 0; j < matrix.getM(); j++) { if (abs(matrix.getElement(i, j) % 2) == 1) { matrix.setElement(max, i, j); } } } } private static int findMax(Matrix matrix) { int max = Integer.MIN_VALUE; for (int i = 0; i < matrix.getN(); i++) { for (int j = 0; j < matrix.getM(); j++) { if (matrix.getElement(i, j) > max) { max = matrix.getElement(i, j); } } } return max; } }
Відповідь:
public class TMat31 { public static void main(String[] args) { Matrix matrix = new Matrix(10, 4, 0, 5); System.out.println(matrix.toString()); matrix = getTransposeMatrix(matrix); System.out.println(matrix.toString()); } private static Matrix getTransposeMatrix(Matrix matrix) { Matrix temp = new Matrix(matrix.getM(), matrix.getN(), 0, 0); for (int i = 0; i < temp.getM(); i++) { temp.setColumn(matrix.getRow(i), i); } return temp; } }
Відповідь:
public class TMat32 { public static void main(String[] args) { Matrix matrix = new Matrix(5, 0, 10); System.out.println(matrix.toString()); changeMatrix(matrix); System.out.println(matrix.toString()); } private static void changeMatrix(Matrix matrix) { for (int i = 0; i < matrix.getM() - 1; i++) { for (int j = i + 1; j < matrix.getM(); j++) { if (matrix.getElement(0, i) > matrix.getElement(0, j)) { swapColumn(matrix, i, j); } } } } private static void swapColumn(Matrix matrix, int i, int j) { int[] temp = matrix.getColumn(i); matrix.setColumn(matrix.getColumn(j), i); matrix.setColumn(temp, j); } }
Відповідь:
import java.util.Arrays; public class TMat33 { public static void main(String[] args) { Matrix matrix = new Matrix(5, 0, 10); System.out.println(matrix.toString()); matrix = changeMatrix(matrix); System.out.println(matrix.toString()); } private static Matrix changeMatrix(Matrix matrix) { int[] maxElem = new int[matrix.getN()]; for (int i = 0; i < maxElem.length; i++) { maxElem[i] = getMaxElemRows(matrix.getRow(i)); } int minElemIndex = getMin(maxElem); System.out.println(Arrays.toString(maxElem)); System.out.println("Видалено " + (minElemIndex + 1) + " рядок"); return delRow(matrix, minElemIndex); } private static Matrix delRow(Matrix matrix, int minElemIndex) { Matrix temp = new Matrix(matrix.getN() - 1, matrix.getM(), 0, 0); for (int i = 0, j = 0; i < matrix.getN(); i++, j++) { if (i == minElemIndex) { i++; } temp.setRow(matrix.getRow(i), j); } return temp; } private static int getMin(int[] maxElem) { int min = Integer.MAX_VALUE; int index = -1; for (int i = 0; i < maxElem.length; i++) { if (min > maxElem[i]) { min = maxElem[i]; index = i; } } return index; } private static int getMaxElemRows(int[] row) { int max = Integer.MIN_VALUE; for (int i = 0; i < row.length; i++) { if (max < row[i]) { max = row[i]; } } return max; } }
Відповідь:
public class TMat34 { public static void main(String[] args) { Matrix matrixA = new Matrix(1, 1, -2, 2); Matrix matrixB = new Matrix(1, 1, -2, 2); System.out.println("A"); System.out.println(matrixA.toString()); System.out.println("B"); System.out.println(matrixB.toString()); Matrix multAB = multABMatrix(matrixA, matrixB); System.out.println("A*B"); System.out.println(multAB.toString()); } private static Matrix multABMatrix(Matrix matrixA, Matrix matrixB) { if (matrixA.getM() != matrixB.getN()) { System.out.println("Добуток таких матриць не можливий"); return null; } Matrix temp = new Matrix(matrixA.getN(), matrixB.getM(), 0, 0); int elment; for (int i = 0; i < temp.getN(); i++) { for (int j = 0; j < temp.getM(); j++) { elment = getElemMult(matrixA.getRow(i), matrixB.getColumn(j)); temp.setElement(elment, i, j); } } return temp; } private static int getElemMult(int[] row, int[] column) { int elem = 0; for (int i = 0; i < row.length; i++) { elem += row[i] * column[i]; } return elem; } }
Відповідь:
public class TMat35 { public static void main(String[] args) { Matrix matrix = new Matrix(5, -10, 10); System.out.println(matrix.toString()); matrix = changeMatrix(matrix); System.out.println(matrix.toString()); } private static Matrix changeMatrix(Matrix matrix) { for (int i = 1; i < matrix.getN() - 1; i++) { for (int j = matrix.getM()-i; j < matrix.getM(); j++) { if (i < j) matrix.setElement(0, i, j); } } return matrix; } }
Відповідь:
import java.util.ArrayList; public class TMat36 { public static void main(String[] args) { Matrix matrix = new Matrix(1, 10, -1, 10); System.out.println(matrix.toString()); matrix = changeMatrix(matrix); System.out.println(matrix.toString()); } private static Matrix changeMatrix(Matrix matrix) { ArrayListindexs = getIndexPositiveColumn(matrix); return delAllPositiveColumns(matrix, indexs); } private static ArrayList getIndexPositiveColumn(Matrix matrix) { ArrayList indexs = new ArrayList<>(); for (int i = 0; i < matrix.getM(); i++) { if (notAllPositive(matrix.getColumn(i))) { indexs.add(i); } } return indexs; } private static boolean notAllPositive(int[] column) { for (int i = 0; i < column.length; i++) { if (column[i] <= 0) { return true; } } return false; } private static Matrix delAllPositiveColumns(Matrix matrix, ArrayList indexs) { Matrix temp = new Matrix(matrix.getN(), indexs.size(), 0, 0); for (int i = 0; i < indexs.size(); i++) { temp.setColumn(matrix.getColumn(indexs.get(i)), i); } return temp; } }
Відповідь:
Відповідь:
public class TMat38 { public static void main(String[] args) { Matrix matrix = new Matrix(5, -20, 20); System.out.println(matrix.toString()); matrix = changeMatrix(matrix); System.out.println(matrix); } private static Matrix changeMatrix(Matrix matrix) { int max = findMax(matrix); int min = findMin(matrix); System.out.println("max=" + max + "; min=" + min); int[] maxColumn = matrix.getColumn(max); int[] minColumn = matrix.getColumn(min); int[] newFirstColumn = multColumn(maxColumn, minColumn); if (max == min) { return newMatrix(matrix, newFirstColumn, max); } else { return newMatrix(matrix, newFirstColumn, max, min); } } private static Matrix newMatrix(Matrix matrix, int[] newFirstColumn, int max) { Matrix temp = new Matrix(matrix.getN(), matrix.getM(), 0, 0); temp.setColumn(newFirstColumn, 0); for (int i = 0, j = 1; j < temp.getM(); i++, j++) { if (i == max) { i++; } temp.setColumn(matrix.getColumn(i), j); } return temp; } private static Matrix newMatrix(Matrix matrix, int[] newFirstColumn, int max, int min) { Matrix temp = new Matrix(matrix.getN(), matrix.getM() - 1, 0, 0); temp.setColumn(newFirstColumn, 0); for (int i = 0, j = 1; j < temp.getM(); i++, j++) { while (i == max || i == min) { i++; } temp.setColumn(matrix.getColumn(i), j); } return temp; } private static int[] multColumn(int[] maxColumn, int[] minColumn) { int[] muiltiply = new int[maxColumn.length]; for (int i = 0; i < muiltiply.length; i++) { muiltiply[i] = maxColumn[i] * minColumn[i]; } return muiltiply; } private static int findMin(Matrix matrix) { int min = Integer.MAX_VALUE; int column = -1; for (int i = 0; i < matrix.getN(); i++) { for (int j = 0; j < matrix.getM(); j++) { if (min > matrix.getElement(i, j)) { min = matrix.getElement(i, j); column = j; } } } return column; } private static int findMax(Matrix matrix) { int max = Integer.MIN_VALUE; int column = -1; for (int i = 0; i < matrix.getN(); i++) { for (int j = 0; j < matrix.getM(); j++) { if (max < matrix.getElement(i, j)) { max = matrix.getElement(i, j); column = j; } } } return column; } }
Відповідь:
import java.util.ArrayList; import java.util.Arrays; public class TMat39 { public static void main(String[] args) { Matrix matrix = new Matrix(1, 5, 0, 5); System.out.println(matrix.toString()); Integer[] saddlePoint = getSaddlePoint(matrix); if (saddlePoint.length != 0) { System.out.println("Значення: " + Arrays.toString(saddlePoint)); } else { System.out.println("Сідлові точки в матриці відсутні"); } } private static Integer[] getSaddlePoint(Matrix matrix) { int[] temp; ArrayListal = new ArrayList<>(); int[] minElementsRows = getMin(matrix); int[] maxElementsColumns = getMax(matrix); initArrays(al, minElementsRows, maxElementsColumns); return al.toArray(new Integer[al.size()]); } private static void initArrays(ArrayList al, int[] minElementsRows, int[] maxElementsColumns) { for (int i = 0; i < minElementsRows.length; i++) { for (int j = 0; j < maxElementsColumns.length; j++) { if (minElementsRows[i] == maxElementsColumns[j]) { al.add(minElementsRows[i]); System.out.println("Координати [" + (i + 1) + "; " + (j + 1) + "]"); } } } } private static int[] getMax(Matrix matrix) { int[] max = new int[matrix.getM()]; for (int i = 0; i < matrix.getM(); i++) { max[i] = getMaxInColumns(matrix.getColumn(i)); } return max; } private static int getMaxInColumns(int[] column) { int max = Integer.MIN_VALUE; for (int i = 0; i < column.length; i++) { if (max < column[i]) { max = column[i]; } } return max; } private static int[] getMin(Matrix matrix) { int[] min = new int[matrix.getN()]; for (int i = 0; i < matrix.getN(); i++) { min[i] = getMinInRows(matrix.getRow(i)); } return min; } private static int getMinInRows(int[] row) { int min = Integer.MAX_VALUE; for (int i = 0; i < row.length; i++) { if (min > row[i]) { min = row[i]; } } return min; } }
Відповідь:
import java.util.Arrays; public class TMat40 { public static void main(String[] args) { Matrix matrix = new Matrix(2, 10, -10, 10); System.out.println(matrix.toString()); getInfo(matrix); } private static void getInfo(Matrix matrix) { int[] countElements = new int[matrix.getM()]; for (int i = 0; i < countElements.length; i++) { countElements[i] = getCounts(matrix.getColumn(i), i + 1); } System.out.println(Arrays.toString(countElements)); int minCount = getMin(countElements); System.out.println("Найменьша кількість елементів в стовбці " + minCount); } private static int getMin(int[] countElements) { int min = Integer.MAX_VALUE; int index = -1; for (int i = 0; i < countElements.length; i++) { if (min > countElements[i]) { min = countElements[i]; index = i; } } return index + 1; } private static int getCounts(int[] column, int i) { int count = 0; for (int j = 0; j < column.length; j++) { if (column[j] % (j + 1 + i) == 0) { count++; } } return count; } }
Відповідь:
import java.util.ArrayList; import java.util.Arrays; public class TMat41 { public static void main(String[] args) { Matrix matrix = new Matrix(3, 0, 10); System.out.println(matrix.toString()); matrix = changeMatrix(matrix); if (matrix != null) System.out.println(matrix.toString()); } private static Matrix changeMatrix(Matrix matrix) { ArrayListnumbRows = new ArrayList<>(); initNumbRows(matrix, numbRows); return createNewMatrix(matrix, numbRows); } private static Matrix createNewMatrix(Matrix matrix, ArrayList numbRows) { if (numbRows.size() == 0) { System.out.println("Видалено всі рядки"); return null; } else { Matrix temp = new Matrix(numbRows.size(), matrix.getM(), 0, 0); for (int i = 0; i < numbRows.size(); i++) { temp.setRow(matrix.getRow(numbRows.get(i)), i); } return temp; } } private static void initNumbRows(Matrix matrix, ArrayList numbRows) { for (int i = 0; i < matrix.getN(); i++) { if (isRepeatElements(matrix.getRow(i))) { numbRows.add(i); } } } private static boolean isRepeatElements(int[] row) { Arrays.sort(row); for (int i = 0; i < row.length - 1; i++) { if (row[i] == row[i + 1]) { return true; } } return false; } }
Відповідь:
Відповідь:
import java.util.Arrays; public class TMat43 { public static void main(String[] args) { Matrix matrix = new Matrix(5, 1, -10, 10); System.out.println(matrix.toString()); changeMatrix(matrix); System.out.println(matrix.toString()); } private static void changeMatrix(Matrix matrix) { int[] characteristic = new int[matrix.getN()]; for (int i = 0; i < characteristic.length; i++) { characteristic[i] = getCharacteristicRow(matrix.getRow(i)); } System.out.println("Характеристика рядків " + Arrays.toString(characteristic) + "\n"); sortedRows(matrix, characteristic); } private static int getCharacteristicRow(int[] row) { int sum = 0; for (int i = 0; i < row.length; i++) { if (row[i] < 0 && row[i] % 2 == 0) { sum += row[i]; } } return sum; } private static void sortedRows(Matrix matrix, int[] characteristic) { for (int i = 0; i < characteristic.length - 1; i++) { for (int j = i + 1; j < characteristic.length; j++) { if (characteristic[i] > characteristic[j]) { swap(characteristic, i, j); swap(matrix, i, j); } } } } private static void swap(int[] characteristic, int i, int j) { int t = characteristic[i]; characteristic[i] = characteristic[j]; characteristic[j] = t; } private static void swap(Matrix matrix, int i, int j) { int[] temp = matrix.getRow(i); matrix.setRow(matrix.getRow(j), i); matrix.setRow(temp, j); } }
Відповідь:
public class TMat44 { static int value = 1; static int i = 0; static int j = 0; static int last; static Matrix matrix; public static void main(String[] args) { matrix = new Matrix(5, 4, 0, 0); last = matrix.getN() * matrix.getM(); moveRight(); System.out.println(matrix.toString()); } private static void moveRight() { matrix.setElement(value, i, j); value++; if (value > last) { return; } if (j + 1 != matrix.getM() && matrix.getElement(i, j + 1) == 0) { j++; moveRight(); } else { i++; moveDown(); } } private static void moveDown() { matrix.setElement(value, i, j); value++; if (value > last) { return; } if (i + 1 != matrix.getN() && matrix.getElement(i + 1, j) == 0) { i++; moveDown(); } else { j--; moveLeft(); } } private static void moveLeft() { matrix.setElement(value, i, j); value++; if (value > last) { return; } if (j - 1 >= 0 && matrix.getElement(i, j - 1) == 0) { j--; moveLeft(); } else { i--; moveUp(); } } private static void moveUp() { matrix.setElement(value, i, j); value++; if (value > last) { return; } if (i - 1 >= 0 && matrix.getElement(i - 1, j) == 0) { i--; moveUp(); } else { j++; moveRight(); } } }
Відповідь:
public class TMat45 { static int value = 1; static int i = 0; static int j = 0; static int last; static Matrix matrix; public static void main(String[] args) { matrix = new Matrix(7, 4, 0, 0); last = matrix.getN() * matrix.getM(); moveDown(); System.out.println(matrix.toString()); } private static void moveRight() { matrix.setElement(value, i, j); value++; if (value > last) { return; } if (j + 1 != matrix.getM() && matrix.getElement(i, j + 1) == 0) { j++; moveRight(); } else { i--; moveUp(); } } private static void moveDown() { matrix.setElement(value, i, j); value++; if (value > last) { return; } if (i + 1 != matrix.getN() && matrix.getElement(i + 1, j) == 0) { i++; moveDown(); } else { j++; moveRight(); } } private static void moveLeft() { matrix.setElement(value, i, j); value++; if (value > last) { return; } if (j - 1 >= 0 && matrix.getElement(i, j - 1) == 0) { j--; moveLeft(); } else { i++; moveDown(); } } private static void moveUp() { matrix.setElement(value, i, j); value++; if (value > last) { return; } if (i - 1 >= 0 && matrix.getElement(i - 1, j) == 0) { i--; moveUp(); } else { j--; moveLeft(); } } }
Відповідь:
import java.util.Arrays; import java.util.Random; public class TMat46 { public static void main(String[] args) { int size = 5; int[][][] coube = getInts(size); System.out.println(Arrays.deepToString(coube)); getInfoIJ(coube); getInfoIK(coube); getInfoJK(coube); } private static int[][][] getInts(int size) { int[][][] coube = new int[size][size][size]; Random random = new Random(); for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { for (int k = 0; k < size; k++) { coube[i][j][k] = random.nextInt(2); } } } return coube; } private static void getInfoIK(int[][][] coube) { for (int i = 0; i < coube.length; i++) { for (int k = 0; k < coube.length; k++) { if (isClearJ(coube, i, k)) { System.out.printf("Координати [%d, 0, %d]\n", i + 1, k + 1); } } } } private static void getInfoIJ(int[][][] coube) { for (int i = 0; i < coube.length; i++) { for (int j = 0; j < coube.length; j++) { if (isClearK(coube, i, j)) { System.out.printf("Координати [%d, %d, 0]\n", i + 1, j + 1); } } } } private static void getInfoJK(int[][][] coube) { for (int j = 0; j < coube.length; j++) { for (int k = 0; k < coube.length; k++) { if (isClearI(coube, j, k)) { System.out.printf("Координати [0, %d, %d]\n", j + 1, k + 1); } } } } private static boolean isClearK(int[][][] coube, int i, int j) { for (int k = 0; k < coube.length; k++) { if (coube[i][j][k] == 1) { return false; } } return true; } private static boolean isClearJ(int[][][] coube, int i, int k) { for (int j = 0; j < coube.length; j++) { if (coube[i][j][k] == 1) { return false; } } return true; } private static boolean isClearI(int[][][] coube, int j, int k) { for (int i = 0; i < coube.length; i++) { if (coube[i][j][k] == 1) { return false; } } return true; } }
Відповідь:
import java.util.Arrays; import java.util.Random; public class TMat47 { public static void main(String[] args) { changeMatrix(); } private static void changeMatrix() { Matrix matrix = new Matrix(3, 1, 1); initMatrix(matrix); System.out.println("Початкова матриця\n" + matrix.toString()); matrix = sortedRows(matrix); System.out.println("відсортована матриця\n" + matrix.toString()); } private static void initMatrix(Matrix matrix) { Random random = new Random(); int[] mas = new int[matrix.getM()]; Arrays.fill(mas, 1); int j; for (int i = 0; i < matrix.getN(); i++) { j = generateIndexJ(mas, random); matrix.setElement(0, i, j); } } private static Matrix sortedRows(Matrix matrix) { Matrix temp = new Matrix(matrix.getN(), matrix.getM(), 0, 0); int j; for (int i = 0; i < matrix.getN(); i++) { j = findIndex(matrix.getRow(i)); temp.setRow(matrix.getRow(i), j); } return temp; } private static int findIndex(int[] row) { for (int i = 0; i < row.length; i++) { if (row[i] == 0) { return i; } } return 0; } private static int generateIndexJ(int[] mas, Random random) { int j; do { j = random.nextInt(mas.length); } while (mas[j] == 0); mas[j] = 0; return j; } }
Відповідь:
import java.util.ArrayList; import java.util.Arrays; public class TMat48 { public static void main(String[] args) { Matrix matrix = new Matrix(5, 0, 3); System.out.println(matrix.toString()); findLikeRows(matrix); } private static void findLikeRows(Matrix matrix) { Integer[] firstRows = deleteReplays(matrix.getRow(0)); int count = 0; for (int i = 1; i < matrix.getN(); i++) { if (like(firstRows, matrix.getRow(i))) { count++; System.out.println("Рядок " + (i + 1) + " схожий"); } } if (count == 0) { System.out.println("Схожі рядки відсутні"); } } private static boolean like(Integer[] firstRows, int[] row) { if (Arrays.equals(firstRows, deleteReplays(row))) { return true; } return false; } private static Integer[] deleteReplays(int[] row) { Arrays.sort(row); ArrayListlist = new ArrayList<>(); list.add(row[0]); for (int i = 1; i < row.length; i++) { if (list.get(list.size() - 1) != row[i]) { list.add(row[i]); } } // System.out.println("->"+list.toString()); return list.toArray(new Integer[list.size()]); } }
Відповідь:
public class TMat49 { public static void main(String[] args) { Matrix matrix = new Matrix(4, 8); System.out.println(matrix.toString()); matrix = changeMatrix(matrix); System.out.println(matrix.toString()); } private static Matrix changeMatrix(Matrix matrix) { Matrix temp = new Matrix(matrix.getN(), 0); init(temp, matrix); return temp; } private static void init(Matrix temp, Matrix matrix) { int[] rows; for (int i = 0; i < matrix.getN(); i++) { rows = rewers(matrix.getRow(i)); temp.setColumn(rows, temp.getM() - i - 1); } } private static int[] rewers(int[] row) { int[] temp = new int[row.length]; for (int i = 0; i < temp.length; i++) { temp[i] = row[row.length - i - 1]; } return temp; } }
Відповідь:
public class TMat50 { public static void main(String[] args) { Matrix matrix = new Matrix(2, 20); System.out.println(matrix.toString()); getinfo(matrix); } private static void getinfo(Matrix matrix) { int max = Integer.MIN_VALUE; int temp; for (int j = 0; j < matrix.getM(); j++) { if (sorted(matrix.getColumn(j))) { temp = matrix.getElement(matrix.getN() - 1, j); if (max < temp) { max = temp; } } } if (Integer.MIN_VALUE == max) { System.out.println(0); } else { System.out.println(max); } } private static boolean sorted(int[] column) { for (int i = 0; i < column.length - 1; i++) { if (column[i] >= column[i + 1]) { return false; } } return true; } }
Відповідь:
import java.util.Arrays; import java.util.Scanner; public class TMat51 { public static void main(String[] args) { System.out.print("Розмір матриці: "); int size = new Scanner(System.in).nextInt(); Matrix matrix = new Matrix(size, 1, size); System.out.println(matrix.toString()); checkedMatrix(matrix); } private static void checkedMatrix(Matrix matrix) { int[] row; int[] col; for (int i = 0; i < matrix.getN(); i++) { row = matrix.getRow(i); col = matrix.getColumn(i); if (noLatin(row, col)) { System.out.println("Не латинський квадрат"); System.exit(0); } } System.out.println("Латинський квадрат"); } private static boolean noLatin(int[] row, int[] col) { Arrays.sort(row); Arrays.sort(col); for (int i = 0; i < row.length; i++) { if ((row[i] != i + 1) || (col[i] != i + 1)) { return true; } } return false; } }
52. ***************
Відповідь:
****************
Відповідь:
import java.util.Arrays; import java.util.Random; import java.util.Scanner; public class TMat53 { public static void main(String[] args) { Random r = new Random(); System.out.print("n->"); int n = new Scanner(System.in).nextInt(); int[][][] coube = new int[n][n][n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { for (int k = 0; k < n; k++) { coube[i][j][k] = r.nextInt(2); } } } System.out.println(Arrays.deepToString(coube)); Matrix xy = getProectionXY(coube); Matrix xz = getProectionXZ(coube); Matrix yz = getProectionYZ(coube); System.out.println("XY"); System.out.println(xy.toString()); System.out.println("XZ"); System.out.println(xz.toString()); System.out.println("YZ"); System.out.println(yz.toString()); } private static Matrix getProectionXZ(int[][][] coube) { Matrix xz = new Matrix(coube.length, 0); for (int x = 0; x < coube.length; x++) { for (int z = 0; z < coube.length; z++) { xz.setElement(getValueY(coube, x, z), x, z); } } return xz; } private static int getValueY(int[][][] coube, int x, int z) { for (int i = 0; i < coube.length; i++) { if (coube[x][i][z] == 1) { return 1; } } return 0; } private static Matrix getProectionXY(int[][][] coube) { Matrix xy = new Matrix(coube.length, 0); for (int x = 0; x < coube.length; x++) { for (int y = 0; y < coube.length; y++) { xy.setElement(getValueZ(coube, x, y), x, y); } } return xy; } private static int getValueZ(int[][][] coube, int x, int y) { for (int i = 0; i < coube.length; i++) { if (coube[x][y][i] == 1) { return 1; } } return 0; } private static Matrix getProectionYZ(int[][][] coube) { Matrix yz = new Matrix(coube.length, 0); for (int y = 0; y < coube.length; y++) { for (int z = 0; z < coube.length; z++) { yz.setElement(getValueX(coube, y, z), y, z); } } return yz; } private static int getValueX(int[][][] coube, int y, int z) { for (int i = 0; i < coube.length; i++) { if (coube[i][y][z] == 1) { return 1; } } return 0; } }
Відповідь:
public class TMat54 { public static void main(String[] args) { Matrix matrix = new Matrix(2, 5, 0, 1); System.out.println(matrix.toString()); getInfo(matrix); } private static void getInfo(Matrix matrix) { int[] temp = new int[matrix.getN()]; for (int i = 0; i < temp.length; i++) { temp[i] = matrix.getElement(i, 0); } for (int i = 1; i < matrix.getM(); i++) { if (allInvisible(matrix.getColumn(i), temp)) { System.out.println("Стовпець " + (i + 1)); } } } private static boolean allInvisible(int[] column, int[] temp) { boolean flag = true; int sum = 0; for (int i = 0; i < column.length; i++) { sum += column[i]; if (temp[i] < column[i]) { flag = false; temp[i] = column[i]; } } return (flag && (sum != 0)); } }
Відповідь:
import java.util.Arrays; public class TMat55 { public static void main(String[] args) { Matrix matrix = new Matrix(10, 1); System.out.println(matrix.toString()); getInfo(matrix); } private static void getInfo(Matrix matrix) { int[] colZero = new int[matrix.getN() * 2 + 2]; for (int i = 0; i < matrix.getN(); i++) { colZero[i] = countZero(matrix.getRow(i)); colZero[matrix.getN() + i] = countZero(matrix.getColumn(i)); } colZero[colZero.length - 2] = countZero(matrix.getMainDiagonal()); colZero[colZero.length - 1] = countZero(matrix.getCollateralDiagonal()); Arrays.sort(colZero); System.out.println("Максимальна кількість " + colZero[colZero.length - 1]); } private static int countZero(int[] mas) { int start = 0; int end = 0; int count = 0; int max = Integer.MIN_VALUE; for (int i = 0; i < mas.length; i++) { if (mas[i] == 0) { count++; } else { if (count == mas.length) { System.out.println("Максимальна кількість " + count); } max = check(count, max); count = 0; } } max = check(count, max); return max; } private static int check(int count, int max) { if (count > max) { max = count; } return max; } }
Відповідь:
import java.util.ArrayList; public class TMat56 { public static void main(String[] args) { Matrix matrix = new Matrix(2, 3); System.out.println(matrix.toString()); ArrayList numb = new ArrayList(); getInfo(matrix, numb); System.out.println(numb.toString()); } private static void getInfo(Matrix matrix, ArrayList numb) { for (int j = 0; j < matrix.getM(); j++) { if (isInAll(matrix, matrix.getElement(0, j))) { numb.add(matrix.getElement(0, j)); } } } private static boolean isInAll(Matrix matrix, int element) { boolean flag = true; for (int i = 1; i < matrix.getN(); i++) { if (!isPresent(matrix.getRow(i), element)) { return false; } } return flag; } private static boolean isPresent(int[] row, int element) { for (int i = 0; i < row.length; i++) { if (row[i] == element) { return true; } } return false; } }
Відповідь:
import java.util.Arrays; public class TMat57 { private static int SIZE = 3; public static void main(String[] args) { Matrix matrix = new Matrix(3, 1); System.out.println(matrix.toString()); if (checkMatrix(matrix)) { System.out.println("Перемога"); } else { System.out.println("Не виграли"); } } // перевірка рядків, стовпців та діоганалей матриці private static boolean checkMatrix(Matrix matrix) { int[] mas = new int[SIZE]; if (checkRows(matrix)) return true; if (checkColumns(matrix)) return true; if (checkD1(matrix)) return true; if (checkD2(matrix)) return true; return false; } private static boolean checkRows(Matrix matrix) { int[] mas; for (int i = 0; i < matrix.getN(); i++) { for (int j = 0; j < matrix.getM() - SIZE + 1; j++) { mas = Arrays.copyOfRange(matrix.getRow(i), j, j + SIZE); if (check(mas)) { System.out.println("Pobeda ryad"); return true; } } } return false; } private static boolean checkColumns(Matrix matrix) { int[] mas; for (int i = 0; i < matrix.getM(); i++) { for (int j = 0; j < matrix.getN() - SIZE + 1; j++) { mas = Arrays.copyOfRange(matrix.getColumn(i), j, j + SIZE); if (check(mas)) { System.out.println("Pobeda column"); return true; } } } return false; } private static boolean checkD1(Matrix matrix) { int[] mas = new int[SIZE]; for (int i = 0; i < matrix.getN() - SIZE + 1; i++) { for (int j = 0; j < matrix.getM() - SIZE + 1; j++) { mas = getMasD1(matrix, mas, i, j); if (check(mas)) { System.out.println("Pobeda D1"); return true; } } } return false; } private static boolean checkD2(Matrix matrix) { int[] mas = new int[SIZE]; for (int i = 0; i < matrix.getN() - SIZE + 1; i++) { for (int j = SIZE - 1; j < matrix.getM(); j++) { mas = getMasD2(matrix, mas, i, j); if (check(mas)) { System.out.println("Pobeda D2"); return true; } } } return false; } private static int[] getMasD1(Matrix matrix, int[] mas, int i, int j) { for (int k = 0; k < SIZE; k++) { mas[k] = matrix.getElement(i + k, j + k); } return mas; } private static int[] getMasD2(Matrix matrix, int[] mas, int i, int j) { for (int k = 0; k < SIZE; k++) { mas[k] = matrix.getElement(i + k, j - k); } return mas; } private static boolean check(int[] mas) { int sum = 0; for (int i = 0; i < mas.length; i++) { sum += mas[i]; } if (sum == SIZE) { return true; } else { return false; } } }
Відповідь:
import java.util.Scanner; public class TMat58_2 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // System.out.print("n="); int n = 2;// scanner.nextInt(); //System.out.print("m="); int m = 2;//scanner.nextInt(); System.out.println(); Matrix matrix = new Matrix(n, m, 0, 1); Matrix temp = new Matrix(n + 1, m + 1, 1, 1); System.out.println(matrix.toString()); copyMatrix(matrix, temp); getInfo(temp); } private static void copyMatrix(Matrix matrix, Matrix temp) { for (int i = 0; i < matrix.getN(); i++) { for (int j = 0; j < matrix.getM(); j++) { temp.setElement(matrix.getElement(i, j), i, j); } } } private static void getInfo(Matrix matrix) { int maxSize = 0; int size = 1; boolean flag = false; for (int i = 0; i < matrix.getN(); i++) { for (int j = 0; j < matrix.getM(); j++) { if (matrix.getElement(i, j) == 0) { size = getSize(matrix, i, j, size); flag = true; } if (flag && (size >= maxSize)) { maxSize = size; size = 1; } } } System.out.println("max = " + maxSize); } private static int getSize(Matrix matrix, int i, int j, int size) { if (notZero(matrix, i, j, size)) { return size; } else { return getSize(matrix, i, j, size + 1); } } private static boolean notZero(Matrix matrix, int i, int j, int size) { if ((i + size >= matrix.getN()) || (j + size >= matrix.getM())) { return true; } for (int k = 0; k < size; k++) { if (matrix.getElement(k + i, j + size) == 1) { return true; } } for (int k = 0; k < size; k++) { if (matrix.getElement(i + size, k + j) == 1) { return true; } } if (matrix.getElement(i + size, j + size) == 1) { return true; } return false; } }
Відповідь:
import java.util.ArrayList; import java.util.Arrays; public class TMat59 { public static void main(String[] args) { Matrix matrix = new Matrix(10, 5); System.out.println(matrix.toString()); getInfo(matrix); } private static void getInfo(Matrix matrix) { ArrayList[] rows = new ArrayList[matrix.getN()]; for (int i = 0; i < matrix.getN(); i++) { rows[i] = init(matrix.getRow(i)); } for (int i = 0; i < rows.length - 1; i++) { for (int j = i + 1; j < rows.length; j++) { if (check(rows[i], rows[j])) { System.out.println("Схожі (" + (i + 1) + "; " + (j + 1) + ")"); } } } } private static ArrayList init(int[] row) { ArrayList list = new ArrayList(); Arrays.sort(row); list.add(row[0]); for (int i = 1; i < row.length; i++) { if (row[i] != row[i - 1]) { list.add(row[i]); } } // display(list); return list; } private static void display(ArrayList list) { for (int i = 0; i < list.size(); i++) { System.out.print(list.get(i) + " "); } System.out.println(); } private static boolean check(ArrayList row1, ArrayList row2) { if (row1.size() != row2.size()) { return false; } for (int i = 0; i < row1.size(); i++) { if (row1.get(i) != row2.get(i)) { return false; } } return true; } }
Комментариев нет:
Отправить комментарий