Последовательность Фибоначчи получила свое название от итальянского математика Леонардо Фибоначчи. Он представил эту серию в Западной Европе своей книгой Liber Abaci еще в 1202 году. Индийская математическая сцена увидела магию Фибоначчи еще в 200 году до нашей эры, о чем свидетельствуют работы Пингалы. Это представление чисел также занимает особое место в сферах кодирования и вычислений. К концу этого объяснения вы узнаете, как писать ряды Фибоначчи на Java.

Целочисленная последовательность начинается с 0 и 1, а каждое последующее число представляет собой сумму двух предшествующих ему чисел, например, 0, 1, 1, 2, 3, 5 и т. д. Есть два основных способа его создания в JavaScript, а именно (i) с использованием итерации, то есть без использования рекурсии, и (ii) с использованием рекурсии. В то время как итеративный подход требует линейного времени для завершения задачи, вы получаете решение экспоненциально с помощью рекурсивного метода. Теперь давайте углубимся в детали этих методов один за другим.

Читайте:Python vs. Javascript Throwdown: какой из них предпочесть?

Написание рядов Фибоначчи на Java

Способ 1: без рекурсии

  • Цикл For

В этом случае вы хотите, чтобы программа на Java сгенерировала первые n чисел последовательности Фибоначчи. Вот подробный взгляд на то, как работает итерация цикла for.

Сначала вы инициализируете первые два числа серии. Затем цикл For Loop суммирует двух непосредственных предшественников и напечатает значение. Этот процесс будет продолжаться до тех пор, пока не будут отображены первые n чисел. Так как программа уже опубликовала 0 и 1 перед началом итерации, условие цикла For задается как n-2.

  • Пока цикл

Он следует логике, аналогичной методу For Loop, но требует от программистов большей осторожности при его применении. Оператор потока управления цикла «пока» многократно выполняет код для логического условия. Только если условие удовлетворяет или истинно, выполняется тело цикла. Кроме того, выражение обновления увеличивает переменную цикла. И наоборот, мы выйдем из цикла while, если условие оценивается как ложное.

Читать:Объяснение архитектуры и компонентов Java

Давайте рассмотрим приведенный ниже код Java, чтобы лучше понять цикл While:

Способ 2: с рекурсией

Когда вы пишете ряды Фибоначчи на Java с использованием рекурсии, функция прямо или косвенно вызывает сама себя. Это базовая техника программирования JavaScript, и эта функция известна как рекурсивная функция.

Рекурсивные алгоритмы могут помочь вам с легкостью решать сложные задачи. Предположим, вы хотите напечатать первые n чисел последовательности Фибоначчи, используя рекурсию. Вам понадобится рекурсивная программа Java для создания требуемой серии. Вот пошаговое объяснение такой реализации:

  • Пользователь будет вводить
  • For Loop будет применяться к циклу до тех пор, пока каждая итерация не вызовет функцию, которая возвращает число Фибоначчи в позиции n. Пусть это будет число фибоначчи (int n)
  • Затем функция будет рекурсивно вызывать себя и добавлять два предыдущих числа Фибоначчи.

Примеры ряда Фибоначчи

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

Описанные выше итерационные и рекурсивные методы являются реализациями рекуррентного соотношения рядов Фибоначчи. Он определяется как: F(n) = F(n-1) + F(n-2). Когда мы подставляем начальные значения в это отношение, мы получаем: F(0) = 0 и F(1) = 1. Как для заданного числа n найти n-е число в ряду Фибоначчи? Рассмотрим этот сценарий с другими входными данными.

  • Для входа n = 2 выход будет 1
  • Для ввода n = 9 результат будет 34

Вы можете использовать эти основы для написания функции, возвращающей F(n). Функция может быть задана как: int fib (int n). Функция fib() вернет 0, когда n = 0. Точно так же, если n = 1, функция fib() должна вернуть 1. И вывод должен быть F(n-1) + F (n-2) для n > 1.

Тестовый пример для функции fib()

Для короткой последовательности, а именно. [0, 1, 1, 2, 3, 5, 8,…, 55] и fib(5), результатом будет 5. Итак, мы стремимся вернуть элемент с индексом 5 из массива последовательности Фибоначчи. . Давайте посмотрим, как это будет разворачиваться, используя итерационный метод.

  • функция fib(n){

пусть массив = [0,1];

для (пусть j = 2; j ‹ n + 1; j ++) {

array.push (массив [j-2] + массив [j-1])

}

возвращаемый массив[n]

}

Вы можете заметить, что в приведенном выше фрагменте кода мы присвоили переменной массива значение [0,1] вместо создания пустого массива. Цикл начинает итерацию с j = 2 и продолжает добавлять числа, пока длина массива не станет n + 1. Таким образом, мы возвращаем число с индексом n. Следовательно, на выходе будет 3 для Фибоначчи (4), 5 для Фибоначчи (5) и так далее.

Если вас попросят решить ту же проблему с помощью рекурсии на собеседовании, вы можете использовать следующий базовый случай.

  • функция fib(n){

if (n > 2){

вернуть н

}

вернуть выдумку (n-1) + выдумку (n-2)

}

Предположим, вы вызываете fib() с аргументом 5. Здесь функция fib будет продолжать создавать дополнительные ветви дерева, пока не достигнет базового случая (значение n меньше 2), после чего она начнет суммировать возвращаемые значения. значения каждой ветви. Рекурсивные вызовы прекратятся только тогда, когда будет напечатано целое число, равное 5.

Преимущества рядов Фибоначчи в Java

  • С помощью простой программы Javascript вы можете выполнить ряд Фибоначчи, чтобы без особых усилий отобразить ряд до определенного числа или термина.
  • Рекурсия обеспечивает лаконичный и выразительный код на Java.
  • Итеративные алгоритмы обеспечивают отличное решение в производственной среде, поскольку они ограничены, что обеспечивает надежность кода. Напротив, рекурсивные алгоритмы иногда приводят к ошибке переполнения стека.
  • Поиск Фибоначчи работает в отсортированных массивах и работает лучше, чем двоичный поиск, в основном, когда скорость доступа зависит от ранее доступного местоположения.
  • Знание ряда Фибоначчи позволяет учащимся развивать логику при работе с современными приложениями, требующими различных интерфейсных и внутренних функций.

Проверьте:Идеи проекта Java

Подведение итогов

В этой статье мы попытались помочь вам реализовать последовательность Фибоначчи на Java и понять логику различных методов. Вы можете представлять числа Фибоначчи с помощью рекурсии или без рекурсии (цикл for и цикл while). После этого мы обновили основные концепции двух методов, а также обсудили их преимущества.

Со всей этой информацией вы можете освежить свои знания об алгоритмах и писать более качественный код. Было бы лучше, если бы вы также хорошо разбирались в структурах данных, таких как массивы, двоичные деревья, связанные списки и т. д. Используйте приведенную выше статью в качестве отправной точки для пересмотра и развития навыков программирования!

Если вам интересно узнать больше о Java и разработке программного обеспечения с полным стеком, ознакомьтесь с Дипломом PG по разработке программного обеспечения с полным стеком от upGrad & IIIT-B, который предназначен для работающих профессионалов и предлагает более 500 часов тщательного обучения, 9 + проекты и задания, статус выпускника IIIT-B, практические практические проекты и помощь в трудоустройстве в ведущих фирмах.

Эта статья первоначально была опубликована в блоге upGrad.