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





Дискретная математика для всего, линейная алгебра для 3D, анализ для физики, особенно для расчета массовых свойств.
Вычисление размеров кешей для оптимизации производительности. Это не так просто, как кажется, когда это ваш критический путь, и вам нужно вернуться и рассчитать время, сэкономленное с помощью кеша, относительно его размера.
Линейная алгебра для 3D-рендеринга, а также для финансовых инструментов. Регрессионный анализ одних и тех же финансовых инструментов, таких как корреляции между финансовыми инструментами и индексами и т. д.
Я часто использую Теорема де Моргана, когда, а также общую булеву алгебру, пытаясь упростить условные выражения
Я также иногда выписывал таблицы истинности для проверки изменений, как в приведенном ниже примере (найденном во время недавнего обзора кода).
(showAll и s.ShowToUser относятся к типу bool.)
// Before
(showAll ? (s.ShowToUser || s.ShowToUser == false) : s.ShowToUser)
// After!
showAll || s.ShowToUser
Несколько лет назад я также использовал базовую тригонометрию под прямым углом при работе с простой графикой - мне приходилось вращать и центрировать текстовую строку вдоль линии, которая могла быть под любым углом.
Не революционно ... но, конечно, по математике.
Я использовал аналитическую геометрию для простого 3D-движка в opengl в хобби-проекте в старшей школе. Некоторое геометрическое вычисление я использовал для динамической печати отчетов, где был другой макет под углом 90 °, чем. Год назад я использовал некоторые производные и интегралы для анализа магазина (движение товаров в магазине).
Все вычисления бота можно найти в Интернете или в школьной книге.
Я занимаюсь медицинской визуализацией и использую в основном линейную алгебру и базовую геометрию для всего, что связано с 3D-дисплеем, анатомическими измерениями и т. д.
Я также использую численный анализ для обработки реальных зашумленных данных и много статистических данных для проверки алгоритмов, инструментов поддержки дизайна для клинических испытаний и т. д.
Статистика, мне пришлось написать несколько методов для получения статистических значений, таких как F Распределение вероятностей, коэффициент момента продукта Пирсона и некоторые корреляции, интерполяции и экстраполяции линейной алгебры для реализации Теория арбитражного ценообразования для оценки активов и акций.
В моем случае игры с тригонометрией и ИИ с теорией графов.
Теория графов для создания взвешенного графа, представляющего все возможные пути между двумя точками, а затем нахождения кратчайшего или наиболее эффективного пути.
Также статистика для построения графиков и расчетов рисков. Я использовал вычисления как нормального, так и кумулятивного нормального распределения. Я предполагаю, что довольно часто используемые функции в Excel, но на самом деле мне пришлось написать их самому, поскольку в библиотеках .NET нет встроенной поддержки. К сожалению, встроенная поддержка математики в .NET кажется довольно простой.
Чаще всего я использовал тригонометрию, а также небольшое количество вычислений, работая над наложениями для программного обеспечения ГИС (картографирование), сравнивая объекты в трехмерном пространстве и конвертируя системы координат.
Общее математическое понимание очень полезно, если вы используете сторонние библиотеки для выполнения расчетов за вас, поскольку вам часто нужно осознавать их ограничения.
Я часто использую математику и программирование вместе, но цель моей работы - это математика, поэтому для ее достижения используйте программное обеспечение. что касается математики, которую я использую; в основном исчисление (анализ БПФ непрерывных и дискретных сигналов) с косой чертой линейной алгебры (CORDIC) для выполнения триггера на микроконтроллере без микросхемы с плавающей запятой.
Статистическое среднее значение, стандартное отклонение, для наших аналитиков.
Линейная алгебра - в частности, исключение Гаусса-Иордана и
Исчисление - производные в виде таблиц разностей для генерации многочленов из таблицы (x, f (x))
Линейная алгебра и комплексный анализ в электронной технике.
Статистика в анализе данных и переводе их в другие блоки (другой проект).
Я использовал вероятность и логарифмические шансы (логарифм отношения двух вероятностей), чтобы классифицировать входящие электронные письма по нескольким категориям. Большую часть тяжелой работы сделал мой коллега Фиделис Ассис.
Сценарии из реального мира: лучший состав персонала, более эффективное планирование рейсов, кратчайшие пути в дорожных сетях, оптимальное расположение объектов / ресурсов.
Раздел математики: Исследование операций. Расплывчатое определение: построить математическую модель (обычно сложной) реальной бизнес-проблемы, а затем использовать математические инструменты (например, оптимизацию, статистику / вероятность, теорию очередей, теорию графов), чтобы исследовать эту модель, чтобы помочь в принятии эффективных решений ( например, минимизировать затраты, максимизировать эффективность, прогнозировать результаты и т. д.).
Статистика для анализа научных данных, таких как:
В реальной разработке программного обеспечения я действительно использовал только довольно тривиальную линейную алгебру, геометрию и тригонометрию. Конечно, ничего более продвинутого, чем первый курс колледжа по каждому предмету.
Однако я написал множество программ для решения действительно довольно сложных математических задач, используя очень продвинутую математику. Но я бы не стал называть это разработкой программного обеспечения, поскольку на самом деле я не занимался разработкой программного обеспечения. Под этим я подразумеваю, что конечным результатом не была сама программа, это был ответ. Обычно кто-то спрашивал меня, что по сути является математическим вопросом, и я писал программу, которая отвечала на этот вопрос. Конечно, я бы сохранил код до тех пор, пока мне снова не зададут вопрос, и иногда я отправлял код кому-нибудь, чтобы они могли сами ответить на вопрос, но это все еще не считается разработкой программного обеспечения в моем понимании. Иногда кто-то брал этот код и повторно внедрял его в приложение, но тогда они занимались разработкой программного обеспечения, а я занимался математикой.
(Надеюсь, эта новая работа, которую я начал, действительно позволит мне работать обоими, так что посмотрим, как это сработает)
Я думаю, вы имеете в виду производные и интегралы?