首页  >  文章  >  Java  >  Java 中的斐波那契数列

Java 中的斐波那契数列

WBOY
WBOY原创
2024-08-30 16:25:45573浏览

斐波那契数列在于每个数字都是前两个值之和的过程,并且数列始终以基本整数 0 和 1 开始。斐波那契数与黄金比例密切相关。在本主题中,我们将了解 Java 中的斐波那契数列。

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

公式:

an = an − 2 + an − 1
Fibonacci series for first 21 numbers
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
前 21 个数字的斐波那契数列 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 表>

关键应用

以下是斐波那契数列在 Java 中的主要应用:

  • 英里到公里以及公里到英里的转换。
  • 敏捷方法论的一些实例。
  • Euclid 算法运行时分析计算就是使用该系列技术进行的。
  • 斐波那契统计数据在数学上被一些伪随机数生成器磨损。
  • 扑克规划过程涉及到这种技术的使用。
  • 斐波那契堆的数据结构技术是利用斐波那契级数技术实现的。
  • 在光学中,当一束光在两个由不同折射率的不同材料制成的半透明板从头到尾的一个角度闪烁时,它可能会从三个表面返回:顶部表面、中心表面和底面。两个盘子。具有 k 反射的不同光线路径的数量,对于 k > 1,{display style k} 是斐波那契数。

斐波那契数列程序(非递归程序)

以下是斐波那契数列程序:

代码:

// Fibonacci series program
public class Fibonacci {
// main program
public static void main(String[] args) {
int count = 10, var1 = 0, var2 = 1;
System.out.print("First " + count + " terms: ");
// Fibonacci series formation loop
for (int i = 1; i <= count; ++i)
{
System.out.print(var1 + " + ");
int added_sum= var1 + var2;
var1 = var2;
var2 = added_sum;
}
}
}

输出:

Java 中的斐波那契数列

说明:

  • 该程序计算给定数字范围的斐波那契数列。
  • 这里这个过程是不使用递归技术实现的。

程序算法

  • 声明根类 Fibonacci 时,嵌入到该类中的所有程序代码都必须解决实现 Fibonacci 数列的功能。
  • 在根类内部,声明了 main 方法。通常,main 方法充当重要的 Java 方法。如果程序中没有 main 方法,JVM 就不会执行。 main方法各个子组件的解释如下所示,
  • 接下来隐含变量初始化部分。本节涉及三个不同变量的初始化。其中两个是通过变量级别值交换来实现斐波那契逻辑,另一个变量用于调节需要生成斐波那契逻辑的值的数量。
  • 斐波那契数列程序的关键逻辑是使用下面给出的程序部分中的 for 循环来实现的。

代码:

for (int i = 1; i <= count; ++i)
{
System.out.print(var1 + " + ");
int added_sum= var1 + var2;
var1 = var2;
var2 = added_sum;
}
  • 循环部分背后的逻辑如下;最初,在循环上执行一系列值;循环发生时每个流的范围值都会增加。此外,在每个流程中,两个交换变量的值都会汇总到第三个变量中。
  • 求和后,第二个变量值被隐含到第一个变量中,因此这使得第一个变量值被从这个过程中冲走。在下一步中,将求和值分配给第二个变量。

因此,在此实例结束时,对于单个逻辑流,将应用以下事件:

  • 第一个变量的值被冲走。
  • 现有的第二个变量值填充到第一个变量中。
  • 求和值移入第二个变量。

在对给定的需要的值计数执行以下逻辑序列的过程中,可以实现斐波那契数列。

1.斐波那契数列程序(使用数组)

代码:

import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int Count = 15;
long[] array = new long[Count];
array[0] = 0;
array[1] = 1;
for (int x = 2; x < Count; x++) {
array[x] = array[x - 1] + array[x - 2];
}
System.out.print(Arrays.toString(array));
}
}

输出:

Java 中的斐波那契数列

说明:

  •  暗示上面起草的程序逻辑,但在本例中,斐波那契输入存储为数组的一部分。
  • 所以上面提到的所有操作都是针对数组进行的。

2.斐波那契数列程序(不暗示任何循环)

代码:

public class Fibonaccifunction
{
private static int indexvalue = 0;
private static int endPoint = 9;
public static void main (String[] args)
{
int number1 = 0;
int number2 = 1;
fibonaccifunction(number1, number2);
}
public static void fibonaccifunction(int number1, int number2)
{
System.out.println("index value : " + indexvalue + " -> " + number1);
if (indexvalue == endPoint)
return;
indexvalue++;
fibonaccifunction(number2, number1+number2);
}
}

输出:

Java 中的斐波那契数列

说明:

  •  暗示上面起草的程序逻辑,但在本例中,斐波那契输入使用名为斐波那契的函数递归处理。

3.斐波那契数列程序(不暗示任何循环,但仅使用条件实现)

代码:

public class Fibonacci_with_conditions
{
static int number2=1;
static int number1=0;
static int next=0;
public static  void Fibonacci_conditions( int number)
{
if(number<10)
{
if(number == 0)
{
System.out.print(" "+number);
number++;
Fibonacci_conditions (number);
}
else
if(number == 1)
{
System.out.print(" "+number);
number++;
Fibonacci_conditions(number);
}
else{
next=number1+number2;
System.out.print(" "+next);
number1=number2;
number2=next;
number++;
Fibonacci_conditions(number);
}
}
}
public static void main(String[] args)
{
Fibonacci_conditions(0);
}
}

输出:

Java 中的斐波那契数列

说明:

  • Implying the program logic drafted above, but at this instance, the Fibonacci inputs are regulated only through necessary conditional statements.
  • According to the conditions, the swapping of the variables is necessarily carried out.

4. Fibonacci Series Program( Without Loops, the Concepts of Looping is Achieved using Nextint Method)

Code:

import java.util.*;
public class Fibonacci_series
{
public static void main(String[] args)
{
System.out.println("Input:");
int number= 10,value1=1,value2=0,value3=0;
num(number, value1, value2, value3);
}
public static void num(int number,int value1,int value2,int value3)
{
if(value1 <= number)
{
System.out.println(value1);
value3=value2;
value2=value1;
value1=value2+value3;
num(number,value1,value2,value3);
}
}
}

Output:

Java 中的斐波那契数列

Explanation:

  • Implying the program logic drafted above, but at this instance, the Fibonacci inputs are handled recursively using a function named num, and the loop is carried out using the nextInt function.

Conclusion – Fibonacci Series in Java

These programs are implied to achieve the Fibonacci series for a given integer value.  A largely classified set of techniques are implied in the given list of examples. Techniques like an array-oriented approach and a condition-alone approach are very much peculiar.

以上是Java 中的斐波那契数列的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn