7 легендарных уравнений на JavaScript
Математика и компьютерные науки идут рука об руку. Подобрали 7 математических формул разного уровня сложности для проверки — сможете ли вы их реализовать? И на всякий случай снабдили статью нашими решениями.
2К открытий29К показов
Мы нашли несколько математических формул, которые в своё время внесли значимый вклад в развитие математики, геометрии и физики. Предлагаем разминку для ума: сможете ли вы справиться и реализовать все перечисленные нами формулы?
Кстати, Kata Academy набирает студентов на обучение JavaScript. Это отличная возможность, так как вы не платите за обучение, пока не устроитесь Javascript-разработчиком! Подробности здесь → Курс по JavaScript-разработке от Kata Academy.
Теорема Пифагора
Начнём с простенькой формулы. Известная всем со школьной скамьи теорема, которая гласит: квадрат гипотенузы равен сумме квадратов катетов в прямоугольном треугольнике. Она широко используется в инженерии (например, архитектуре), физике и информатике.
Возьмем c
как длину гипотенузы, а a
и b
— длины катетов. Получаем запись a^2 + b^2 = c^2
.
Решение на JavaScript
Логарифмы
С логарифмами сталкивались все в старших классах школы — эта функция возведения в степень, только наоборот: у нас есть возведённое в степень число, и мы хотим узнать, в какую степень нужно возвести основание.
Звучит определение логарифма примерно так: результат логарифма по основанию a
от b
будет являться такое число c
, для которого справедливо a^c = b
. Логарифмы, которые записываются без основания как log(x)
— натуральные, то есть в его основание будет константа e
.
Сможете реализовать функцию, которая бы проверяла достоверность log(xy)=log(x)+log(y)?
Решение на JavaScript
Математический анализ
f'(x)=lim(h→0)h
Теперь пример посложнее. Перед вами уравнение определения производной. Сможете реализовать код, который бы аппроксимировал бы производную функцию в заданной точке, вычисляя наклон секущей линии через две точки функции? При условии, что эти две точки находятся очень близко друг к другу.
Решение на JavaScript
Функция derivative()
аппроксимирует производную функцию f
в точке x
. На выходе в примере мы получаем наклон касательной к f(x) = x^2
при заданном x=3
. А поскольку производная для квадратичной функции от x всегда равна 2x, мы ожидаем, что скрипт выдаст ответ 6. В реальности, реализованная функция должна выдать очень близкий к нашему значению результат.
Универсальный закон всемирного тяготения Ньютона
Закон сформулирован следующим образом: сила притяжения прямо пропорциональна произведению их масс и обратно пропорциональна квадрату расстояния между их центрами. Для
- F — вычисляемая сила притяжения;
- G — гравитационная постоянная (6,674 * 10^(-11) Н(м^2)/кг^2);
- m1 и m2 — масса двух объектов;
- r — расстояние между центрами двух масс;
будет справедлива запись F=G(m1*m2/r^2).
Решение на JavaScript
Комплексные числа
Комплексные числа вселяли в нас ужас — i^2 = -1
. Между тем, они часто используются для решения полиномиальных уравнений (то есть таких, в которых используются многочлены типа x^2=x^3)
.
Комплексные числа упрощают анализ электрических цепей, облегчают описание квантовой механики и играют ключевую роль в обработке сигналов.
Реализация комплексных чисел на JavaScript предполагает создание структуры для обработки как действительной, так и мнимой частей комплексных чисел, поскольку JavaScript изначально не поддерживает комплексные числа.
Решение на JavaScript
В нашем примере мы создаём мнимую единицу i
в виде комплексного числа с 0 действительной частью и 1 в качестве мнимой, затем возводим i
в квадрат чтобы доказать, что результатом будет -1.
Нормальное распределение
Основополагающая формула в статистике и теории вероятностей. Она описывает разброс данных вокруг среднего значения.
Теорема утверждает: сумма многих независимых случайных величин будет приблизительно соответствовать нормальному распределению. Приведенное выше уравнение представляет функцию плотности вероятности нормального распределения, где:
- x — переменная;
- μ — среднее значение распределения;
- σ — стандартное отклонение распределения;
- e — основа натурального логарифма (~2.71828);
- π приблизительно равно 3.14159.
Сможете написать функцию для вычисления математического ожидания для заданного x
?
Решение на JavaScript
Уравнение Шрёдингера
Возьмём формулу из квантовой механики. Уравнение Шрёдингера описывает, как квантовое состояние физической системы изменяется со временем. Уравнение предоставляет способ вычисления амплитуды вероятности положения и импульса частиц, позволяя предсказывать множество физических свойств и явлений, таких как уровни энергии, структуры связей и поведение электронов в атомах.
Реализация этого уравнения на JavaScript, определенно, выходит за рамки простых функций языка. Сможете с ним справиться? Мы не справились, поэтому приводим концептуальное решение.
Решение на JavaScript
Делитесь в комментариях, какие хитрые формулы вы ещё знаете. А если приложите код — то мы обязательно дополним материал вашим примером.
Интересуетесь новыми возможностями и языками программирования? Возможно, позиция SRE-инженера в Deckhouse, компании Флант, станет для вас отличным шансом применить свои знания на практике и участвовать в разработке инновационных проектов.
2К открытий29К показов