Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Liczby Fibonacciego...
Forum PHP.pl > Forum > PHP
Buby
Witam! Teraz mam problem z liczbami Fobonacciego... skrypot musi podawac liczbe fibonnacciego w kazdym pokoleniu do zmiennej k!!
Pozdrawiam
Buby
Juz sam stworzylem taki skrytp!! jesli komus jest potrzebny to podaje go:

[php:1:93a0b80a52]<?php

for ($i=1; $i<$k+1; $i++)
{
if(($i == "1")) {
print("1<br>");
$l1 = "1";
} else
if((($i == "2"))) {
print("1<br>");
$l2 = "1";
} else {
$liczbaf = $l1+$l2;
print("$liczbaf<br>");

$l1 = $l2;
$l2 = $liczbaf;

}
}
?>[/php:1:93a0b80a52]

Pozdrawiam
mhs
czuje jakis powiew algorytmow, struktur danych smile.gif
matys
Ja bym wprowadził poprawkę w lini:
[php:1:1ac6500b98]
if(($i == "1"))
[/php:1:1ac6500b98]
w koncu zasadza działania jest taka, ze jesli liczba to 1, lub 0, wtedy funkcja zwraca 1, zatem:
[php:1:1ac6500b98]
if(($i==1 OR $i==0))
[/php:1:1ac6500b98]
NuLL
Gdzies na jakims forum w necie zagranica pisali ze najszybciej jest wypisac rekurencja ale nie pamietam jak to zrobic
matys
Dobry opis jest tutaj:
Kod
Ciąg Fibonacciego wyraża się rekurencyjnym wzorem: f(n)=f(n-2)+f(n-1), gdy f(1)=1 oraz f(2)=1.

Łatwo obliczyć, że:

f(3)=f(1)+f(2)=1+1=2

f(4)=f(2)+f(3)=1+2=3

f(5)=f(3)+f(4)=2+3=5

Jeśli chcialbys się bardziej zaglebic w algorytmy i struktury danych to polecłabym ten serwis. Jak dla mnie najlepszy ze wszsytkich:
http://www.algorytm.cad.pl/

Natomiast jeśli znasz C++ to napisałem tu ciąg fibonacciego wiec będziesz mogl przeniesc sobie go na php
Kod
int fib(int n);



int main()

{

    int n, ask;

    cout << "Podaj numer elementu ciągu: ";

    cin >> n;

    

    cout << "nn";

    

    ask = fib(n);

    

    cout << "Wartoscia " << n << "-go elementu ciągu ";

    cout << "Fibbonacciego jest" << ask << "n";

  

  system("PAUSE");    

  return 0;

}

    int fib(int n)

    {

    cout << "Przetwarzanie fib(" << n << ")....";

    

    if(n < 3 )

    {

    cout << "Zwraca 1!n";

    return(1);

    }

    else

    {

    cout << "Wywołuje fib("<< (n-2) << ")...";

    cout << "oraz fib("<< (n-1) << ").n";

    return( fib(n-2) + fib(n-1));

    }

}
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.