Re[9]: cpp и математика
От: Evgeny.Panasyuk Россия  
Дата: 04.08.16 14:03
Оценка:
Здравствуйте, B0FEE664, Вы писали:

EP>>Даёт понимание структуры, даёт целый набор готовых математических свойств и алгоритмов.

BFE>Давайте конкретно: какие математические свойства и какие из алгоритмов для графов вы используете в коде.

Например Эйлерова характеристика, а из алгоритмов чаще всего обход

EP>>Тем не менее, это широкий раздел теории графов.

BFE>Когда я говорю про графы, я не говорю про деревья.

Вот только непонятно почему, это та же самая теория графов

BFE>Наличие цикла внутри списка свидетельствует об ошибке,


Не обязательно.

BFE>так что в тестовых целях я поиск цикла в списке писал, но назвать это работой с графом...


Тем не менее это она и есть.

EP>>>>и генератор псевдослучайных чисел?

BFE>>>Причём тут генератор псевдослучайных чисел?
EP>>При том что переходы между seed'ами образуют графы аналогичные графам односвязных списков. И для определения циклов в обоих случаях используются одинаковый алгоритм.
BFE>И вы хотите сказать, что где-то в коде, в явном виде хранится этот граф переходов?

Нет, я не хочу этого сказать.
Я хочу сказать что в генераторах псевдослучайных чисел структурно есть граф, и к нему применимы соответствующие алгоритмы. И выделение этой графовой структуры из общего ансамбля, помогает лучше понять суть вещей.

EP>>Речь не про реализацию, а про то что даже при сортировке возникают те самые графы, пусть и в неявном виде.

BFE>Ну, а я о чём? Вы мне в явном виде граф покажите.

Зачем именно в явном?

EP>>Например ассоциативность тоже в коде явно редко присутствует, тем не менее имеет вполне практическое значение

BFE>Для многих алгоритмов распараллеливания вычислений ассоциативность имеет важное практическое значение. Я не вижу тут аналогии.

Аналогия в том что эта ассоциативность вообще в явном виде редко где встречается, что тем не менее не умоляет полезность знаний о ней.
Ты же, как я понимаю, пытаешься подвести к тому что графы в явном виде редки, и поэтому не нужны. Вот тут с ассоциативностью аналогия 100%.

EP>>>> И чем раньше ты распознаешь этот неявный граф, тем раньше расширишь понимание задачи и получишь дополнительный инструментарий.

BFE>>>Что это такое — неявный граф?
EP>>Здесь это граф который присутствует в задаче, но который ты ещё не распознал.
BFE>Т.е. воображаемый граф.

И что с того что "воображаемый"? Это делает алгоритм поиска размера цикла не рабочим?

BFE>>>а на практике работа с такими графами сводится к работе со списком друзей.

EP>>Ага, ещё друзей друзей, ещё поиск пути между двумя людьми
BFE>С какой практической целью пользователю мог бы понадобится поиск такого пути?

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

BFE>>>Граф — это довольно простое построение и не распознать его не получится.

EP>>Чтобы распознать его, нужно как минимум знать что это такое.
BFE>Если бы это было так, граф бы никогда не был придуман.

Нет, я не об этом. Переоткрыть граф и связанные свойства/алгоритмы — естественно возможно, хотя и трудоёмко.
Речь о том что ты не поймёшь что эту вновь открытую структуру люди уже столетиями называют "графом". Да и вообще непонятно зачем переотркывать то что давно известно, и имеет устоявшеюся терминологию.

EP>>Да и вообще, далеко не всегда лежит на поверхности

BFE>Эти графы, о которых вы пишите — они ведь в голове, а не в коде.

Не все, но не суть, допустим что все. И какой вывод ты делаешь из этого?

EP>>У меня задачи в основном связанны с CAE, CAD, 3D — и частенько возникают графы в реализации.

BFE>Понимаете... Иногда патерны применяются в коде исключительно потому, что программист о них знает.

Говори прямо, намекаешь на то что я их применял не по делу?

EP>>Более того, писал некоторые алгоритмы для обработки 3D-моделей, которые в том числе применимы и для изображений, так вот — там также возникают графы.

BFE>Графы при обработке 3D моделей? В коде? Для чего?

Например для сжатия, как с потерями, так и без.

EP>>Мой поинт в том, что если графы применимы реже массивов, или что их нет в стандартной библиотеке (хотя внутри они таки используются) — из этого никак не следует что их не нужно знать программисту. Точнее хорошему программисту.

BFE>Хорошему программисту много чего надо знать, но это не значит, что всё что он знает ему обязательно пригодиться.

Естественно не значит.

BFE>На практике один из 10
Автор: gandjustas
Дата: 03.03.12
разворот списка написать может, а вы тут про графы вещаете...


Так зачем равняться на них?

EP>>Вот только помимо графов есть много других рабочих инструментов математических структур, которые "мерещатся" в том числе. Это позволяет смотреть на задачу с множества разных сторон, вычленяя отдельные структуры из оригинального ансамбля — тут графы, тут симплексы, тут моноид, тут векторное пространство и т.п.

BFE>Уверяю вас, на свете есть много программистов, которые даже не слышали "этих ваших страшных слов". И все они что-то пишут, зарплату получают...

Я знаю. Также есть много продавцов, водителей и т.п., и они точно также получают зарплату, при этом ничего не зная про упомянутые тобой массивы — и что с этого?

EP>>Ещё в компиляторах, системах сборки, пакетных менеджерах, да и вообще практически везде. А в остальном да, не используются

BFE>А они там точно в коде присутствуют?

Где-то нет — и что с того? А где-то присутствуют https://en.wikipedia.org/wiki/Graph_coloring#Register_allocation

EP>>Граф это настолько базовая структура, считай связь между чем либо, что встречается повсеместно. Тут разве что басня Крылова на ум приходит про ГрафДуб

BFE>Ага. Вы ещё теорему Котельникова спрашивайте при приёме на работу web-программиста.

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