Как изменить значение элементов матрицы вычитанием из каждого элемента строки среднее арифметическое этого строки [JAVA]
Есть фрагмент кода, но он не делает того, что нужно
import java.util.Random;
public class Array {
private int size = 6;
Float[][] data = new Float[size][size];
public Array() {
init();
}
private void init() {
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) data[i][j] = new Random().nextFloat();
}
}
public void show() {
for (int j = 0; j < size; j++) {
for (int i = 0; i < size; i++) {
System.out.println("row " + i + " col " + j + ": " + data[i][j]);
}
System.out.println();
}
}
public void rotate() {
for (int i = 0; i < size / 2; i++) {
for (int j = i; j < size - i - 1; j++) {
// Store current cell in temp variable
float temp = data[i][j];
// move values from right to top
data[i][j] = data[j][size - 1 - i];
// Move values from bottom to right
data[j][size - 1 - i] = data[size - 1 - i][size - 1 - j];
// Move values from left to bottom
data[size - 1 - i][size - 1 - j] = data[size - 1 - j][i];
// Assign temp to left
data[size - 1 - j][i] = temp;
}
}
}
}
package com.company;
public class Main {
public static void main(String[] args) {
System.out.println("Литвин С.М.");
Array array = new Array();
System.out.println("Array:");
array.show();
array.rotate();
System.out.println("Rotated array:");
array.show();
}
}
Ответы (1 шт):
Автор решения: DeMmAge
→ Ссылка
import java.util.Random;
public class Solution {
private final int size = 6;
private Float[][] array = new Float[size][size];
public Solution() {
fillArray();
}
private void fillArray() {
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
array[i][j] = new Random().nextFloat();
}
}
}
public void printArray() {
for (int j = 0; j < size; j++) {
for (int i = 0; i < size; i++) {
System.out.println("row " + i + " col " + j + ": " + array[i][j]);
}
System.out.println();
}
}
public void evaluate() {
float[] linesAverage = new float[size];
for (int i = 0; i < size; i++) {
int lineSum = 0;
for (int j = 0; j < size; j++) {
lineSum += array[i][j];
}
linesAverage[i] = lineSum / (float)size;
}
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
array[i][j] -= linesAverage[i];
}
}
}
}
Класс Main:
public class Main {
public static void main(String[] args) {
Solution solution = new Solution();
solution.evaluate();
solution.printArray();
}
}