Здравствуйте, B0FEE664, Вы писали:
LVV>>>>Но полезно знать алгебру, вероятности, графы — это по-любому.
BFE>>>Зачем графы? Можно всю жизнь проработать программистом и ни разу не использовать граф в явном виде.
EP>>Так математика как раз и делает неявные структуры явными,
BFE>Но это ничего не даёт на практике.
Именно что даёт.
EP>>что упрощает коммуникацию и аккумулирование знаний.
BFE>Да, разумеется, только вот я не помню, что бы кто-то говорил нечто вроде:
BFE>...
BFE>"образование цикла внутри графа построенного на смарт указателях привёло к утечке памяти".
Именно так и говорят —
пруфАвтор: T4r4sB
Дата: 02.06.16
:
TB>Во-вторых, когда у меня был хитрый граф, который постоянно мутировал, постоянно новые узлы создавались, я делал так: все узлы графа
...
К>- либо исходно бардачный дизайн, приводящий к спагетти из объектов — надо один раз переосмыслить, чтобы граф связей стал топологически отсортированным
..
TB>Можно делать обход и по ходу действия. На каждый запрос по добавлению узла, например, делать две операции по обходу графа / удалению ненужных. Это если очень нужен гарантированный отклик.
Или например "объекты иммутабельные, поэтому циклов в графе ссылок нет".
Более того, GC работают по принципу
обхода живых узлов в графе.
BFE>Единственное, что приходит на ум, это граф переходов конечного автомата.
А как же например вездесущие деревья?

Или например односвязные списки и генератор псевдослучайных чисел?
Да даже сложность кода меряют через характеристику графа
https://en.wikipedia.org/wiki/Cyclomatic_complexity
Например сортировка часто используется? А там те самые
графыАвтор: Evgeny.Panasyuk
Дата: 20.10.14
.
BFE>Но и этот граф, опять же, присутствует в неявном виде.
Да не важно в каком виде он выражен в коде. Это не лишает его математических свойств, применимости алгоритмов и их характеристик. И чем раньше ты распознаешь этот неявный граф, тем раньше расширишь понимание задачи и получишь дополнительный инструментарий.
EP>>Естественно можно использовать что-то неявно, не подозревая об опыте и знаниях накопленных столетиями. Но зачем заново пытаться переоткрыть то, что давно изучено? NIH?
BFE>Я не о том, чтобы что-то переоткрывать, а о том, что графы вообще не используются в подавляющем большинстве задач.
Да например те же вездесущие социальные сети, там графы в полный рост.
BFE>>>В стандартной библиотеке даже ни одного алгоритма, ни одного класса для графа нет, насколько я помню.
EP>>Это вообще ни разу не аргумент и не оправдание. В стандартной библиотеке очень много чего нет, но это означает что нужно знать только то что в неё включено, очевидно же
BFE>Как и любое теоретическое знание, знание графов пользу принести может. Однако, на практике знание графов нужно только если этого требует задача.
Так не зная графов, не умея их распознавать, не получится и понять требует ли их задача или нет

Или тебе приходят разжёванные задачи вида "вот тут примени вектор, вот тут граф, вот тот обход в ширину"
BFE>Количество задач в которых используются графы существенно меньше, чем, скажем, задач, где используется массив.
И что с того что реже чем массив? Массив например используется реже чем целые числа

Да даже если допустить что графы встречаются хотя бы в 2% задач — этого уже с головой достаточно для того чтобы их изучить хотя бы на базовом уровне, так как рано или поздно такая задача обязательно попадётся.
BFE>Я за 27 лет программирования ни разу не использовал граф на практике в том смысле, что рассуждал бы о структуре, как о графе. Ну не сталкивался я с задачами обхода графа или поиска пути. И я не думаю, что я в этом какой-то уникальный.
Правильнее будет не пытаться экстраполировать свой личный опыт на всех, а залудить опрос.