|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.12.2009, 15:11 | #1 |
Регистрация: 16.12.2009
Сообщений: 8
|
Матрица инцидентности.
Здравствуйте, помогите пожалуйста.
Мне для решения моей задачи необходимо создать матрицу инцидентности. Входные данные пары цифр(не повторяются), пример 3 4, 2 3, 4 5, 1 2. Т.е. должен получиться ориентированный граф, 1->2->3->4->5. Если необходимо, во входных данных можно добавить ещё кол-во пар, или сколько всего цифр. Заранее спасибо! |
16.12.2009, 15:50 | #2 |
Форумчанин
Регистрация: 02.06.2009
Сообщений: 218
|
ну вообще это легкая задача, для начала надо принять количество вершин:
Код:
Код:
Код:
|
16.12.2009, 16:12 | #3 |
Регистрация: 16.12.2009
Сообщений: 8
|
Ну как организовать обход двумерного массива я знаю, а того что мне не понятно, вы как раз и не написали=(.
|
16.12.2009, 18:36 | #4 |
Форумчанин
Регистрация: 02.06.2009
Сообщений: 218
|
Вы не понимаете как дать понять программе чтобы она зltлала такую матрицу?:
0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 |
16.12.2009, 19:07 | #5 |
Регистрация: 16.12.2009
Сообщений: 8
|
На сколько я знаю, в матрице инцидентности ещё присутствует -1, т.е. 1 значит что связь j «выходит» из вершины i, а -1 связь «входит» в вершину. Мне не понятно как непосредственно из моих входящих данных построить такую матрицу, тем более, что мб такой случай 5 4, 4 2, 2 1. И соответственно искомая очередь будет 5-4-2-1. Как мне в таком случаи пронумеровать столбцы матрицы?
|
16.12.2009, 21:14 | #6 |
Форумчанин
Регистрация: 02.06.2009
Сообщений: 218
|
ну я фиг знает, когда я курсовик делал на тему "2-х связные компоненты", я обходил граф в глубину и у меня была сначало матрица инцидентности и в университет нам ее показывали и у меня был зачот и попадался вопрос как можно представить граф. Там была матрица инцидентности, если стоит 1, то значит связь существует, если 0, то связи нету. Ну можно конечно представить и -1, типа связи нету, нету разницы. А строить такую матрицу легко, типа i -это одна вершина, j - другая, если Вы хотите чтобы вершина 1 была смежна с вершиной 3, то в матрице инцидентности пишите вот так вот:
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 это у нас ориентированный граф, т.е. 1 -> 3, если бы было вот так вот: 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 то это неориентированный граф. Ну а если Вам нравится -1, то вместо 0 можете представить -1. |
16.12.2009, 21:34 | #7 |
Регистрация: 16.12.2009
Сообщений: 8
|
Странно, нас учат немного по другому, например дано следующее 2->4, 3->2, 4->6. А матрицу инц. для этого случая я представляю себе так:
| 2 4 3 6 -------------- 1| 1 -1 0 0 2| -1 0 1 0 3| 0 1 0 -1 Это матрицу я попробовал нарисовать, столбцы - все возможные цифры, строки - номера пар. У меня проблема в том, что я не понимаю как в цикле передвигаться по столбцам, когда они вот таким например образом "пронумерованы". Матрица немного косая вышла, но думаю смыл должен быть ясен) Последний раз редактировалось Rayman; 16.12.2009 в 21:37. |
16.12.2009, 22:37 | #8 |
Форумчанин
Регистрация: 02.06.2009
Сообщений: 218
|
если я правильно понял с матрицей инцидентности, то:
в столбце у тебя (1,2,3) - вершины, а в строке (2,4,3,6) - ребра. Если (1,2) = 1, то значит вершина 1 есть начало ребра 2, а вот вершина 2 является концом ребра 2. Так? |
16.12.2009, 22:41 | #9 |
Регистрация: 16.12.2009
Сообщений: 8
|
Вроде так.+)
|
16.12.2009, 22:48 | #10 |
Форумчанин
Регистрация: 02.06.2009
Сообщений: 218
|
ну значит у Вас в матрице которую написали в последний раз, кажись косячок, ребро не может идти из вершины в никуда и не может из ни откуда идти в вершину... кажись... 1 вариант может быть еще может существовать,а вот второй... это как задача о Комивояжоре(кажись так фамилия чела одного). Ладно, а вот матрицу инцидентности Вам надо создать так сказать из "пустоты", ну т.е. только кол-во ребер принять и их связать в формате орграфа? И безразлично как он будет выглядеть или же там еще какие то данные программа должна получать?
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
TurboPascal: графы, матрицы смежности и матрицы инцидентности. | ulala | Помощь студентам | 1 | 03.03.2011 19:28 |
Непонятки с DirectX (матрица поворота, камера, матрица проекции) | ROD | Общие вопросы C/C++ | 2 | 17.09.2010 17:00 |
TurboPascal: граф, матрица смежности и матрица инцидентности. | ulala | Помощь студентам | 0 | 02.12.2009 10:11 |
Матрица | Almost456 | Паскаль, Turbo Pascal, PascalABC.NET | 11 | 07.12.2008 02:04 |