Публикации по теме 'fibonacci'


Мастер Фибоначчи
(Для лучшего восприятия прочтите исходный пост здесь .) Число Фибоначчи определяется как: F(n) = F(n-1) + F(n-2) , где F(0)=0 , F(1)=1 . Когда мы узнали, что такое рекурсия , ее можно напрямую записать в следующий наиболее распространенный код: //////////////////////////////////////////////////////////////////// // Recursive: O(2^n) uint64_t fibonacci(unsigned int n) { return (n <= 1) ? n : fibonacci(n-1) + fibonacci(n-2); } Однако, если вы попытаетесь вычислить..

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

Серия Фибоначчи
Алгоритм, с которым я столкнулся и который изначально изо всех сил пытался завершить, был алгоритмом ряда Фибоначчи. Учитывая число, функция должна быть в состоянии произвести запись ряда Фибоначчи в этом числе. Понимание проблемы Ряд Фибоначчи представляет собой упорядоченный список чисел, который можно рассчитать, взяв два предыдущих числа и добавив их для получения следующего элемента в списке. Пример ряда Фибоначчи : [0, 1, 1, 2, 3, 5, 8, 13, 21, 34] Как решить проблему..

Рекурсия: история Swift о рекурсии
Рекурсия — это просто решение проблемы. Чтобы следовать этому сообщению на Medium, вам потребуются некоторые базовые знания Swift (функции, типы и массивы) и будьте готовы понять одну из самых важных концепций программирования, чтобы вывести свое понимание Swift на новый уровень. К этому видео было подготовлено видео: https://youtu.be/WhdJbN584-o — так почему бы не посмотреть его? Что такое рекурсия? Рекурсия функция, которая вызывает сама себя. если мы подумаем об изображении..

Функция Фибоначчи, мемоизация
Сегодняшний технический блог посвящен функции Фибоначчи. У меня не было этого в моих технических интервью, но, насколько я понимаю, это общий вопрос. Если временная сложность вашего рекурсивного решения Фибоначчи экспоненциальна, метод сокращения времени, необходимого для запуска этой функции, заключается в использовании мемоизации (это один из способов сделать это). Оригинальное решение работает медленно из-за повторяющихся вызовов функции Фибоначчи с одинаковыми аргументами. Функция..

Понимание рекурсии на практике
На прошлой неделе мне задали несколько технических вопросов, на которые я должен был ответить, чтобы получить потрясающую возможность. Я мог использовать любой язык. Я выбрал Ruby, потому что я изучил Ruby on Rails для серверной части и решил, что мне будет проще манипулировать данными с помощью этого языка. (Javascript не был для меня естественным во время фиктивного технического собеседования. Я бы хотел, чтобы Javascript был отключен для алгоритмов. Или Python. Впрочем, это задача для..

Динамическое программирование
Динамическое программирование было введено Ричардом Беллманом в 1953 году. Термин «динамическое программирование» не имеет ничего общего с тем, что оно на самом деле делает. В этом нет ничего динамичного. Как оказалось, Беллман проводил какое-то исследование, и он хотел скрыть это от своего босса, поскольку его босс ненавидел все, что имело отношение к исследованиям. Поэтому он придумал термин, чтобы это звучало круто, что-то, что получило бы одобрение от его босса, чтобы позволить ему..