1 / 1 / 0
Регистрация: 23.12.2020
Сообщений: 20

Заменить в матрице нули на единицы

29.08.2021, 10:11. Показов 2191. Ответов 11

Студворк — интернет-сервис помощи студентам
У меня есть матрица которая рандомно заполнена нулями и единицами. Задача состоит в том, что бы заменить все нули на единицы. Сложность заключается в том, что функция которая меняет значения на противоположное, заодно меняет и соседние значения на противоположные. Продемонстрирую на картинке, изначально матрица заполнена нулями, допустим мы хотим поменять значение на противоположное, в ячейке (2,2). Вызываем функцию replace(2,2), и после этого матрица имеет вид:

То есть, кроме значения которые мы хотели изменить (2,2), изменились и остальные значение которые выделены желтым. Задача состоит в том, что бы написать функцию, алгоритм которой, путем вызова replace(x,y) заменит все значения нулей на единицы. И в итоге матрица будет состоять только из единиц.
У меня уже закончились все идеи как этот алгоритм можно реализовать, поэтому прошу помощи у вас
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.08.2021, 10:11
Ответы с готовыми решениями:

Скопировать в новый текстовый файл все символы исходного, заменив все нули на единицы, а единицы на нули
Дан текстовый файл f. Переписать в файл g все компоненты файла f с заменой символа 0 на символ 1 и наоборот

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

Определить, сколько всего нулей в исходной матрице, и, если их больше чем количество строк в матрице, заменить нули на N
Определить, сколько всего нулей в исходной матрице, и, если их больше чем количество строк в матрице, заменить нули на это количество. ...

11
 Аватар для YUEN HOIFEF
252 / 185 / 47
Регистрация: 31.01.2021
Сообщений: 934
29.08.2021, 10:27
не может быть, чтоб это было трудно.

Добавлено через 1 минуту
egorio,
Если число не единица то надо зделать его единицей.
0
1 / 1 / 0
Регистрация: 23.12.2020
Сообщений: 20
29.08.2021, 10:36  [ТС]
Не так всё просто, заменить значение на противоположное можно только через функцию replace(x,y), в свою очередь эта функция кроме нужного значение, изменяет ещё несколько значение на противоположные. Я в примере показал как это происходит, для наглядности возьмем матрицу из примера и заменим функцией replace ещё одно значение (4,4):
0
фрилансер
 Аватар для Алексей1153
6391 / 5547 / 1118
Регистрация: 11.10.2019
Сообщений: 14,762
29.08.2021, 10:39
egorio, код то покажи )
0
 Аватар для YUEN HOIFEF
252 / 185 / 47
Регистрация: 31.01.2021
Сообщений: 934
29.08.2021, 10:54
egorio,
Не пониял. Возможно лучше будеть применить replace при ЗАДАННОМ условии. Напр:
C++
1
if( array[ y ][ x ]==0 ) replace( y, x );
0
1 / 1 / 0
Регистрация: 23.12.2020
Сообщений: 20
29.08.2021, 10:55  [ТС]
Алексей1153, изначально имеется матрица рандомно заполненная нулями и единицами.
C++
1
vector<vector<bool>> matrix;
Функция замены:
C++
1
2
3
4
5
6
7
8
9
10
11
bool replace(int x, int y)
{
    if (x >= xSize || y >= ySize)
        return false;
    for (int i = 0; i < xSize; i++)
        matrix[i][y] = !matrix[i][y];
    for (int i = 0; i < ySize; i++)
        matrix[x][i] = !matrix[x][i];
    matrix[x][y] = !matrix[x][y];
    return true;
}
И нужно реализовать функцию, которая будет вызывать replace по какому-то алгоритму, и заменит все нули на единицы в matrix
0
фрилансер
 Аватар для Алексей1153
6391 / 5547 / 1118
Регистрация: 11.10.2019
Сообщений: 14,762
29.08.2021, 11:08
Цитата Сообщение от egorio Посмотреть сообщение
заполненная нулями и единицами
не вижу, чтобы где-то было заполнение. И даже функции main не наблюдается

Добавлено через 7 минут
egorio, так ?

C++
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
#include <vector>
#include <iostream>
 
void replace(std::vector<std::vector<uint8_t>>& matrix)
{
    //заменяем все нули на единицы
    for(auto& row:matrix)
    {
        for(auto& col:row)
        {
            if(col==0)col=1;
        }
    }
}
 
int main()
{
    std::vector<std::vector<uint8_t>> matrix
    {
        {3,5,0},
        {0,1,0},
        {3,0,9},
    };
    
    replace(matrix);
    
    for(auto& row:matrix)
    {
        for(auto& col:row)
        {
            std::cout<<(uint16_t)col<<',';
        }
        std::cout<<'\n';
    }
}
3,5,1,
1,1,1,
3,1,9,
0
 Аватар для YUEN HOIFEF
252 / 185 / 47
Регистрация: 31.01.2021
Сообщений: 934
29.08.2021, 11:26
Надо упрощать replace .Цикл там никчему. Функци называется replacexy а не replaceall. Цикл будет в main()
0
фрилансер
 Аватар для Алексей1153
6391 / 5547 / 1118
Регистрация: 11.10.2019
Сообщений: 14,762
29.08.2021, 11:33
а, вононочо, я не так понял.

да, всё пробегать не нужно. Проверяем, существует ли указанная строка, затем - колонка. После этого заменяем одно значение
0
 Аватар для SmallEvil
3938 / 2843 / 794
Регистрация: 29.06.2020
Сообщений: 10,448
29.08.2021, 15:38
Это не правильная постановка задачи.

Это логическая игра. Тыкаешь по клетке, ряд и столбец инвертируются (0<->1).
Переключая таким образом нужно установить все поле в 1.
Вот я не знаю точно, возможно ли это при рандомном заполнении.
0
1 / 1 / 0
Регистрация: 23.12.2020
Сообщений: 20
29.08.2021, 15:39  [ТС]
Во первых матрица состоит только из нулей и единиц. Во вторых, функцию replace я менять не могу. Мне нужно реализовать функцию, в которой будет по какому-то алгоритму вызываться replace, c некоторыми x,y. И в конце рандомно заполненная матрица должна иметь только единицы

Добавлено через 1 минуту
Да, что-то типа такого
0
732 / 693 / 110
Регистрация: 29.05.2015
Сообщений: 4,220
29.08.2021, 17:02
Фигня всё это. Красиво будет, если матрица на экране будет как на картинке выше, но со всеми нулями, а при движении мышки ячейка под указателем мыши подсвечивается красным, горизонтали и вертикали жёлтым, и нули меняются на единицы. Убираем мышь - и на экране снова скучные белые нули.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.08.2021, 17:02
Помогаю со студенческими работами здесь

Заменить в матрице нули на пробелы
Добрый день всем. Хотел узнать 1 вопрос. Есть двумерный массив,заполненный 0 и 1. Как вывести данный массив,чтобы остались только...

Замена нулей на единицы и единицы на нули в матрицах с использованием функций
Всем доброго времени суток! Пишу программу в которой должна производиться замена нулей, в третьем столбце, на единицы в матрице а. А в...

В матрице заменить значения элементов побочной диагонали на единицы
Помогите пожалуйста. Заранее спасибо! В матрице заменить значения элементов побочной диагонали на единицы.

В матрице заменить значения элементов побочной диагонали на единицы
Помогите пожалуйста написать код программы(( В матрице заменить значения элементов побочной диагонали на единицы.

Заменить в матрице все элементы, большие от 10, на нули
составьте программу замены в прямоугольном массиве А всех элементов, большие от 10, на нуле.


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как писать чистый, тестируемый и качественный код на Python
py-thonny 12.07.2025
Помню свой первый проект на Python. Работал тогда быстро, грязно, лишь бы работало. Код был похож на запутанный клубок - переменные по одной букве, функции на 200 строк, комментарии отсутствовали как. . .
Blazor и контроллер сервопривода IoT Meadow Maple
Wired 11.07.2025
Я решил разобраться, как можно соединить современные веб-технологии с миром "железа". Интересная комбинация получилась из Blazor в качестве веб-интерфейса и микроконтроллера Meadow с его веб-сервером. . .
Генерация OpenQASM из кода Q#
EggHead 10.07.2025
Летом 2024-го я начал эксперименты с библиотекой Q# Bridge, и знаете что? Она оказалась просто находкой для тех, кто работает на стыке разных квантовых экосистем. Основная фишка этой библиотеки -. . .
Изучаем новый шаблон ИИ-чата .NET AI Chat Web App
stackOverflow 10.07.2025
В . NET появилось интересное обновление - новый шаблон ИИ-чата под названием . NET AI Chat Web App. Когда я впервые наткнулся на анонс этого шаблона, то сразу понял, что Microsoft наконец-то. . .
Результаты исследования от команды ARP (июль 2025 г.)
Programma_Boinc 10.07.2025
Результаты исследования от команды ARP (июль 2025 г. ) Африканский проект по дождям (ARP) World Community Grid снова запущен! Мы рады поделиться обновленной информацией о нашем прогрессе с осени. . .
Angular vs Svelte - что лучше?
Reangularity 09.07.2025
Сегодня рынок разделился на несколько четких категорий: тяжеловесы корпоративного уровня (Angular), гибкие универсалы (React), прогрессивные решения (Vue) и новая волна компилируемых фреймворков. . .
Code First и Database First в Entity Framework
UnmanagedCoder 09.07.2025
Entity Framework дает нам свободу выбора, предлагая как Code First, так и Database First подходы. Но эта свобода порождает вечный вопрос — какой подход выбрать? Entity Framework — это. . .
Как использовать Bluetooth-модуль HC-05 с Arduino
Wired 08.07.2025
Bluetooth - это технология, созданная чтобы заменить кабельные соединения. Обычно ее используют для связи небольших устройств: мобильных телефонов, ноутбуков, наушников и т. д. Работает она на частоте. . .
Руководство по структурам данных Python
AI_Generated 08.07.2025
Я отчетливо помню свои первые серьезные проекты на Python - я писал код, он работал, заказчики были относительно довольны. Но однажды мой наставник, взглянув на мою реализацию поиска по огромному. . .
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах
Programma_Boinc 08.07.2025
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах Опубликовано: 07. 07. 2025 Рубрика: Uncategorized Автор: AlexA Статья размещается на сайте с разрешения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru