살면서 우리가 육안으로 아름답다고 구별하는 것들은 마술처럼 황금비를 담고 있는 경우가 많습니다. 이때 우리는 한숨을 쉬게 됩니다. 수학의 아름다움은 어디에나 있습니다. 황금분할 수열(피보나치 수열이라고도 함)의 마지막 항과 이전 항 사이의 비율의 극한은 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]
;
배열 첨자가 n이면 요소는
a[n-2]입니다. +a[n-1 ];
결론을 내릴 수 있습니다:
a[0]=1
🎜🎜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 중국어 웹사이트의 기타 관련 기사를 참조하세요!