Сегодня я прошел испытания финансового плана на CodeWars. Цель состоит в том, чтобы определить общую сумму денег, сэкономленных за определенный период, с учетом конкретной схемы сбережений. Я исследовал два различных алгоритма, каждый со своими достоинствами. После тщательной оценки я могу с уверенностью сказать, что нашел два действительно работающих подхода! 🚀
JavaScript для плана финансирования на планете XY140Z-n | Кодовые войны
🔍 Подход 1: раскрытие силы математической магии! 🧮
В первом подходе я использовал магию закрытых формул. Используя математическую формулу (n * (n + 1) / 2), я вычислил сумму чисел от 1 до n. Умножение этой суммы на (n + 2) обеспечило эффективный и точный расчет общей экономии. Временная сложность этого алгоритма оставалась постоянной на уровне O(1), что делало его высокоэффективным даже при больших значениях n. ⚡
🔄 Подход 2: итеративный подход! ♻️
Второй подход включал итерационные расчеты, повторяющиеся каждую неделю и каждый день для тщательного расчета экономии. Хотя этот алгоритм обеспечивает простое и интуитивно понятное решение, его временная сложность составляет O(n²) из-за вложенных циклов. Хотя он подходит для меньших значений n, он становится менее эффективным по мере увеличения n. ⏰
Чтобы проверить производительность этих двух подходов, код измеряет время выполнения для каждого подхода с помощью функции Date.now().
Размер ввода для теста установлен равным n = 100 000.
Результат:
Выход Алгоритма 1 = 500015000100000
Выход алгоритма 2 = 500015000100000
Время выполнения алгоритма 1 = 0 миллисекунд
Время выполнения алгоритма 2 = 37,543 миллисекунды
Ускорение = время выполнения алгоритма 2 / время выполнения алгоритма 1
Ускорение = 37,543 / 0
Однако мы не можем делить на ноль, поэтому нам нужно обработать этот особый случай. В этом случае можно сказать, что первый алгоритм значительно быстрее второго, и ускорение стремится к бесконечности.
Следовательно, мы можем заключить, что первый алгоритм бесконечно быстрее второго алгоритма для заданного размера входных данных 100 000.
Подводя итог, из рассуждений, представленных в этой статье, очевидно, что использование математических формул существенно влияет на достижение исключительной эффективности в управлении временной сложностью и повышении читабельности кода.
Спасибо, что прочитали эту статью!!!!