Jujukan Fibonacci terhad
P粉463811100
P粉463811100 2023-08-16 19:46:31
0
1
428
<p>Saya mahu melaksanakan fungsi yang menjana jujukan Fibonacci daripada <kod>N</kod> kepada <kod>N+K</kod> kod> elemen, yang mana <kod>(0<=N<=370; 0<=N+K<=371; 0<=K<=255)</kod>. Apabila input ialah <kod>n:370, k:1</code>, percubaan terakhir, <kod>n2</kod>, adalah di luar keperluan dan skop. Saya mahu memudahkan kod saya dan tidak menggunakan berbilang <code>if</code> terima kasih. </p><p><strong>Kemas kini: </strong></p><p>Ini adalah kontrak pintar untuk blockchain di mana <code>int</code> Ia adalah 256 bit . Apabila <kod>N+K >= 369</kod>, gelung terakhir <kod>n2</kod> </p> <pre class="brush:js;toolbar:false;">fungsi getFibSeq(n, k) { biarkan nombor = []; biarkan n1 = 0; biarkan n2 = 1; biarkan i = 0; biarkan j = (n + k); manakala (i < j){ jika((i - n) >= 0){ output.push(n1); } if((j - i - 1) > 0){ biarkan suhu = n1; n1 = n2; if((j - i - 2) > 0) { n2 = temp + n2; } } i = i + 1; } pulangan keluaran; } </pra> <p><br /></p>
P粉463811100
P粉463811100

membalas semua(1)
P粉098979048

Terdapat formula tertutup untuk mengira nombor Fibonacci ke-1, dikenali sebagai formula Binet. Ini membolehkan anda mendapatkan nombor ke-n dalam kerumitan masa asimptotik O(1).

Berikut ialah contoh yang menunjukkan cara mengira nombor Fibonacci untuk mana-mana n.

Lanjutkan ini untuk menyelesaikan masalah khusus anda. Saya cadangkan mengira nilai n-1 dan n-1n. Kemudian ulang k kali untuk mendapatkan nilai yang dikehendaki. Jejaki keputusan semasa anda berulang dan anda sepatutnya baik-baik saja.

function fibonacci(n) {
    const phi = (1 + Math.sqrt(5)) / 2;
    const psi = (1 - Math.sqrt(5)) / 2;  // phi的负倒数
    return Math.round((Math.pow(phi, n) - Math.pow(psi, n)) / Math.sqrt(5));
}

// 测试
console.log(fibonacci(10));  // 输出:55

Nota: Walaupun formula ini memberikan hasil yang tepat untuk nilai n yang lebih kecil, ketepatan mungkin hilang untuk nilai yang lebih besar disebabkan oleh pengehadan operasi titik terapung dalam JavaScript.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!