Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/47: Рейтинг темы: голосов - 47, средняя оценка - 4.74
0 / 0 / 0
Регистрация: 22.05.2020
Сообщений: 10

Массив: Сформировать матрицу m x n, состоящую из нулей и единиц, по заданному правилу...

07.12.2020, 20:12. Показов 9144. Ответов 17
Метки java (Все метки)

Студворк — интернет-сервис помощи студентам
Задача:
Сформировать случайную матрицу m x n, состоящую из нулей и единиц, причем в каждом столбце число
единиц равно номеру столбца.

Зарандомить матрицу нулями и единицами не проблема:

Java
1
2
3
4
5
6
7
8
9
10
                int [][] matrix;
                final int N = 5;
                final int M = 5;
                matrix = new int[N][M];
 
                for (int i = 0; i < N; i++) {
                    for (int j = 0; j < M; j++) {
                        matrix[i][j] = (int) (Math.random() * 2);
                    }
                }
А вот как сделать так, чтобы в каждом столбце число
единиц было равно номеру столбца - загадка для меня. Буду рад помощи
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.12.2020, 20:12
Ответы с готовыми решениями:

Сформировать матрицу, состоящую из нулей и единиц, причем количество единиц строго равно количеству строк
Сформировать матрицу, состоящую из нулей и единиц, причем количество единиц строго равно количеству строк.

Сформировать матрицу n x m, состоящую из нулей и единиц, причем единицы находятся только в угловых клетках
Сформировать матрицу n x m, состоящую из нулей и единиц, причем единицы находятся только в угловых клетках.C# Кто знает как это сделать...

Дано матрицу, состоящую из нулей и единиц. Найти самый большой по площади прямоугольник, состоящий из одних единиц
Дано матрицу, состоящую из нулей и единиц. Найти самый большой по площади прямоугольник, состоящий из одних единиц.

17
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
07.12.2020, 20:46
пишешь например в начало столбца нужное количество единиц, перемешиваешь элементы столбца

Добавлено через 41 секунду
https://www.journaldev.com/326... array-java
1
0 / 0 / 0
Регистрация: 22.05.2020
Сообщений: 10
07.12.2020, 21:39  [ТС]
интересный вариант, буду пробовать, спасибо

Добавлено через 41 минуту
Покумекал и решил немного схитрить. Допустим, что дана квадратная матрица и собственно нужно просто заполнить главную диагональ и всё, что выше неё, единицами. Халтурка конечно, но вдруг кому понадобится

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int [][] matrix;
final int N = 5;
final int M = 5;
matrix = new int[N][M];
 
for (int i = 0; i < N; i++) {
     for (int j = 0; j < M; j++) {
           if (i <= j) {
               matrix[i][j] = 1;
           }
           System.out.print(matrix[i][j] + " ");
     }
     System.out.println();
}
Вывод:

1 1 1 1 1
0 1 1 1 1
0 0 1 1 1
0 0 0 1 1
0 0 0 0 1
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
07.12.2020, 22:15
Цитата Сообщение от barca22 Посмотреть сообщение
Сформировать случайную матрицу
слово случайная пропустил видимо
0
0 / 0 / 0
Регистрация: 22.05.2020
Сообщений: 10
07.12.2020, 22:19  [ТС]
Цитата Сообщение от xoraxax Посмотреть сообщение
слово случайная пропустил видимо
ну лол, я же написал, что халтура, чего острить
0
60 / 41 / 20
Регистрация: 30.01.2019
Сообщений: 133
07.12.2020, 23:25
Лучший ответ Сообщение было отмечено barca22 как решение

Решение

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
public class RandomArray {
    public static void main(String[] args) {
        int m = 5;
        int n = 5;
//        Код для квадратной матрицы
        Integer[][] mn = new Integer[m][n];
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                if (j<=i) mn[i][j] = 1;
                else mn[i][j] = 0;
            }
        }
        for (int i = 0; i < m; i++) {
            List<Integer> integerList = Arrays.asList(mn[i]);
            Collections.shuffle(integerList);
            integerList.toArray(mn[i]);
        }
        for (int i = 0; i < m; i++) {
            for (int j = i+1; j < m; j++) {
                int temp = mn[i][j];
                mn[i][j] = mn[j][i];
                mn[j][i] = temp;
            }
        }
        for (int i = 0; i < m; i++) {
            System.out.println(Arrays.toString(mn[i]));
        }
    }
}
Для квадратной матрицы
1
0 / 0 / 0
Регистрация: 22.05.2020
Сообщений: 10
07.12.2020, 23:45  [ТС]
Цитата Сообщение от kosta4310 Посмотреть сообщение
Для квадратной матрицы
с кайфом, брат, от души
0
60 / 41 / 20
Регистрация: 30.01.2019
Сообщений: 133
07.12.2020, 23:55
По условию она и должна быть квадратная
0
0 / 0 / 0
Регистрация: 22.05.2020
Сообщений: 10
08.12.2020, 00:08  [ТС]
Цитата Сообщение от kosta4310 Посмотреть сообщение
По условию она и должна быть квадратная
ну судя по всему, это так
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
08.12.2020, 08:17
Цитата Сообщение от kosta4310 Посмотреть сообщение
По условию она и должна быть квадратная
Цитата Сообщение от barca22 Посмотреть сообщение
m x n
И действительно!
0
60 / 41 / 20
Регистрация: 30.01.2019
Сообщений: 133
08.12.2020, 09:24
Правильно, должно быть еще m>=n.
0
0 / 0 / 0
Регистрация: 22.05.2020
Сообщений: 10
08.12.2020, 10:42  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
И действительно!
так лулыч, дружище, сделай лучше, правильнее
0
08.12.2020, 10:46

Не по теме:

Цитата Сообщение от barca22 Посмотреть сообщение
сделай лучше
а ты при этом че делать будешь? наслаждаться работой других...

0
08.12.2020, 19:01  [ТС]

Не по теме:


Цитата Сообщение от Aviz__ Посмотреть сообщение
а ты при этом че делать будешь?
то, что мог, я уже сделал
Цитата Сообщение от Aviz__ Посмотреть сообщение
наслаждаться работой других...
было бы чем наслаждаться ;)

0
 Аватар для Aviz__
2759 / 2066 / 509
Регистрация: 17.02.2014
Сообщений: 9,492
08.12.2020, 19:11
Цитата Сообщение от barca22 Посмотреть сообщение
то, что мог, я уже сделал
так и показывай! с учетом того, что тебе вариант с квадратной дали.
0
60 / 41 / 20
Регистрация: 30.01.2019
Сообщений: 133
08.12.2020, 23:54
Лучший ответ Сообщение было отмечено barca22 как решение

Решение

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
public class Ubung2 {
    public static void main(String[] args) {
        int m = 7;
        int n = 5;
 
        int[][] mn = new int[m][n];
        if (m<n) System.out.println("Не корректные данные.\nНе соответствует условию задачи");
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                if (j>=i) mn[i][j] = 1;
                else mn[i][j] = 0;
            }
        }
        ArrayList<Integer> arrayList = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                arrayList.add(mn[j][i]);
            }
            Collections.shuffle(arrayList);
            for (int j = 0; j < m; j++) {
                mn[j][i] = arrayList.get(j);
            }
            arrayList.clear();
        }
        System.out.println();
        for (int[] each : mn) {
            System.out.println(Arrays.toString(each));
        }
    }
}
[1, 0, 0, 1, 1]
[0, 0, 0, 1, 1]
[0, 1, 1, 0, 1]
[0, 0, 1, 0, 1]
[0, 1, 0, 1, 0]
[0, 0, 0, 0, 0]
[0, 0, 1, 1, 1]
1
2 / 1 / 1
Регистрация: 09.01.2021
Сообщений: 4
13.02.2021, 19:28
Лучший ответ Сообщение было отмечено barca22 как решение

Решение

Вот как у меня получилось. Подходит для любой матрицы.
Java
1
2
3
4
5
6
7
8
9
10
11
12
        int m = 7;
        int n = 5;
        int [][] matrix = new int [m][n];
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix[i].length; j++) {
                matrix[i][j] = 0; 
                if (i < matrix[i].length && i<=j) {
                    for (int h = i; h >= 0; h--) {
                        matrix[h][j] = 1;
                    }
                }
            }
1 1 1 1 1
0 1 1 1 1
0 0 1 1 1
0 0 0 1 1
0 0 0 0 1
0 0 0 0 0
0 0 0 0 0
1
 Аватар для Aviz__
2759 / 2066 / 509
Регистрация: 17.02.2014
Сообщений: 9,492
13.02.2021, 19:53
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.02.2021, 19:53
Помогаю со студенческими работами здесь

Построить последовательность b1,..., bn для каждой матрицы состоящую из нулей и единиц по правилу
Задание: Даны натуральное число n, две действительные квадратные матрицы порядка n. Построить последовательность b1,..., bn для каждой...

На основе исходной матрицы сформировать новую, состоящую из нулей и единиц
Всем привет! Смотрел примеры для данного задания от данной темы https://www.cyberforum.ru/cpp-beginners/thread2005417.html и возник...

Массив: Сформировать матрицу размера M × N по заданному правилу...
Даны целые положительные числа M, N, число Q и набор из N чисел. Сформировать матрицу размера M × N, у которой первая строка совпадает...

Сгенерируйте матрицу размера N ^ N, состоящую из нулей, а первая строка состоит из единиц
&quot;Создайте указанные матрицы. В этих задачах нельзя использовать циклы. И вы должны избежать ручного ввода элементов матрицы, вместо этого...

На основе исходной матрицы сформировать новую, состоящую из нулей и единиц, руководствуясь заданным правилом
всем доброго вечера, недавно дали задание &quot;Дан целочисленный массив A. Нужно сформировать массив B, состоящий из нулей и единиц,...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru