Между разными моделями и теориями в математике есть определенное соответствие
теория графов <=> матрицы
распознавание <=> формальные грамматики <=> графы
булева логика <=> теория переключательных функций <=> графы
инженерная графика <=> матрицы
О чем эти соответствия говорят - задача, которая формулируется в одной модели и выглядит сложной для решения, решается просто будучи переформулирована в образы другой теории. Математики называют это дуальностями и изучают в рамках нового научного направления - теории категорий.
Пример - задача о маршрутизации. Ее можно заумно формулировать на псевдокоде с графами и решить элементарным матричным умножением по Уоршаллу. Способ - использовать дуальность.
Впервые серьезно на дуальности и сходственности категорий обратили внимание физики. По сути сама природа заставила дуальности исследовать математически. Например, так Стивен Хокинг свою премию получил - как раз благодаря обнаружению им трудноуловимой дуальности он вывел неожиданную для сообщества формулу для температуры черной дыры, описал ее энтропию и процесс испарения. Другие примеры: теория суперструн, вопрос о симметриях между гравитацией в ОТО и электромагнетизмом Максвелла и т. п.
В принципе, наиболее тесно связан математический аппарат абстракций, обобщенного программирования и применения дуальностей (монады, группы, категории) с парадигмой функционального и логического метапрограммирования (F#, Lisp, Haskell, Ruby, Python, Prolog, активно свежие функциональные идеи впитывает Javascript). Убогие попытки привнести достижения физики и математики в программирование предпринимаются и в рамках традиционных языков - идеи так называемых дженериков, лямбд, шаблонов и т. п. которые давным-давно появились в работах Черча. Т. е. дело обстоит именно так - природа бросает физикам вызов, приходится новые математические инструменты изобретать (риманова геометрия, теория Калуцы-Кляйна) и исследовать возникшие симметрии - математики развивают аппарат самостоятельно, углубленно его исследуют (топология, дискретная математика и т. п. ) , а потом все это через много лет просачивается в программирование. Графы например впервые для расчетов стали физики и химики использовать, Феймановские диаграммы, электрические цепи, цепные реакции и т. п. А потом графам нашли самое разнообразное применение, в т. ч. в архитектуре ЭВМ, устройстве компиляторов, представлении самих программ (AST деревья)
Мораль: чем богаче математический аппарат, тем проще с компьютерными моделями обращаться. Например, теория кватернионов упрощает расчеты в компьютерной графике. Советую почитать книгу Дербишира - Простая одержимость, там о дуальностях в математике много интересного материала.
Другие языки программирования и технологии
Какие именно разделы математики нужно знать программисту: интегралы, производные, диференциалы, векторы, тригонометрию?
Смотря что ему программировать. Ну представь: от тебя требуют изобразить расчет точек на гиперболический параболоид, а ты не в курсе что за зверь
Желательно все знать и в совершенстве :) - ну или немного знать, просто знания в жизни таковы, что если знаешь, то есть выбор дороги по жизни. Конечно, профи может знать что-то одно и в совершенстве, но на то он и профи, что в другом он хоть как-то ориентируется.
Потому если просто программировать, то можешь и не знать, но не будешь делать сложные работы связанные с математикой... если же в вышку идти, то знать обязательно надо, от этого балл зависит.
Потому если просто программировать, то можешь и не знать, но не будешь делать сложные работы связанные с математикой... если же в вышку идти, то знать обязательно надо, от этого балл зависит.
Ну к примеру в играх для создания кривых поверхностей используют интегралы. Если писать читы для игр то понадобится тригонометрия. Если писать карты, расчет кратчайшего пути, то несомненно нужно знать дискретную математику, а она включает в себя производные и тд и тп. Естественно энциклопедических знаний не требуется, нужно представление обо всем желательно.
Похожие вопросы
- знающие люди, подскажите, какие разделы математики нужно изучать программисту? чтобы дальше проблем не было
- Какие области математики нужно знать будущему программисту?
- Какие разделы математики не нужны программисту?
- Какие разделы математики вы(будучи программистом) изучаете для себя, для общего развития?
- Какие разделы математики желательно освоить программисту, желающему расти профессионально?
- Что нужно знать программисту
- Что нужно знать программисту?
- Програмисту математику нужно знать на отлично?
- Какие разделы математики используют программисты. И зачем нужно мастерство считать интегралы?
- на каком уровне нужно знать математику программисту?