Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2012, 20:29   #1
Freewill
Пользователь
 
Аватар для Freewill
 
Регистрация: 11.03.2011
Сообщений: 19
По умолчанию Простой вопрос про графы.

В алгоритмах на графах при построении весовой матрицы пишут, что если одна вершина не соединена с другой присвоить метку бесконечность. Что это значит? Просто присвоить большое число?
Freewill вне форума Ответить с цитированием
Старый 13.04.2012, 22:09   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 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
pproger вне форума Ответить с цитированием
Старый 13.04.2012, 22:15   #3
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

лучше не делать INT_MAX, т.к если потом придется суммировать веса ребер, то будет переполнение
onewho вне форума Ответить с цитированием
Старый 13.04.2012, 22:17   #4
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 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
pproger вне форума Ответить с цитированием
Старый 15.04.2012, 02:07   #5
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

pproger, может, действительно и так, глубоко не задумывался над вопросом)
выходит, как встретили int_max --> сумма = int_max + break;
onewho вне форума Ответить с цитированием
Старый 15.04.2012, 10:47   #6
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Если по условию задачи вес ребра строго неотрицательный - используйте лучше вместо бесконечности -1. Если строго положительный - можно даже 0.
Присваивают бесконечность только в рамках самих алгоритмов, в конкретной реализации нужно искать какой-то другой подход (если только в языке не определено понятие бесконечности, отвечающее правилу inf+something=inf или же не реализован соответствующий класс - но класс это почти наверняка слишком сложное решение для такой задачи).
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простой вопрос про 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