Игры и симуляции - очевидные ответы. Математика не сложная, но она явно есть.
Например, скажем, вы хотите построить какую-то игру с астероидами. Вам нужно будет выяснить положение вашего космического корабля. Это вектор. Теперь вы хотите, чтобы корабль перемещался в определенном направлении в определенном направлении в каждом кадре. Вам нужно будет добавить некоторый вид delta-x к x и delta-y к y, чтобы ваше движение было другим вектором:. В игре с астероидами вы ускоряетесь в направлении, которое вы указали, поэтому всякий раз, когда вы нажимаете клавишу «тяга», вам нужно будет вычислить дельту dx и dy или вектор ускорения
(да, это тот же самый дх из класса исчисления, но теперь я создаю с ним роботов-зомби.)
Но это еще не все. Если вы будете действовать сейчас, я добавлю триг. Обычно вы рассматриваете движение и ускорение как угол и расстояние (r и theta,), но язык программирования обычно нуждается в этих значениях в формате dx, dy. Вот где вы будете использовать триггеры: dx = r * cos (тета) и dy = r * sin (тета)
Но, допустим, вы хотите иметь планету с гравитационным притяжением? Вам нужно будет приблизить гравитацию таким образом, который дает вам поведение орбиты (эллиптические орбиты, запуск изменяет высоту другой стороны орбиты и т. Д.). Это проще всего сделать, если вы понимаете закон всемирного тяготения Ньютона: f = ((sqrt (m1 * m2)) / d ^ 2) * G. Это говорит вам, сколько «планетарной» силы добавляет к вашему кораблю каждый кадр. Умножьте это значение на нормализованный вектор, указывающий с космического корабля на планету. и добавьте это как новый вектор движения.
Верьте или нет, я призываю людей, которые не любят математику, посещать курсы игрового программирования. Часто они обнаруживают, что математика может быть (смею сказать) забавной, когда они используют ее для решения задач, связанных со взрывом коров в космосе.
В качестве другого примера подумайте об оптимизации звуковой волны. Аналоговая волна имеет бесконечное количество точек. Невозможно сохранить их все в цифровом сигнале, поэтому мы разбиваем аудиосигнал на большое количество маленьких сегментов, а затем измеряем каждый сегмент. Если нам нужно идеальное представление, возьмите бесконечно большое количество бесконечно малых временных срезов.
Вычеркните это, и вы создали сумму Римана, основную идею Интеграции (и фактически исчисления)
Еще один пример:
Мой друг (профессор биологии) пытался создать симуляцию озерной экосистемы в стиле «сим-сити». Он был приличным программистом, но он увяз в различных вычислениях. Он хотел, чтобы пользователь изменил использование озера (подвесные моторы, ограничения на рыболовство и ограничения на сброс), а затем увидел, как это влияет на уровень азота и другие ключевые элементы.
Он перепробовал все виды сумасшедших структур if-then с вложенными условиями и уродливой логической логикой, но никогда не имел чистого решения.
Мы взяли реальные данные, провели их через Excel и нашли линию тренда, которая точно отражала его данные с помощью простой логарифмической формулы.
Сотни строк грязного кода были заменены простой формулой.