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

Замена элементов двумерного массива в случайном порядке

13.12.2015, 22:38. Показов 3095. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Есть ли возможность в JAVA имея двумерный массив осуществить замену случайных элементов на ноль(например 4 из 9)?
Например был массив
{{123},
{456},
{789}};
Стал:
{{003},
{450},
{709}}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.12.2015, 22:38
Ответы с готовыми решениями:

Вывод элементов массива в случайном порядке
У меня есть вот что: public void Init() { Mammals a1 = new Mammals("Кошка", "Муська", 3, "Хищные"); ...

Замена всех нечетных элементов двумерного массива на сумму отрицательных элементов
Написал прогу по замене всех нечетных элементов двумерного массива на сумму отрицательных элементов.Если вводить квадратную матрицу,то все...

Замена значений элементов двумерного массива
Напишите программу формирования массива размером 5х5 с помощью датчика случайных чисел. Замените в нем значения элементов, сумма индексов...

5
 Аватар для HOBATOP
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
13.12.2015, 22:57
MrMCH,
Цитата Сообщение от MrMCH Посмотреть сообщение
Есть ли возможность в JAVA имея двумерный массив осуществить замену случайных элементов на ноль
Безусловно, такая возможность есть!
0
0 / 0 / 0
Регистрация: 13.12.2015
Сообщений: 3
13.12.2015, 23:33  [ТС]
Если есть, то как осуществить, просто как-то уже третий день уже не могу придумать ничего
0
 Аватар для HOBATOP
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
14.12.2015, 02:23
MrMCH, растянуть в линейный массив (простой или ArrayList), поменять всё что хочется, потом обратно собрать матрицу. Можно индексы вычислить и менять прямо в матрице. Например хочется заменить в матрице 7х7 23 элемент: (int) 23 / 7 = 3 (строка = 3 - 1); 23 % 7 = 2 (столбец = 2 - 1).
Вот вариант с простым массивом:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
class Matrix {
 
    public static int random(int q, int w) {
        int n = (int) (Math.random() * q - w);
        return n;
    }
 
    public static void replace() throws IOException {
        int nSize, rep1, rep2, rep3, rep4, rep5, count = 0;
        System.out.println("Задайте размер массива: ");
        nSize = reading();
        System.out.println("Какие пять элементов хотите заменить? Число должно быть не более чем " + nSize * nSize);
        rep1 = reading();
        rep2 = reading();
        rep3 = reading();
        rep4 = reading();
        rep5 = reading();
        System.out.println("Создаём массив размерами " + nSize + " на " + nSize);
        int[][] source = new int[nSize][nSize];
        int[] temp = new int[nSize * nSize];
        for (int i = 0; i < nSize; i++) {
            for (int j = 0; j < nSize; j++) {
                source[i][j] = random(50, 25);
                temp[count++] = source[i][j];
                System.out.printf("%4d", source[i][j]);
            }
            System.out.println();
        }
        System.out.println("\nБудут заменены " + rep1 + ", " + rep2 + ", " + rep3 + ", " + rep4 + ", " + rep5 + " элементы на ноль.\n");
        count = 0;
        for (int i = 0; i < 5; i++) {
            int[] tmp = {(rep1 - 1), (rep2 - 1), (rep3 - 1), (rep4 - 1), (rep5 - 1)};
            int vig = tmp[count++];
            for (int w = 0; w < temp.length; w++) {
                if(vig == w){
                    temp[w] = 0;
                }
            }
        }
        count = 0;
        for (int i = 0; i < nSize; i++) {
            for (int j = 0; j < nSize; j++) {
                source[i][j] = temp[count++];
                System.out.printf("%4d", source[i][j]);
            }
            System.out.println();
        }
    }
 
    public static int reading() throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String sTemp = br.readLine();
        int nTemp = Integer.parseInt(sTemp);
        return nTemp;
    }
}
На консоли будет нечто вроде этого:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Задайте размер массива: 
5
Какие пять элементов хотите заменить? Число должно быть не более чем 25
25
16
8
19
2
Создаём массив размерами 5 на 5
  -2   1   4  17 -10
 -12  -3 -17 -16  -4
   1 -20  19 -16  13
   5  12 -20 -14 -24
  -8   1 -22 -10 -12
 
Будут заменены 25, 16, 8, 19, 2 элементы на ноль.
 
  -2   0   4  17 -10
 -12  -3   0 -16  -4
   1 -20  19 -16  13
   0  12 -20   0 -24
  -8   1 -22 -10   0
1
0 / 0 / 0
Регистрация: 13.12.2015
Сообщений: 3
14.12.2015, 05:20  [ТС]
Цитата Сообщение от HOBATOP Посмотреть сообщение
Можно индексы вычислить и менять прямо в матрице. Например хочется заменить в матрице 7х7 23 элемент: (int) 23 / 7 = 3 (строка = 3 - 1); 23 % 7 = 2 (столбец = 2 - 1).
А можно поподробнее про этот метод? Хочу сделать так чтобы у меня генерировались случайные индексы элементов(допустим штук 5) которые потом заменит
0
 Аватар для HOBATOP
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
14.12.2015, 10:43
Цитата Сообщение от MrMCH Посмотреть сообщение
А можно поподробнее про этот метод?
Все эти методы сокрыты в глубинах нашего мозга. Следовательно нужно напрячь мозги, выдавить из них желаемый метод и - вуаля! - задача решена!
Цитата Сообщение от MrMCH Посмотреть сообщение
Хочу сделать
А что мешает? Сделайте. Тем более что в приведённом решении (оно очень избыточно) всё необходимое есть, нужно слегка модифицировать код: заменить ввод с клавиатуры на рандомные значения (метод также присутствует) добавить ещё одно условие в сравнении, подсчитать индексы (лучше отдельным методом). Делов всего-то: начать да кончить. Удачи!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.12.2015, 10:43
Помогаю со студенческими работами здесь

Замена элементов двумерного динамического массива
Помогите довести до ума. Задание: заменить положительные элементы массива на 1, отрицательные - на -1, нули так и оставить. #include...

Замена элементов двумерного динамического массива
Здравствуйте , у меня на 12 строчке возникает ошибка &quot;Вызвано исключение: нарушение доступа для чтения. arr было 0x1118235.&quot; Не могу...

Замена элементов двумерного массива заданным значением
Составить программу, которая проводит замену всех элементов некоторого столбца двумерного массива заданным числом k.

Заполнение массива в случайном порядке
По сути поставлена такая задача: Есть массив произвольных размеров, 10 на 10 скажем, его нужно заполнить числами, да хоть одним и тем же...

Замена элементов двумерного массива, которые повторяются с заданными числами
Данные целые числа a1,...,a10 и квадратная матрица n*n.Необходимо заменить нулями в матрице те элементы, значения которых равны числам...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru