>  기사  >  백엔드 개발  >  PHP와 황금분할 시퀀스의 완벽한 만남(놓치지 마세요)

PHP와 황금분할 시퀀스의 완벽한 만남(놓치지 마세요)

青灯夜游
青灯夜游원래의
2021-07-30 16:59:292821검색

살면서 우리가 육안으로 아름답다고 구별하는 것들은 마술처럼 황금비를 담고 있는 경우가 많습니다. 이때 우리는 한숨을 쉬게 됩니다. 수학의 아름다움은 어디에나 있습니다. 황금분할 수열(피보나치 수열이라고도 함)의 마지막 항과 이전 항 사이의 비율의 극한은 2/2 빼기 1의 근이며, 이는 대략 0.618(즉, 황금분할 비율)과 같습니다. 그렇다면 PHP를 사용하여 황금분할 시퀀스를 구현하는 방법은 무엇입니까? 걱정하지 마세요. 시간을 내어 이해해 보도록 하겠습니다.

먼저 골든 섹션 수열(예: 피보나치 수열)을 이해해 보겠습니다.

피보나치 수열은 다음 수열을 의미합니다.

1 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765....

즉, 처음 두 값은 모두 1이고 세 번째 자리부터 시작하며 각 자리는 현재 자리의 이전 두 자리의 합입니다

정규식입니다 :

Fn = F(n-1) + F(n+1)

  • F: 현재 시퀀스를 참조

  • n: 인덱스 열의 첨자

알겠습니다. 금색은 이해합니다. 시퀀스(피보나치 수열)을 분할하고, 이를 PHP를 사용하여 구현하는 방법을 살펴보겠습니다.

방법 1: 배열

을 사용하여 위에 주어진 시퀀스를 관찰하고 배열 지식과 결합하여 다음을 분석할 수 있습니다.

  • 배열 첨자가 0 또는 1인 경우 요소의 값은 입니다. 1;1

  • 数组下标为2时,元素是a[0]+a[1];

  • 数组下标为3时,元素是a[1]+a[2];

  • .....

  • 数组下标为n时,元素是a[n-2]+a[n-1];

可以得出:

  • a[0]=1

  • a[1]=2

  • a[n]=a[n-2]+a[n-1]

배열 첨자가 2이면 요소는 a[0]+a[1]입니다.

배열 첨자가 3이면 요소는 a[0]+a[1]입니다. 요소는 a [1]+a[2];PHP와 황금분할 시퀀스의 완벽한 만남(놓치지 마세요)

.....

배열 첨자가 n이면 요소는 a[n-2]입니다. +a[n-1 ];


결론을 내릴 수 있습니다: PHP와 황금분할 시퀀스의 완벽한 만남(놓치지 마세요)

a[0]=1

a[1]=2

🎜🎜a[n]=a[n-2]+a[n-1] (n>2)🎜🎜🎜🎜코드 구현: 🎜
<?php
header("Content-type:text/html;charset=utf-8");
function test($num){
    $arr=[];
    for($i=0;$i<$num;$i++)
    {
        if($i==0 || $i==1){
            $arr[$i]=1;
        }else{
            $arr[$i]=$arr[$i-1]+$arr[$i-2];
        }
		echo $arr[$i]." ";
    }
}
echo "斐波那契数列前10位:";
test(10);
echo "<br>斐波那契数列前11位:";
test(11);
echo "<br>斐波那契数列前12位:";
test(12);
?>
🎜출력: 🎜🎜🎜🎜🎜이해하기 배열을 사용하여 피보나치 수열을 찾는 방법을 배웠으니 이제 재귀를 사용하여 피보나치 수열을 찾는 방법을 살펴보겠습니다. 🎜🎜🎜방법 2: 재귀 사용🎜🎜
<?php
header("Content-type:text/html;charset=utf-8");
function fbnq($n) {
	if ($n <= 0) {
		return 0;
	}
	if ($n == 1 || $n == 2) {
		return 1;
	}
	return fbnq($n - 1) + fbnq($n - 2);
}

echo "斐波那契数列第10位:" . fbnq(10);
echo "<br>斐波那契数列第11位:" . fbnq(11);
echo "<br>斐波那契数列第12位:" . fbnq(12);
?>
🎜출력: 🎜🎜🎜🎜🎜🎜재귀 방법도 구현했는데, 아주 간단하지 않나요! 🎜🎜재귀 알고리즘은 더 짧은 코드를 사용하여 책임 있는 문제를 해결할 수 있지만 작업 효율성은 상대적으로 낮습니다. 🎜🎜그렇습니다. 더 알고 싶다면 여기를 클릭하세요. → →🎜php 비디오 튜토리얼🎜🎜

위 내용은 PHP와 황금분할 시퀀스의 완벽한 만남(놓치지 마세요)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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