Dalam kehidupan, perkara yang kita bezakan sebagai indah dengan mata kasar selalunya secara ajaib mengandungi nisbah emas Pada masa ini, kita perlu mengeluh: keindahan matematik ada di mana-mana. Had nisbah antara sebutan terakhir dan sebutan sebelumnya bagi jujukan bahagian emas (juga dikenali sebagai jujukan Fibonacci) ialah punca dua setengah tolak satu, iaitu lebih kurang sama dengan 0.618 (iaitu nisbah bahagian emas). Jadi bagaimana untuk melaksanakan jujukan bahagian emas menggunakan PHP Jangan risau, mari luangkan masa untuk memahami.
Pertama sekali, mari kita lihat Jujukan Bahagian Emas (iaitu Jujukan Fibonacci):
Jujukan Fibonacci merujuk kepada A ini turutan:
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765....
iaitu dua nilai pertama: . Bermula dari digit ketiga, setiap digit ialah hasil tambah dua digit pertama digit semasa
Formula biasa ialah:
Fn = F(n-1) F(n 1 )
F: merujuk kepada jujukan semasa
n: subskrip lajur eksponen
Baiklah, selepas memahami urutan bahagian emas (jujukan Fibonacci), mari kita lihat cara melaksanakannya menggunakan PHP.
Kaedah 1: Gunakan tatasusunan
untuk memerhati urutan yang diberikan di atas dan menggabungkannya dengan pengetahuan tatasusunan untuk menganalisis:
Apabila subskrip tatasusunan ialah 0 atau 1, nilai elemen ialah 1
;
Apabila subskrip tatasusunan ialah 2, elemen ialah a[0] a[1]
;
a[1] a[2]
a[n-2] a[n-1];
a[0]=1
a[1]=2
a[n]=a[n-2] a[n-1]
<?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); ?>
Memandangkan kita telah mempelajari cara menggunakan tatasusunan untuk mencari jujukan Fibonacci, mari kita lihat menggunakan rekursi untuk mencari jujukan Fibonacci.
Kaedah 2: Menggunakan rekursiOutput:
<?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); ?>
Kaedah rekursif ialah juga dilaksanakan Ia sudah keluar, bukankah ia sangat mudah!
Algoritma rekursif boleh menyelesaikan masalah yang bertanggungjawab menggunakan kod yang lebih pendek, tetapi kecekapan operasinya agak rendah.
Itu sahaja jika anda ingin mengetahui perkara lain, anda boleh klik ini. → →
tutorial video phpAtas ialah kandungan terperinci Pertemuan sempurna antara PHP dan jujukan bahagian emas (tidak boleh dilepaskan). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!