Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/34: Рейтинг темы: голосов - 34, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 17.06.2014
Сообщений: 8

Двумерный массив со случайными числами

17.06.2014, 19:41. Показов 7000. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь создать двумерный массив со случайными числами( без разницы, какие диапазоны). Написал одну программу- работает, но не корректно. Нашёл на форуме еще одну( вроде как рабочую) -точно такая же проблема
То есть в консоли выдаёт случайное количество вот таких загогулин:


Вот те две программы:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 import java.util.Arrays;
import java.util.Random; 
public class arrays_2 {
public static void main(String args[]){
    Random rnd= new Random(System.nanoTime());
    int arraysLenght1=rnd.nextInt(3);
    int arrayslenght2=rnd.nextInt(4);
    int m1[][]=new int[arraysLenght1][arrayslenght2];
    for(int i=0; i < arraysLenght1;i++)
        for (int j=0; j<arrayslenght2; j++){
            m1[i][j]=rnd.nextInt(100);
        }
 
    for(int i=0; i < arraysLenght1;i++)
        for (int j=0; j<arrayslenght2; j++){
    System.out.print(Arrays.toString(m1));  
        }
}
}
Эту я нашёл на форуме:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.lang.*;
class MAXIMINDWUMER1 {
 public static void main (String[] args){
  int[][] a=new int[5][5];
  int max,min; 
  for (int i=0;i < a.length;i++){
    for (int j=0;j < a[i].length;j++){
      a[i][j]=(int)(Math.random()*10);
      }
     }
for (int i=0;i < a.length;i++,System.out.println()){
for (int j=0;j < a[i].length;j++){
System.out.print(a[i][j]+" ");
}}
}}
Подскажите пожалуйста в чём проблема, очень интересно
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.06.2014, 19:41
Ответы с готовыми решениями:

Заполнить двумерный массив случайными числами
Заполнить двумерный массив случайными числами в диапазоне от 1 до N Виконати заповнення двовимірного масиву випадковими цифрами в...

Как заполнить двумерный массив случайными числами?
Привет всем.Я не совсем понимаю как при помощи функции Math.random заполнить двумерный массив слчуайными числами,допустим в диапазоне от 1...

Дан двумерный массив размерностью n × m, заполненный случайными числами
Дан двумерный массив размерностью n × m, заполненный случайными числами. Определить, существует ли в этом массиве столбец, в котором...

9
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
17.06.2014, 20:00
в первом варианту кода
System.out.print(Arrays.toString(m1));
заменить на
System.out.print(m1[i][j]);
0
11 / 11 / 6
Регистрация: 08.06.2012
Сообщений: 28
17.06.2014, 20:02
Java
1
2
int arraysLenght1=rnd.nextInt(3);
int arrayslenght2=rnd.nextInt(4);
Не корректно, может вернуть ноль. Размер массива не может быть нулем. Перепишите чтобы слученный размер генерировался от 1.

По поводу печати:
Лезем в документацию к Arrays.toString, видим:
If the array contains other arrays as elements, they are converted to strings by the Object.toString method inherited from Object
Метод пытается вызвать Object.toString для int[] в этом и проблема, вы должны выводить вручную через циклы.

Второй пример у меня абсолютно корректно работает (Intellij Idea)
1
0 / 0 / 0
Регистрация: 17.06.2014
Сообщений: 8
18.06.2014, 00:24  [ТС]
Первую пробовал и через циклы, проблема всё еще актуальна
0
11 / 11 / 6
Регистрация: 08.06.2012
Сообщений: 28
18.06.2014, 00:47
Лучший ответ Сообщение было отмечено Nemezis16 как решение

Решение

Цитата Сообщение от Nemezis16 Посмотреть сообщение
Первую пробовал и через циклы, проблема всё еще актуальна
Пробуйте. Все должно работать:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public static void main(String[] args) {
        Random rnd = new Random(System.nanoTime());
        int arraysLenght1 = rnd.nextInt(3) + 1;
        int arrayslenght2 = rnd.nextInt(4) + 1;
        System.out.println("lenght1 = " + arraysLenght1);
        System.out.println("lenght2 = " + arrayslenght2);
        int m1[][] = new int[arraysLenght1][arrayslenght2];
        for (int i = 0; i < arraysLenght1; i++) {
            for (int j = 0; j < arrayslenght2; j++) {
                m1[i][j] = rnd.nextInt(100);
            }
        }
 
        for (int i = 0; i < arraysLenght1; i++) {
            for (int j = 0; j < arrayslenght2; j++) {
                System.out.print(m1[i][j] + " ");
            }
            System.out.println();
        }
    }
1
0 / 0 / 0
Регистрация: 17.06.2014
Сообщений: 8
18.06.2014, 12:51  [ТС]
Спасибо, в таком виде заработало корректно
0
zzzZZZ...
 Аватар для dzrkot
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
18.06.2014, 18:54
свои 5 копейк
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.Scanner;
public class testClass
{
    public static void main(String[] args) 
    {
        Scanner str = new Scanner(System.in);
        int x=str.nextInt();
        int a[][] = new int[x][];
            for (int i=0;i<a.length;i++)
                {
                a[i]=new int[x];
                for (int j=0;j<a[i].length;j++)
                    {
                    a[i][j]=(int)(Math.random()*100);
                    System.out.printf("%4d",a[i][j]);
                    }
                System.out.println();
                }
    }
}
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
18.06.2014, 19:54
Цитата Сообщение от dzrkot Посмотреть сообщение
a[i]=new int[x];
смысл этой строчки внутри цикла?
учите новичков быдлокодить
0
zzzZZZ...
 Аватар для dzrkot
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
18.06.2014, 20:51
Цитата Сообщение от Паблито Посмотреть сообщение
смысл этой строчки внутри цикла?
учите новичков быдлокодить
я в java сам новичек
0
0 / 0 / 0
Регистрация: 09.04.2017
Сообщений: 2
09.04.2017, 17:08
Легче всего было бы написать
for(int i = 0;i < 5;i++){
for(int j = 0;j < 5;j++){
m1[i][j] = ((int)(Math.random()*100));
}
}
Вообще когда пишешь Math.random() он генерирует числа от 0 до 1, по этому надо умножить на 100
или например если напишешь ((int)(Math.random()*5)); то интервал будет от 0 до 5,так же если напишешь ((int)(Math.random()*15 - 15)); будет от -15 до 0 и так далее
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.04.2017, 17:08
Помогаю со студенческими работами здесь

Заполнить массив случайными числами
Задача стоит такая есть 3 массива разных типов !!! Один типа int Второй типа short Третий типа byte Надо их заполнить рандомными...

Заполнить массив случайными, не повторяющимися числами
Всем Здравствуйте. Вот столкнулся с такой проблемой: Нужно заполнить массив случайными и не повторяющимися числами. Вот к примеру...

Как заполнить массив и N-элементов случайными числами
Доброго дня! Меня интересует такой вопрос : &quot;Как заполнить массив и N-элементов случайными числами ?&quot;. Искал в интернете , но найти...

Заполнить массив случайными числами и вывести на экран
Здравствуйте. Знаю, что подобные темы уже создавались, но меня интересуют мои ошибки. public static void main (String args) { int...

Метод, заполняющий одномерный массив случайными числами от 10000 до 30000
Пишу программу по нахождению седловой точки и надо написать метод, который будет заполнять одномерный массив радномными числами от 10000 до...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru