|
29 / 1 / 0
Регистрация: 25.02.2020
Сообщений: 82
|
|
Замолнить матрицу рандомно так чтобы нулей было в 2 раза больше чем единиц03.04.2020, 13:52. Показов 4323. Ответов 49
Метки массивы c++ (Все метки)
Доброго времени суток.
Подскажите, как заполнить двумерный массив 8х8 случайными числами от 0 до 1, так, чтобы нулей было в 2 раза больше едениц? Как по мне, так эта задача не имеет решения, т.к.: В данном массиве 64 ячейки. Максимальное количество едениц - 21, тогда нулей - 42, общее количество занятых ячеек - 63. Одна ячейка будет пустой. В противном случае будет переполнение массива. Но, если опустить условие о том, чтобы нулей было в 2 раза больше чем едениц, как сделать так, чтобы нулей было всегда больше, чем едениц?
0
|
|
| 03.04.2020, 13:52 | |
|
Ответы с готовыми решениями:
49
|
|
Вездепух
12933 / 6801 / 1820
Регистрация: 18.10.2014
Сообщений: 17,213
|
||
| 04.04.2020, 08:05 | ||
|
Вопрос фактически в том и состоит, как правильно "добавить рэндомно 21 единицу". Как вы предлагаете это сделать?
0
|
||
|
"C with Classes"
|
||
| 04.04.2020, 09:08 | ||
|
2. Проверить есть ли 1 по указанному индексу. а. Если есть то возвращаемся к шагу 1. б. Если нет то увеличиваем счетчик единиц, пишем единицу в сгенерерированную позицию, 3. Если счетчик равен 21 Стоп, в противном случае возвращаемся к шагу 1.
0
|
||
|
Вездепух
12933 / 6801 / 1820
Регистрация: 18.10.2014
Сообщений: 17,213
|
||
| 04.04.2020, 09:18 | ||
|
Справедливости ради надо заметить, что такой алгоритм вполне применим и даже является лучшим для генерации маленького количества единиц. А вот использовать такой алгоритм для генерации относительно большого количества единиц - это уже профанация. Где проходит водораздел между "маленьким" и "большим" - отдельная теория.
0
|
||
|
29 / 1 / 0
Регистрация: 25.02.2020
Сообщений: 82
|
||||||
| 22.04.2020, 08:50 [ТС] | ||||||
|
Коллеги, спасибо за Ваши рекомендации, решил следующим образом (ответ, как обычно, опять лежал на поверхности
):
0
|
||||||
|
Вездепух
12933 / 6801 / 1820
Регистрация: 18.10.2014
Сообщений: 17,213
|
|
| 22.04.2020, 08:58 | |
|
0
|
|
|
2673 / 1335 / 480
Регистрация: 08.11.2016
Сообщений: 3,687
|
||||||
| 22.04.2020, 10:09 | ||||||
|
Народ, вы чего?
0
|
||||||
|
Вездепух
12933 / 6801 / 1820
Регистрация: 18.10.2014
Сообщений: 17,213
|
|
| 22.04.2020, 10:43 | |
|
0
|
|
|
2673 / 1335 / 480
Регистрация: 08.11.2016
Сообщений: 3,687
|
||
| 22.04.2020, 10:57 | ||
|
0
|
||
|
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,267
|
||||||
| 22.04.2020, 11:01 | ||||||
|
Нулей будет (приблизительно) в 2 раза больше, чем единиц:
0
|
||||||
|
2673 / 1335 / 480
Регистрация: 08.11.2016
Сообщений: 3,687
|
|
| 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
|
|||
|
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,267
|
||||
| 22.04.2020, 15:55 | ||||
|
Добавлено через 13 минут
0
|
||||
|
2673 / 1335 / 480
Регистрация: 08.11.2016
Сообщений: 3,687
|
|
| 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 | |
|
Помогаю со студенческими работами здесь
40
Сгенерируйте серию случайных чисел из 0, 1, 2 так, чтобы количество двоек было равно количеству единиц сделать так чтобы a было больше b Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|