>  기사  >  백엔드 개발  >  피보나치 시리즈 PHP

피보나치 시리즈 PHP

王林
王林원래의
2024-08-29 13:12:20594검색

일반 언어로 말하면 피보나치 계열은 필요한 계열 크기를 얻을 때까지 이전 두 요소가 추가되어 다음 요소를 형성할 때 형성되거나 획득되는 일련의 요소입니다. 우리는 보통 0과 1로 피보나치 수열을 시작합니다.

광고 이 카테고리에서 인기 있는 강좌 PHP 개발자 - 전문 분야 | 8개 코스 시리즈 | 3가지 모의고사

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

시리즈가 형성되면 다음과 같이 나타납니다.

0, 1, 1, 2,3, 5, 8, 13, 21, 34

위에서 설명한 것처럼 이전 두 숫자를 더해 다음 숫자를 얻습니다.

  • 위 계열에서 4번째 위치(n번째 위치)의 '2'는 앞의 두 숫자를 더하여 얻습니다.[ [n-1] 및 n-2]), 1.
  • '3'은 앞의 두 숫자인 2를 더한 값입니다.
  • '5'는 앞의 두 숫자인 3을 더한 값입니다.
  • 등등

PHP와 논리의 피보나치 수열

여기에서는 PHP 환경에서 작업하는 동안 피보나치 수열을 얻는 것을 구체적으로 살펴보겠습니다. 차이점은 코딩할 형식, 즉 PHP 스크립트의 시작 태그와 종료 태그를 사용하는 것입니다.

<?php
…;
…;
…;
?>

이것은 반복적 방식과 재귀적 방식이라는 두 가지 방법을 사용하여 PHP에서 피보나치 수열이 어떻게 생성되는지 이해하고 배우는 데 도움이 됩니다.

계열 크기인 'n'이라는 숫자가 주어지면, 주어진 숫자까지의 피보나치 계열을 구해보겠습니다.

예를 들어 n=5에 대해 피보나치를 생성해야 하는 경우 5번째 항까지의 요소를 표시합니다.

예시 #1

  • 입력: n = 9
  • 출력: 0 1 1 2 3 5 8 13 21

예시 #2

  • 입력: n=13
  • 출력: 0 1 1 2 3 5 8 13 21 34 55 89 144

PHP의 논리

로직은 위에서 설명한 것과 같습니다. 여기서는 n=10으로 지정했습니다. 즉, n번째 항까지의 요소를 찾아야 합니다. 따라서 우리는 시리즈에 n개의 용어가 나올 때까지 논리를 계속 따를 것입니다.

위의 예 중 하나를 살펴보겠습니다.

위의 예 중 하나에서는 n=9이고 Logic에서는 다음과 같이 말합니다.

  • 첫번째 숫자를 0으로 초기화하세요.
  • 두 번째 숫자를 1로 초기화하세요.
  • 첫 번째와 두 번째 숫자를 인쇄하세요.
  • 여기서 루프가 시작됩니다.
  • 시리즈의 다음 요소, 즉 3번째 요소 [n번째 요소]의 경우 바로 앞의 두 숫자 [(n-1) 및 (n- 2)] 여기서와 같이 시리즈의 다음 숫자를 얻으려면 0 + 1 = 1입니다.

n=3인 경우

  • n – 1 = 3 – 1 = 계열의 두 번째 요소 = 1
  • n – 2 = 3 – 2 = 계열의 첫 번째 요소 = 0 3rd 요소 = (n-1) + (n-2) = 1 + 0 = 1

따라서 계열의 세 번째 요소는 1입니다.

  • 마찬가지로 논리에 따르면 계열의 4번째 요소 [n]을 얻으려면 이전 숫자 e를 추가해야 합니다. (n-1) 및 (n-2) 요소

이제 이 시점에서 'n'은 '4'와 같습니다.

  • n – 1 = 4 – 1 = 계열의 세 번째 요소 = 1
  • n – 2 = 4 – 2 = 계열의 두 번째 요소 = 1 4번째 요소 = (n-1) + (n-2) = 1 + 1 = 2

따라서 4번째 요소를 2로 얻습니다.

따라서 'n'이 9인 경우 위에서 설명한 것과 동일한 논리에 따라 수열을 얻습니다. 피보나치 수열은 0 1 1 2 3 5 8 13 21

두 가지 접근 방식을 사용한 피보나치 인쇄용 PHP 시리즈

피보나치 수열을 인쇄하기 위해 PHP에서 프로그램을 작성하는 방법에는 기본적으로 두 가지 유명한 버전이 있습니다.

  • 재귀 없이
  • 재귀 사용

PHP에서 평소와 같이 'echo' 문을 사용하여 출력을 인쇄합니다.

1. 비재귀 방식

Iteration을 사용하는 것으로도 알려져 있습니다. 이것은 0과 1로 계열을 시작하는 접근 방식입니다. 그 후에 첫 번째와 두 번째 숫자를 인쇄합니다. 다음으로 루프를 사용하여 반복을 시작하겠습니다. 여기서는 while 루프를 사용합니다.

처음 10개의 피보나치 수열 요소를 인쇄하기 위한 PHP 스크립트

코드:

<?php
function Fibonacci($n)
{
$num1= 0;
$num2= 1;
$counter= 0; while($counter < $n)
{
echo ' '.$num1;
$num3= $num2 + $num1;
$num1= $num2;
$num2= $num3;
$counter= $counter+1;
}
}
//for a pre defined number for Fibonacci.
$n=10; Fibonacci($n);
?>

코드 설명:

  1. Here n is defined as equal to 10, so the logic will run till nth element e. Until we have n=10 elements in the series.
  2. First element is initialized to 0 and second element is initialized to 1, e. num1 = 0 and num2 = 1.
  3. The two elements i.e. num1 and num2 are printed as the first and second elements of the Fibonacci series.
  4. The logic we discussed will be used from here on and our iteration loop starts.
  5. According to our logic, to get num3, we need to add num1 and num2. Since currently num1 = 0 and num2 = 1, num3 comes out as 1.
  6. Now new number obtained is placed in num2 variable and num2 is saved in num1 variable. Basically simple swapping is taking place so that, now num1 is equal to ‘1’ and num2 = newly obtained num3 i.e. ‘1’.
  7. So when the next iteration happens and num3 is obtained by adding current values of num1 and num2, which, according to our PHP script, are as follows:
      • num1 = 1
      • num2 = 1
      • num3 = num1 + num2 = 1 + 1 = 2

Thus we get our next number in the Fibonacci Series.

  1. Similarly, the iteration keeps on till we achieve n = 10, size of the series that was defined in the program itself.

When the above program is executed, we get the output as follows:

피보나치 시리즈 PHP

2. The Recursion Way

By recursion, we mean the way where the same function is called repeatedly until a base condition is achieved or matched. At this point, recursion is stopped.

The said “function is called repeatedly” phrase points to the section in your code where we will define our logic for the Fibonacci Series.

Below is an example of generating Fibonacci Series in PHP, using If-Else conditions giving way for our recursive approach.

Here is the PHP Scripts for printing the first 15 elements for Fibonacci Series.

<?php
function Fibonacci($num)
{
//If-Else IF will generate first two numbers for the series if($num == 0)
return 0;
else if($num == 1) return 1;
// This is where Recursive way comes in.
//recursive call to get the rest of the numbers in the series else
return(Fibonacci($num -1) + Fibonacci( $num -2));
}
//For a given n=15
$num =15;
for($counter = 0; $counter < $num; $counter++)
{
echo Fibonacci($counter).' ';
}
?>

Code Explanation:

This is the recursive way, which means our function that contains our logic is called again and again for generating the next element in the series until our condition for achieving a specific series size is obtained.

In Iterative approaches, the First and Second element is first initialized and printed. Here we allow a For Loop to give us our first and second elements starting with 0 and 1.

  1. We are using a For loop having a ‘counter’ variable that starts with 0. The For loop works up till the given ‘n’, size for the series.
  2. when loop starts, with the counter variable as 0, we use the recursion approach and call our defined function, Fibonacci ( ).
  3. Here code starts, with If and Else IF condition.
  4. First IF condition checks if ‘num’ variable holds value as ‘0’, if yes, then the code prints or returns ‘0’ as the element for the series.
  5. Similarly, second Else-If condition checks for the value ‘1’, if the ‘num’ variable holds ‘1’ as its value, the program returns it as it is.
  6. Next Else condition recursively calls the Fibonacci function for’ num’ values other than ‘0’ and ‘1’, continuing to reading the values from the For loop counter.

This is where our Fibonacci Logic comes into work and the next number in the sequence is obtained by adding its previous two numbers. Because this is the recursive method, we need to give a counter value to count the recursions equal to nth value, which is being handled by our For Loop.

When the above program or code is executed, the following output is displayed.

피보나치 시리즈 PHP

The Fibonacci Series does not only appear in mathematics or science calculations but in nature too, have you ever noticed Yellow chamomile flower head.

The Fibonacci Series if plotted on a graph, it forms a spiral called Fibonacci Spiral. It is also one of the gems given by Indian soil. It is found in Indian Mathematics as early as 200 BC in the works done by the mathematician, Pingala. Later Fibonacci introduced the sequence to European countries in his book Liber Abacci in 1200s.

위 내용은 피보나치 시리즈 PHP의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:PHP에서 스와핑다음 기사:PHP에서 스와핑