|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.04.2012, 20:29 | #1 |
Пользователь
Регистрация: 11.03.2011
Сообщений: 19
|
Простой вопрос про графы.
В алгоритмах на графах при построении весовой матрицы пишут, что если одна вершина не соединена с другой присвоить метку бесконечность. Что это значит? Просто присвоить большое число?
|
13.04.2012, 22:09 | #2 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,336
|
2Freewill
это специальное битовое представление числа с плавающей точкой. не зависит от языка, это фишка архитектуры. в С, к примеру есть константы INFINITY и NAN (заметь, что использовать эти константы можно только с типом с плавающей точкой). Да, это какое-то большое число. а в графах эти бесконечности удобны тем, что не нужно хранить дополнительный флаг, существует путь из одной вершины в другую.
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
13.04.2012, 22:15 | #3 |
Форумчанин
Регистрация: 29.09.2010
Сообщений: 636
|
лучше не делать INT_MAX, т.к если потом придется суммировать веса ребер, то будет переполнение
|
13.04.2012, 22:17 | #4 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,336
|
2onewho
дык если использовать INT_MAX как флаг, то и проверять вес нужно на INT_MAX перед суммированием. а точнее, перед обработкой ребра
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
15.04.2012, 02:07 | #5 |
Форумчанин
Регистрация: 29.09.2010
Сообщений: 636
|
pproger, может, действительно и так, глубоко не задумывался над вопросом)
выходит, как встретили int_max --> сумма = int_max + break; |
15.04.2012, 10:47 | #6 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Если по условию задачи вес ребра строго неотрицательный - используйте лучше вместо бесконечности -1. Если строго положительный - можно даже 0.
Присваивают бесконечность только в рамках самих алгоритмов, в конкретной реализации нужно искать какой-то другой подход (если только в языке не определено понятие бесконечности, отвечающее правилу inf+something=inf или же не реализован соответствующий класс - но класс это почти наверняка слишком сложное решение для такой задачи).
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Простой вопрос про DLL. | BadProgrammer | Общие вопросы C/C++ | 10 | 05.08.2011 19:08 |
Про ГРАФЫ, друзей, врагов, добро и зло! | Ksardas13 | Общие вопросы C/C++ | 4 | 30.05.2011 03:26 |
Простой вопрос про память | Les_55 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 9 | 17.12.2009 12:28 |
Статья про графы | k1r1ch | Помощь студентам | 3 | 26.10.2009 20:56 |
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) | Albert2008 | Общие вопросы Delphi | 4 | 21.08.2008 15:33 |