Публикации по теме 'fibonacci'
Рекурсия, итерация и Фибоначчи
В моих бесконечных и пока относительно бесплодных попытках достичь просветления через понимание рекурсии в информатике я видел множество примеров рекурсивных функций, использующих последовательность Фибоначчи.
Я смутно помнил из своего урока алгебры в седьмом классе, что числа Фибоначчи начинаются там, где каждое число является суммой двух чисел, которые стоят перед ним в последовательности, поэтому, если мы начнем последовательность с 0, она будет выглядеть так:
0, 1, 1, 2, 3, 5, 8,..
JS: ряд Фибоначчи
Сегодня я расскажу о рядах Фибоначчи и о том, как мы можем использовать несколько методов для решения проблемы. Я буду подробно рассказывать о каждом решении, разбивая каждый шаг. Если вы в настоящее время ищете алгоритмы JS для практики, взгляните на два моих последних сообщения в блоге, чтобы узнать о нескольких более простых алгоритмах.
JS: обращение строк, палиндромы и анаграммы
JS: Целочисленное обращение и FizzBuzz!
Последовательность Фибоначчи
Прежде чем мы займемся..
Алгоритмы: решение последовательности Фибоначчи
Решите его рекурсивно, запоминать и итеративно
Возможно, вы слышали о последовательности Фибоначчи как о «золотом сечении». Это название связано с соотношением чисел 1,618034.
Говорят, что это выражается в природе, когда мы смотрим на такие вещи, как точки роста деревьев или лепестки цветов, или части нашего тела (один нос, два глаза, пять пальцев на руке).
Я не буду обсуждать теорию Фибоначчи, а буду обсуждать два с половиной способа ее решения с помощью функций JavaScript.
Что..
Последний блог о рекурсии, который вам когда-либо понадобится
Утверждение «если», которое нам здесь нужно, — либо вы знаете о рекурсии, либо нет. Если вы знаете, то, вероятно, вы можете остановиться. Но, если вы этого не сделаете, то вы обязательно должны прочитать дальше.
Рекурсия — это явление, которое, как говорят, происходит, когда функция вызывается внутри своего блока.
Но прежде чем мы углубимся в рекурсию, давайте попробуем написать код для факториала. Мы будем использовать JavaScript.
Что такое факториал?
Математически это..
Почему интервьюеры просят написать ряд Фибоначчи с использованием рекурсии, хотя это худший способ записи.
В большинстве интервью, на которых я присутствовал, интервьюеры просили написать программу для печати рядов Фибоначчи. Обычно я пишу программу без использования рекурсивного подхода, как показано ниже.
def fibonacci(n)
return [] if n <= 0
fib_series = [0, 1]
(2..n).each do |i|
fib_series[i] = fib_series[i - 1] + fib_series[i - 2]
end
fib_series
end
# Example usage
n = 10
fibonacci_series = fibonacci(n)
puts "Fibonacci Series up to #{n}:..
Memoize и Cache в Джулии
Используйте динамическое программирование, чтобы сделать ваши функции быстрее
Мемоизация — это простой прием в программировании, при котором вы уменьшаете количество необходимых вычислений, запоминая некоторые прерывистые результаты. Здесь я покажу вам, как сделать это в Julia самым простым способом .
🙏 Огромное спасибо тем, кто сделал Memoize.jl Посмотрите репозиторий здесь .
Быть наивным
Мы начнем с простой функции Фибоначчи и посмотрим, насколько медленно она может..
Алгоритмы: динамическое программирование, восхождение по лестнице
Проблема
Вы поднимаетесь по лестнице. Чтобы добраться до вершины, требуется n шагов.
Каждый раз вы можете подняться либо на 1 , либо на 2 ступени. Сколькими различными способами вы можете подняться на вершину?
Пример 1:
Input: n = 2
Output: 2
Explanation: There are two ways to climb to the top.
1. 1 step + 1 step
2. 2 steps
Пример 2:
Input: n = 3
Output: 3
Explanation: There are three ways to climb to the top.
1. 1 step + 1 step + 1 step
2. 1 step + 2..