Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Сходства матриц разной размерности

Ответить
Настройки темы
C/C++ - Сходства матриц разной размерности

Старожил


Сообщения: 160
Благодарности: 0

Профиль | Отправить PM | Цитировать


Однажды по программированию(в ВУЗе) препод спросил: "Кто ранее программировал?" Я поднял руку, и вот он мне дал пару задач для индивидуальной работы, первую я сделал, немного подумав, а вот со второй дела сложнее,
-=Нужно найти сходства в двух матрицах разной размерности=-
Препод сказал, что поиск сходства должен выполняться так как я понимаю само значение "сходства", тоесть могу элементы двух матриц с одинаковыми индексами проверить, н оэто будет детской задачей)))

Думаю нужно вот так:
Например есть матрици:
0 0 1 0
0 1 1 1
0 1 1 0
0 0 0 1

и

1 1
1 0

и определить есть ли в них сходства, в данном случае есть))

ну или с этой
0 1
0 1
0 0

Более часа раздумый и эксперементов привели к вот этому

-=-=-=-=-=-=-=-=-=-=-

#include "stdafx.h"
#include <iostream>
using namespace std;

int m1[9][9],m2[9][9];

int rand_m1_i=5,rand_m1_j=5,rand_m2_i=3,rand_m2_j=1;
int _tmain(int argc, _TCHAR* argv[])
{

for(int i=0;i<rand_m1_i;i++)
{
for(int j=0;j<rand_m1_j;j++)
{
cout << (m1[i][j]=rand()%2+1)<<" ";
}
cout << "\n";
}
cout << "\n";
for(int i=0;i<rand_m2_i;i++)
{
for(int j=0;j<rand_m2_j;j++)
{
cout << (m2[i][j]=rand()%2+1)<<" ";
}
cout << "\n";
}
cout << "\n";

for(int stroka=0;stroka<=rand_m1_i-rand_m2_i;stroka++)
{
for(int stolb=0;stolb<=rand_m1_j-rand_m2_j;stolb++)
{

for(int i=0+stroka;i<rand_m2_i+stroka;i++)
{
for(int j=0+stolb;j<rand_m2_j+stolb;j++)
{
if(m1[i][j]==m2[i-stroka][j-stolb])cout << "Y ";else cout << "N ";

}cout << "\n";
}cout << "\n";
}
}
return 0;
}

=-=-=-=-=-=-=-=-=-=-=

В данном случае получаем 2 матрицы заданой размерности(при чем вторая не должна быть больше первой) и, если визуально представить, перемещаем поверх первой матрицы вторую так, чтобы она прошлась по всем элементам первой.
"Лень со мной согласится", что задача выполнена, но возможно и нет))) Есть идея того, чтобы брать куски со второй матрицы и их так же таскать по первой, но это не сейчас.

Как думаете, этого достаточно?

Отправлено: 00:34, 05-10-2013

 
pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


алгоритм решения любой задачи:
1. формализация постановки
2. выбор метода решения
3. решение
xNiSSaNx, озвучь 1 (какой критерий выбрал, ограничения) и 2 (известное в мире название метода), и оберни тегами "code" 3, а то не понятно

Например:
1. найти N максимально похожих подблока 2x2 двух матриц размерами не менее 2x2
критерий похожести - попарная корреляция http://ru.wikipedia.org/wiki/%D0%9A%...86%D0%B8%D1%8F
2. вычислить корреляционную функцию R двух матриц с окном 2x2
отсортировать координаты матриц по убыванию R, вывести первые N элементов с указанием значения.
3...

Если останутся силы, варианты усложнения:
* использовать гладкое окно (http://ru.wikipedia.org/wiki/%CE%EA%...D4%F3%F0%FC%E5, читать про оконные функции)
* использовать БПФ для ускорения вычислений на больших матрицах
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:24, 05-10-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Сходства матриц разной размерности

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Помогите разобраться с моделями матриц. aNOOBis Ноутбуки 6 26-11-2012 09:35
Sony планирует инвестиции в производство КМОП-матриц OSZone News Новости информационных технологий 0 25-06-2012 06:30
обработка матриц в с++ sarmat991 Тест-форум 1 06-05-2012 20:40
Assm - Умножение матриц svdanik Программирование и базы данных 1 03-07-2011 00:15
Windows Server 2003 Standart Ed. и Small Business Ed. : сходства и отличия Kirill NN Хочу все знать 1 25-09-2006 17:43




 
Переход