Re[5]: cpp и математика
От: Evgeny.Panasyuk Россия  
Дата: 03.08.16 17:18
Оценка: +2
Здравствуйте, 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 лет программирования ни разу не использовал граф на практике в том смысле, что рассуждал бы о структуре, как о графе. Ну не сталкивался я с задачами обхода графа или поиска пути. И я не думаю, что я в этом какой-то уникальный.


Правильнее будет не пытаться экстраполировать свой личный опыт на всех, а залудить опрос.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.