|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.09.2011, 00:05 | #1 |
Пользователь
Регистрация: 14.04.2011
Сообщений: 31
|
Проблема с типом данных
Доброго времени суток.Возник вопрос.
Необходимо реализовать алгоритм Литтла с матрицей смежности.Что касается самого алгоритма всё понятно.Но есть мелкая неприятность может кто то знает как её можно устранить.В матрице изначально по главной диагонали должна стоять бесконечность или прочерки в общем символ какой то .А матрица числового типа.Что можно и как вклинить чтобы не было конфликта типов?Пишу в delhi Заранее благодарен. |
17.09.2011, 00:13 | #2 |
Участник клуба
Регистрация: 03.06.2009
Сообщений: 1,814
|
прочерки - это нули?
тогда напиши код, чтоб все элементы по диагонали менялись с прочерков на числа. если у Вас массив имеет имя a[i,j] и размерность NxN, то как-то так: Код:
var a[1..N ,j..N] of Integer? или Real? ну, вобщем, числовой тип имеет или просто символьный Char?
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
Последний раз редактировалось NetSpace; 17.09.2011 в 00:15. |
17.09.2011, 00:20 | #3 |
Пользователь
Регистрация: 14.04.2011
Сообщений: 31
|
Шаг 1. В каждой из строк матрицы находим значение минимального элемента-та и вычитаем его из всех элементов этой строки.
Шаг 2. В каждом столбце получившейся матрицы находим значение минимального эл-та и вычитаем его из всех элементов этого столбца. Шаг 3. Далее в полученной матрице необходимо для каждого нулевого эл-та X[i,j] найти сумму минимального эл-та в i-ой строке и j-ом столбце. Шаг 4. Среди найденных сумм найти наибольшую и запомнить пару индексов [i,j] соответствующего ей нуля. Эта пара и будет одним из элементов искомого маршрута (она отражает перемещение из города с номером i в город с номером j ). Шаг 5. Вычеркнуть i-ую строку и j-ый столбец матрицы (с сохранением индексации), а на месте эл-та X[j,i] поставить "прочерк". Шаг 6. Повторять все действия начиная с шага 1 до тех пор, пока все эл-ты матрицы не окажутся вычеркнутыми. Я сначала тоже подумал про нули, но в самом алгоритме мы с нулями оперируем поэтому путаница выйдет. Вообще то там не прочерки там знаки бесконечности так как матрица смежности.http://uchimatchast.ru/teory/litl_primer2.php Вот в любом случае там по диагонали какое нить опознавание к числам не относящееся. Так что наверное придётся делать как то с 2-мя матрицами одной строковой другой числовой хотел конечно избежать этого но наверное не выйдет)). А тип матрицы у меня integer |
17.09.2011, 00:23 | #4 |
Участник клуба
Регистрация: 03.06.2009
Сообщений: 1,814
|
а бесконечность-то вы как в матрицу запишете??? я числа умею только...ну, тода запишите единички.
а, если прочерк означает, что эту строку вы читать не должны, тогда ставьте такое число, чтоб читалось и чтоб не было похоже на другие. скажем, со знаком -. ну -5 или -1. это если при условии, чтоу вас все остальные элементы заведомо положительные. и проверять удобно будет: Код:
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
Последний раз редактировалось NetSpace; 17.09.2011 в 00:26. |
17.09.2011, 00:27 | #5 |
Пользователь
Регистрация: 14.04.2011
Сообщений: 31
|
Да единички тоже запутают прогу. Ладно что нибудь придумаем.Спасибо за то что отозвались)).
|
17.09.2011, 00:30 | #6 |
Участник клуба
Регистрация: 03.06.2009
Сообщений: 1,814
|
ну тогда меняйте тип INTEGER не REAL и вместо прочерков записывайте числа с дробной частью, вроде как 1,5. и проверяйте их на целостность. так ещё можно промаркировать
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
|
17.09.2011, 00:42 | #7 |
Пользователь
Регистрация: 14.04.2011
Сообщений: 31
|
Впринципе можно делать просчёт по всем элементам кроме диагональных.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с типом данных | BMWSauber | Общие вопросы .NET | 1 | 12.10.2010 13:42 |
Проблема с типом данных при записи на сервер | Swatch | Microsoft Office Access | 1 | 09.04.2010 19:03 |
проблема с типом PBoolean | menoob | Общие вопросы C/C++ | 1 | 09.07.2009 00:52 |
Createprocess проблема с типом строк | Ky3Heu, | Общие вопросы Delphi | 2 | 08.04.2009 23:15 |
проблема с типом? | OLEG'arh | Помощь студентам | 4 | 03.03.2009 16:02 |