Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/2: Рейтинг темы: голосов - 2, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 19.08.2015
Сообщений: 3
1

Построить матрицу по заданному алгоритму

19.08.2015, 17:15. Просмотров 488. Ответов 3
Метки нет (Все метки)

Товарищи, нужна помощь. Задача следующая: построить матрицу D. Что она из себя представляет? Эта матрица используется при подсчёте определителя суммы матриц мудрёным способом. Она строится следующим образом. Если нам нужно построить матрицу D(m), где m - некое число(пусть в моем примере оно будет равно 2) нам нужно рассмотреть вначале матрицу размерность https://www.cyberforum.ru/cgi-bin/latex.cgi?{m}^{m}хhttps://www.cyberforum.ru/cgi-bin/latex.cgi?{m}^{m}, в нашем случае 4х4:
https://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{pmatrix} (1,1)(1,1)&  (1,1)(1,2)&  (1,1)(2,1)& (1,1)(2,2)\\  (1,2)(1,1)&  (1,2)(1,2)&  (1,2)(2,1)& (1,2)(2,2)\\  (2,1)(1,1)&  (2,1)(1,2)&  (2,1)(2,1)& (2,1)(2,2)\\  (2,2)(1,1)&  (2,2)(1,2)&  (2,2)(2,1)& (2,2)(2,2)\end{pmatrix}
Как строится эта матрица: как видим ячейке IJ соответствуют 2 числовых набора I=(i1,i2) и J=(j1,j2) полученные путём составления всевозможных перестановок с повторением. И исходя из этой матрицы, по правилу : в случае, когда в наборах I и J все числа различны, то соответствующий элемент матрицы D вычисляется, используя формулу
https://www.cyberforum.ru/cgi-bin/latex.cgi?{D}^{(m)}(I,J)=\frac{1}{m!}{(-1)}^{Y} где Y=Y(I,J) определяет чётность перестановок
, в противном случае соответствующий элемент положим равным нулю(т.е. когда в наборах есть повторяющиеся числа).
на выходе получим матрицу
D=https://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{pmatrix} 0&  0&  0& 0\\  0&  1&  -1& 0\\  0&  -1&  1& 0\\  0&  0&  0& 0\end{pmatrix}
Так вот построение такой матрицы для любого m мне нужно запрограммировать используя C++. Просидев долгое время на cyber-форуме я нашёл пару способов нахождения всевозможных перестановок, но без повторения, т.е. числовой набор (1,2) имеет только 1 перестановку (2,1). А в моём случае 4. Это первая проблема. Вторая, это подсчёт чётности перестановок, а именно количества инверсий. Я нашёл тоже несколько способов, но не нашёл способа, который бы подошёл под мой случай: 2 набора и подсчитать количество инверсий относительно друг друга.
Если кто-то встречал подобную задачу или просто знает, как её решить, буду очень благодарен.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.08.2015, 17:15
Ответы с готовыми решениями:

Построить квадратную целочисленную матрицу указанного порядка по заданному правилу
Построить целочисленную матрицу A(10;10), заполнив её следующим образом: a(1,1)=1 ...

Построить матрицу по заданному образцу
Построить матрицу(6х6) , которая соответствует виду \begin{matrix}n & 0 & \cdots & 0 & n\\\\ 0...

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

Построить квадратную матрицу по заданному образцу
Помогите плиз решить задачу! Условие: построить квадратную матрицу A(n,n), n=10. чтобы выглядела...

3
0 / 0 / 0
Регистрация: 19.08.2015
Сообщений: 3
26.08.2015, 17:19  [ТС] 2
up, пожалуйста
0
2346 / 1767 / 377
Регистрация: 15.12.2013
Сообщений: 7,377
26.08.2015, 17:39 3

Не по теме:

Цитата Сообщение от maxoner Посмотреть сообщение
Эта матрица используется при подсчёте определителя суммы матриц мудрёным способом.
не проще сложить,а потом вычислить определитель?



Цитата Сообщение от maxoner Посмотреть сообщение
Если кто-то встречал подобную задачу или просто знает, как её решить, буду очень благодарен.
Можете дать более конкретную постановку задачи (включая описание алгоритма) + пару примеров входных и выходных данных.
0
0 / 0 / 0
Регистрация: 19.08.2015
Сообщений: 3
01.09.2015, 02:01  [ТС] 4
Да, можно просто сложить и посчитать определитель, но моя задача посчитать его именно таким мудрёным способом
Я, вроде, всё расписал подробно, в конце моего вопроса есть матрица 4х4, там нули и в центре 1 и -1. Входными данными для построения этой матрицы может быть число 2, что есть m, которое тоже фигурирует в моём вопросе. На данный момент проблема в том, что мне нужно как-то создать n массивов, либо векторов, которые будут заполнены всеми возможными перестановками с повторениями. Например входные данные m=2, значит в массиве 2 элемента; нужно создать массивы a1=(1,1) a2=(1,2) a3=(2,1) a4=(2,2). для m=3 таких массивов,например, по-моему, должно быть 27, нету под рукой данных, a1=(1,1,1) a2=(1,1,2) a3=(1,1,3) a4=(1,2,1) и так далее.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.09.2015, 02:01

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Массив: Построить вторую матрицу по заданному правилу
Дана матрица целых чисел(размеры и элементы вводит пользователь). Построить вторую матрицу по...

Построить матрицу смежности неорграфа, по заданному списку ребер
разработать и реализовать windows - приложение которое строит матрицу смежности неорграфа, по...

Зашифровать строку по заданному алгоритму.
Дана строка-предложение. Зашифровать ее, поместив вначале все символы, расположенные на четных...

Преобразовать строку по заданному алгоритму
Заданная строка S. Преобразовать S следующим образом: 1) удалить из S первое вхождение...

Преобразование строк по заданному алгоритму
Маленькая Элизабет любит играть со строками. У нее есть строка длины n, полностью состоящая из букв...

Вывести числа по заданному алгоритму
Помогите пожалуйста, нужно вывести числа на экран таким образом: 9 4 8 8 3 3 ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.