Почему Math.Random выводит число -9 в матрице?
Мне необходимо сделать, чтоб числа в массив заполнялись случайными числами, но почему-то они заполняются только число -9, что необходимо исправить?
Задача кода выполнить данную задачу
Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей. Подсчитать количество локальных минимумов задан-ной матрицы размером 4 на 4. Найти сумму модулей элементов, расположенных выше главной диагонали
package javaapplication323;
public class JavaApplication323 {
public static void main(String[] args) {
int n = 4;
int[][] mas=new int[n][n];
int locMin = 0;
int sum = 0;
int i,j;
System.out.println("Исходная матрица:");
for(i=0;i<n;i++){
for(j=0;j<n;j++){
mas[i][j]= (int)((Math.random() % 100 - 10));
System.out.print(mas[i][j]+" " );
}
System.out.println();
}
for(i=1;i<n-1;i++){
for(j=1;j<n-1;j++){
if((mas[i][j] < mas[i][j-1]) && (mas[i][j] < mas[i][j+1]) && (mas[i][j] < mas[i+1][j]) && (mas[i][j] < mas[i-1][j]))
{
System.out.println("String=" + i +1);
System.out.println("Column=" + j +1);
System.out.println("Min=" + mas[i][j]);
System.out.println();
locMin++;
}
}
}
System.out.println("LocMin =" + locMin);
for(i=0;i<n;++i){
for(j=i+1;j<n;j++){
sum += Math.abs(mas[i][j]);
}
}
System.out.println("Sum=" + sum);
}
}
Ответы (1 шт):
Math.random() % 100 возвращает то же самое, что и просто Math.random(), потому что Math.random() генерирует числа от 0 до 1. В итоге от этого числа вы еще и убавляете 10, вот и выходит -9.
Чтобы числа генерировались в диапазоне, допустим, от 0 до 10 (не вкл), надо писать так: Math.random() * 10.