|
29 / 1 / 0
Регистрация: 25.02.2020
Сообщений: 82
|
|
Замолнить матрицу рандомно так чтобы нулей было в 2 раза больше чем единиц03.04.2020, 13:52. Показов 4619. Ответов 49
Метки массивы c++ (Все метки)
Доброго времени суток.
Подскажите, как заполнить двумерный массив 8х8 случайными числами от 0 до 1, так, чтобы нулей было в 2 раза больше едениц? Как по мне, так эта задача не имеет решения, т.к.: В данном массиве 64 ячейки. Максимальное количество едениц - 21, тогда нулей - 42, общее количество занятых ячеек - 63. Одна ячейка будет пустой. В противном случае будет переполнение массива. Но, если опустить условие о том, чтобы нулей было в 2 раза больше чем едениц, как сделать так, чтобы нулей было всегда больше, чем едениц?
0
|
|
| 03.04.2020, 13:52 | |
|
Ответы с готовыми решениями:
49
|
|
Вездепух
13206 / 6841 / 1822
Регистрация: 18.10.2014
Сообщений: 17,302
|
||
| 04.04.2020, 08:05 | ||
|
Вопрос фактически в том и состоит, как правильно "добавить рэндомно 21 единицу". Как вы предлагаете это сделать?
0
|
||
|
"C with Classes"
|
||
| 04.04.2020, 09:08 | ||
|
2. Проверить есть ли 1 по указанному индексу. а. Если есть то возвращаемся к шагу 1. б. Если нет то увеличиваем счетчик единиц, пишем единицу в сгенерерированную позицию, 3. Если счетчик равен 21 Стоп, в противном случае возвращаемся к шагу 1.
0
|
||
|
Вездепух
13206 / 6841 / 1822
Регистрация: 18.10.2014
Сообщений: 17,302
|
||
| 04.04.2020, 09:18 | ||
|
Справедливости ради надо заметить, что такой алгоритм вполне применим и даже является лучшим для генерации маленького количества единиц. А вот использовать такой алгоритм для генерации относительно большого количества единиц - это уже профанация. Где проходит водораздел между "маленьким" и "большим" - отдельная теория.
0
|
||
|
29 / 1 / 0
Регистрация: 25.02.2020
Сообщений: 82
|
||||||
| 22.04.2020, 08:50 [ТС] | ||||||
|
Коллеги, спасибо за Ваши рекомендации, решил следующим образом (ответ, как обычно, опять лежал на поверхности
):
0
|
||||||
|
Вездепух
13206 / 6841 / 1822
Регистрация: 18.10.2014
Сообщений: 17,302
|
|
| 22.04.2020, 08:58 | |
|
0
|
|
|
2684 / 1343 / 483
Регистрация: 08.11.2016
Сообщений: 3,731
|
||||||
| 22.04.2020, 10:09 | ||||||
|
Народ, вы чего?
0
|
||||||
|
Вездепух
13206 / 6841 / 1822
Регистрация: 18.10.2014
Сообщений: 17,302
|
|
| 22.04.2020, 10:43 | |
|
0
|
|
|
2684 / 1343 / 483
Регистрация: 08.11.2016
Сообщений: 3,731
|
||
| 22.04.2020, 10:57 | ||
|
0
|
||
|
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,305
|
||||||
| 22.04.2020, 11:01 | ||||||
|
Нулей будет (приблизительно) в 2 раза больше, чем единиц:
0
|
||||||
|
2684 / 1343 / 483
Регистрация: 08.11.2016
Сообщений: 3,731
|
|
| 22.04.2020, 11:03 | |
|
alexu_007, опоздал )))
0
|
|
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
|
|
| 22.04.2020, 11:07 | |
|
Он не только опоздал, он неправильно сделал. Точнее, он решил не поставленную задачу.
0
|
|
|
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
|
|||
| 22.04.2020, 11:38 | |||
|
0
|
|||
|
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,305
|
||||
| 22.04.2020, 15:55 | ||||
|
Добавлено через 13 минут
0
|
||||
|
2684 / 1343 / 483
Регистрация: 08.11.2016
Сообщений: 3,731
|
|
| 22.04.2020, 16:26 | |
|
0
|
|
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
|
|
| 22.04.2020, 17:33 | |
|
Задача не только о том, что массив двумерный, но и о том, что нулей должно оказаться в нём ровно в два раза больше, чем единиц. Не приблизительно, а именно что ровно. Но условие задачи составлено недостаточно точно, поэтому возникает проблема, о которой ТС спрашивал: при условии, что массив [8][8], невозможно записать в массив нулей ровно в два раза больше, чем единиц. Идея задачи в том, что для любого сгенерированного массива [8][8] количество нулей одинаково с количеством нулей, и количество единиц всегда одинаково с количеством единиц каждого, а количество нулей при этом не менее, чем в два раза превышает число единиц, т. е. что 1/3 массива — это единицы, а 2/3 массива — нули.
0
|
|
|
694 / 304 / 99
Регистрация: 04.07.2014
Сообщений: 851
|
|||||||
| 22.04.2020, 20:12 | |||||||
|
Так что:
0
|
|||||||
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
|
|
| 22.04.2020, 20:21 | |
|
В два раза больше — это ровно в два раза больше, это не меньше, чем в два раза больше, и не больше, чем в два раза больше. Не вижу смысла и не буду вступать в диалог со всеми, кто этого не понимает.
0
|
|
|
694 / 304 / 99
Регистрация: 04.07.2014
Сообщений: 851
|
||
| 22.04.2020, 20:25 | ||
|
Ещё немного о задании: 64 не делится на 3. значит нулей не может быть ровно в два раза больше единиц. Что ещё мог иметь в виду автор задачи? Например вероятность выпадения 0 в два раза больше вероятности выпадения 1.
Или ещё вариант.: Кликните здесь для просмотра всего текста
Т.к.
0
|
||
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
|
|
| 22.04.2020, 20:42 | |
|
Предложенный способ с действительными числами был уже выбран и предложен Yetti, только это филькина грамота, хотя само решение в таком виде действительно и справедливо должно считаться решением поставленной задачи, в отличие от предложенной генерации a[i][j] = (rand() % 3 > 1) ? 1 : 0;. Так составлено условие, что решение с действительными числами отвечает запросу. А филькина грамота, потому что так можно в 1 ячейку запихнуть единицу, в 2 другие по нулю, а в остальные любые другие числа, после чего ходить с поднятой головой и гордо считать себя программистом: в задании же не сказано, что массив состоит только из нулей и единиц.
0
|
|
|
694 / 304 / 99
Регистрация: 04.07.2014
Сообщений: 851
|
||
| 22.04.2020, 20:43 | ||
|
0
|
||
| 22.04.2020, 20:43 | |
|
Сгенерируйте серию случайных чисел из 0, 1, 2 так, чтобы количество двоек было равно количеству единиц сделать так чтобы a было больше b Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь
lIs4oanZS9Y
|
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу.
До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения
Продолжаю серию постов о дискретно-событийной модели рабочего. . .
|
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
|
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
|