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

Матрица Барьеров

12.03.2020, 15:26. Показов 1233. Ответов 4

Студворк — интернет-сервис помощи студентам
Здравствуйте, заранее извиняюсь за свой глупый вопрос, но иначе никак.
Нам Даны три матрицы: Угрозы-Объекты(М1), Угрозы-Средство Защиты(М2), Средство Защиты-Объекты(М3)
Сама задача очень проста, изначально в М1 показано каким объектам угрожают опасность. При помощи таблицы М2 и М3 мы вычисляем какие угрозы защита смогла нейтролизовать, а какие смогла пропустить.
То есть изначально смотрим, что в М1 угроза угрожает первому объекту. Смотрим в м2 и видим, что первая угроза взаимодействует с Защитой 1,2,4. Дальше смотрим в М3 и видим, что защита 1 нейтрализует угрозу в 1 объекте. Значит в М1 заменяется 1 на 0, так как защита уничтожила угроза, и так далее.То есть на выходе мы должны показать новую таблицу М1, но уже после работы средств защиты, чтобы показать сколько угроз защита пропустила.







Ох понимаю, что наверное очень глупо звучит из моих уст и очень непонятно, но для меня, если создать сами эти матрицы не пробелма, то заставить программму взаимодействовать между всеми тремя для меня полный шок
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.03.2020, 15:26
Ответы с готовыми решениями:

Создание физических барьеров в 2д игре с видом сверху
Создаю игру как написано выше. Не могу придумать как сделать физические ограничения передвижения игрока(барьеры). OpenGL

Дана квадратная матрица А порядка n. Проверить, является ли матрица единичной.
Ребят,помогите решить задачу "Дана квадратная матрица А порядка n. Проверить, является ли матрица единичной"

Дана квадратная матрица А порядка n. Проверьте, является ли матрица единичной
Дана квадратная матрица А порядка n. Проверьте, является ли матрица единичной. Описать с помощью функций и процедур. Ввод-вывод в текстовый...

4
 Аватар для Annemesski
2670 / 1333 / 479
Регистрация: 08.11.2016
Сообщений: 3,679
12.03.2020, 16:32
Если плюс минус, более или менее, где-то как-то, возможно, правильно понял задачу, то решить её можно с помощью массива указателей: для каждой матрицы (назовем их матрицы сущьностей - это Ваши М1, М2, М3) создаете аналогичную по размерности матрицу указателей, где по индексу элемента лежит указатель (или массив указателей в случае связи один ко многим) на элемент в другой матрице сущьностей, таким образом Вы получите возможность по индексу элемента из одной матрицы сущьностей получить доступ к элементам другой матрицы сущьностей.
0
 Аватар для zayats80888
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
12.03.2020, 17:21
Лучший ответ Сообщение было отмечено 1shepr1 как решение

Решение

1shepr1, если угроза i воздействует на объект j, то для каждой k-ой строки с 1 в j-ом столбце матрицы M3 нужно проверить, существует ли 1 в k-ом столбце i-ой строки матрицы М2, если существует - угроза устранена, переходишь к следующей.

Добавлено через 2 минуты
Хотя возможно это как то проще через графы решается, но я в них не разбирался ещё

Добавлено через 38 минут
кот по твоим картинкам (только из последней картинки мне непонятно, чем нейтрализована 5 угроза 5 объекту и 7 угроза 1 объекту)
Кликните здесь для просмотра всего текста
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <iostream>
 
template<size_t m, size_t n> void print_matrix(bool(&mat)[m][n], const char* str)
{
    std::cout << str << std::endl;
    for (size_t i{}; i < m; ++i)
    {
        for (size_t j{}; j < n; ++j)
        {
            std::cout << mat[i][j] << ' ';
        }
        std::cout << std::endl;
    }
}
 
int main()
{
    constexpr size_t threats = 7;
    constexpr size_t objects = 7;
    constexpr size_t defenses = 4;
 
    bool thr_obj[threats][objects]
    {
        1,1,0,1,0,1,0,
        0,1,1,0,0,0,1,
        0,1,1,0,1,1,1,
        1,0,0,0,1,0,0,
        0,1,1,0,1,0,0,
        0,0,0,0,0,1,0,
        1,1,1,0,0,1,1
    };
 
    bool thr_def[threats][defenses]
    {
        1,1,0,1,
        0,0,1,1,
        1,0,0,1,
        1,0,1,0,
        0,1,1,0,
        1,0,1,0,
        0,1,1,1
    };
 
    bool def_obj[defenses][objects]
    {
        1,0,0,0,0,0,0,
        0,1,0,1,0,0,0,
        0,0,1,1,0,0,1,
        0,0,0,0,1,1,1
    };
 
    print_matrix(thr_obj, "before:");
 
    for (size_t i{}; i < threats; ++i)
    {
        for (size_t j{}; j < objects; ++j)
        {
            if (thr_obj[i][j])
            {
                for (size_t k{}; k < defenses; ++k)
                {
                    if (def_obj[k][j] && thr_def[i][k])
                    {
                        thr_obj[i][j] = false;
                        break;
                    }
                }
            }
        }
    }
 
    print_matrix(thr_obj, "after:");
}
1
0 / 0 / 0
Регистрация: 12.03.2020
Сообщений: 3
12.03.2020, 17:49  [ТС]
zayats80888, Спасибо огромное, Программа чертовски хорошая, только там я скрины как пример привёл, а сама программа должна такие операции проводить с любыми значениями, то есть вбивать самостоятельно. А вот насчёт 5 угроза 5 объекту и 7 угроза 1 объекту, это уже можно спихнуть на ошибку в примере
а в остальном спасибо вам огромное, ваша программа почти всё мне прояснила!
0
 Аватар для zayats80888
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
12.03.2020, 17:55
Цитата Сообщение от 1shepr1 Посмотреть сообщение
а сама программа должна такие операции проводить с любыми значениями, то есть вбивать самостоятельно
ну так вы писали
Цитата Сообщение от 1shepr1 Посмотреть сообщение
но для меня, если создать сами эти матрицы не пробелма
по этому переделать на динамику, я думаю, не составит труда
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.03.2020, 17:55
Помогаю со студенческими работами здесь

Как доказать то, что матрица и транспонированная ей матрица имеют одинаковые собственные числа?
Как доказать то, что матрица и транспонированная ей матрица имеют одинаковые собственные числа с одинаковой кратностью? Добавлено...

Матрица:Даны натуральное число n, действительная матрица размера n х 9. Найти среднее арифметическое: каждого
Даны натуральное число n, действительная матрица размера n х 9. Найти среднее арифметическое: каждого из столбцов.

Непонятки с DirectX (матрица поворота, камера, матрица проекции)
Возник вопрос по DirectX, точнее по матрицам Вопрос 1: D3DXMATRIXA16 matWorld; UINT iTime = timeGetTime() % 10000; ...

Матрица:Даны натуральное число n, действительная матрица размера n х 9. Найти среднее арифметическое: каждого из столбцов
Даны натуральное число n, действительная матрица размера n х 9. Найти среднее арифметическое: каждого из столбцов.

Дана матрица целых чисел, из n строк и n столбцов (n < = 100).Определить является ли матрица нулевой (состоит из одних нулей)
#include &lt;iostream.h&gt; #include &lt;iomanip.h&gt; #include&lt;conio.h&gt; void main() { int mas; int N; int max_element; int...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru