эквивалентность описаний, но разная сложность пример, движение планет относительно друг друга достаточно точно описываются, но разная сложность Гелиоцентризм и Геоцентризм (гифка, картинка) [Spoiler (click to open)] Гелиоцентризм и Геоцентризм (гифка, картинка)
Как справиться со сложностью? - deep_econom Разделить на части. Если вы не разделили - вы не справились! - vida_louca.
поразмышляю чтобы нечто понять, надо построить модель этого построить означает сконструировать, создать конструкцию, т.е. создать/организовать взаимодействие частей
модель состоит из какихто деталей, частей/подробностей это подробности могут быть разной степени подробными, см. Фейнмана
получается, что да, надо уметь делить на части и из частей собирать объект/феномен, который мы объясняем
математическим языком, мы должны нечто новое разложить по базису известного типа есть набор базисных понятий у нас (модели которых мы построили ранее, типа библиотеки моделей) и мы должны по базису этих моделей разложить новое неизвестное и потом собрать его снова и показать пальцем, типа вот так это новое конструируется из ранее известных моделей
/* неопределяемых понятий не должно быть, это категорически неверное представление навязано исторически математиками/физиками которые упростили себе жизнь, мы типа разбираем этот вопрос, а глубже я копать не хочу и не могу, у меня не получается, нельзя же объять необъятное, когда мало знаний было, это был правильный подход, типа едим с разных сторон слона по кусочку, може быть потом состыкуется все
как только мы ввели неопределяемое понятие (модель) так у нас все посыпалось попробуйте в программировании ввести неопределяемую команду или неопределяемую библиотечную функцию/процедуру, это абсурд и бред, всё разваливается другой момент, что какието вещи/понятия/модели могут определяться неявно
языком программеров, новый алгоритм можем создавать с помощью базисных команд и уже библиотеки алгоритмов отмечаю, базисные команды мы уже научились исполнять с помощью процессора и компилятора/интерпретатора языка, библиотеки тоже уже закодированы ранее т.е. мы новое свели к известному с помощью некоторых новых конструкций и соединений
т.е. любое новое, которое мы понимаем, это небывалая комбинация известных моделей /* в подражание "сон это небывалая комбинация бывалых впечатлений" (с) Сеченов
возьмем какуюто задачу, например найти сумму чисел ряда 1,2,3,...N
1. попробуем ее решать методом сверху вниз, т.е. сведения сложной задачи к простым базисным задачам которые мы уже умеем решать очевидно это будет рекурсия (т.е. рекурсия это метод сведения сложной задачи к набору простых, с последующим конструированием из простых ответов сложного ответа со сложной конструкцией) S(1,N)=S(1,N-1) + N S(1,1)=1
по сути мы решали задачу путем разъединения задачи на более простые части, пока не дошли до известных но мы могли и не дойти до известных частей! тогда бы задача осталась нерешенной
2. второй метод решения снизу вверх, начинаем с простой задачи, которую умеем решать и постепенно конструируем конечное решение из уже известных моделей
это будет индукция или обычный цикл S(1,1)=1 S(1,i+1)=S(1,i) + (i+1)
3. можно считать цикл/индукцию восходящей рекурсией или обратной рекурсией и наоборот, рекурсию можно считать обратной индукцией разбиваем наш ряд на M частей и суммируем каждую часть рекурсией/индукцией, это будет частичная индукция, частичная рекурсия это вариации разбиения задачи на подзадачи и вариации конструирования нашего ответа, нашей целевой конструкции ------------------------------------
получается, что индукция/цикл и рекурсия это алгоритмы построения моделей/алгоритмов нечто сложное создается из более простых частей т.е. алгоритмы борьбы со сложностью, алгоритмы понимания
любое новое, которое мы понимаем, это небывалая комбинация известных моделей т.е. рекурсия/индукция две универсальных операции создания новых моделей из старых
борьба со сложностью и борьба за понимание вспоминаем --- Чем проще описание, тем лучше, при условии удовлетворительного описания реальности. https://deep-econom.livejournal.com/36523.html
--- Итак, как мы можем контролировать сложность? Есть три основных способа сделать это:
1. Мы разбиваем беспорядок на более мелкие части , с которыми мы можем справиться. Мы стараемся уменьшить сцепление между деталями, делая их четко взаимосвязанными.
2. Мы берем повторяющийся код или шаблоны функций, которые выглядят близкими или похожими, и пытаемся абстрагировать их, уменьшая общий размер кода.
3. Чтобы учесть субъективные факторы сложности при работе в команде, мы придерживаемся некоторых общих соглашений о руководящих принципах стиля, шаблонах проектирования и технологическом стеке. Таким образом, мы можем легко понять код друг друга.
Программное обеспечение: Управление сложностью. Влад Балин ссылка medium.com ---
чел говорит о декомпозиции и абстракции с помощью абстракций создается библиотека базисных моделей а потом с помощью базисных моделей конструируется решение
над примитивным языком моделей надо будет надстраивать модельный синтаксический сахар, надо создавать библиотеки работы со сложными моделями, со сложным синтаксическим сахаром должна быть иерархия слоев модельного синтаксического сахара предыдущий слой интерпретирует верхний слой, создали текущий слой моделирования, переходим к следующему и т.д. ----------
выложу так, иначе никогда не допишу )) а мне убегать надо уже ) продолжение следует