Spiegazioni di alcuni algoritmi

di il
10 risposte

Spiegazioni di alcuni algoritmi

Salve a tutti, sto studiando per dare l'esame di algoritmi nella mia università, ho riscontrato però dei problemi nel capire il funzionamento di alcuni algoritmi, non intendo solo il codice scritto per il programma ma anche la parte teorica. Questi algoritmi sono: Radice quadrata e fibonacci con alberi, spero che qualcuno di voi sia cosi gentile da potermi spiegare il loro funzionamento, ed una volta capito non credo di aver problemi a poter capire da solo il codice

10 Risposte

  • Re: Spiegazioni di alcuni algoritmi

    Troppo generico:
    radice quadrate non esiste un solo algoritmo! Ne esisto di molto sofisticati ed estremamente efficienti.

    fibonacci con alberi i numeri di fibonacci sono una cosa, gli alberi un'altra. Possono essere messi assieme ma ci sono n-mila motivi per farlo.

    Devi fornire indicazioni piu' dettagliate!
  • Re: Spiegazioni di alcuni algoritmi

    Sinceramente non so proprio come spiegartelo, dato che, non li ho ancora capiti, so solo che sul mio libro, trovo questi due capitoli: Un altro calcolo efficiente dell'n-esimo numero di fibonacci (cioè quello che riguarda fibonacci e gli alberi) e Radice quadrata.

    Potrei fare delle foto alle pagine e postarle, non mi viene altro in mente :/
  • Re: Spiegazioni di alcuni algoritmi

    A questi si aggiunge anche l'algoritmo di ricerca di fibonacci, cioè quell'algoritmo che cerca un campo chiave nell'array usando fibonacci
  • Re: Spiegazioni di alcuni algoritmi

    L'Albero di Fibonacci è un albero AVL che, data una determinata altezza, ha il minor numero possibile di nodi mantenendo il bilanciamento.

    Questo particolare tipo di albero prende il nome dall'omonimo matematico Leonardo Fibonacci. L'albero ha infatti le caratteristiche della famosa successione, è infatti intrinsecamente ricorsivo. Lo si evince dal fatto che qualsiasi albero di Fibonacci di altezza h può essere costruito a partire da una radice e da un sottoalbero di altezza h-2 come sottoalbero destro e h-1 come sottoalbero sinistro.

    Si verifica intuitivamente e visivamente che il coefficiente di bilanciamento di ogni singolo nodo dell'albero è +1. Quindi questa categoria di alberi è quella che più si avvicina alla condizione di sbilanciamento, pur essendo ovviamente ancora bilanciato.
    Sia \mathcal{T}_h un albero di Fibonacci di altezza h e sia \mathit{n}_h il numero dei suoi nodi. Risulta \mathit{h} = \theta (\log n_h)
    Per la natura stessa dell'albero di Fibonacci, risulta che \mathit{n}_h = 1 + \mathit{n}_{h-1} + \mathit{n}_{h-2}

    Tale enunciato ricorda molto la formula ricorsiva per il calcolo della successione di Fibonacci. Si riesce a dimostrare per induzione che \mathit{n}_h = \mathcal{F}_{h+3} - 1 dove \mathcal{F}_h rappresenta l'h-esimo elemento della successione di Fibonacci.
    Passo base:

    Il passo base è verificato banalmente, dato che \mathit{n}_0 = 1 e \mathcal{F}_3 - 1 = 2 - 1 = 1.
    Passo induttivo:

    Supponiamo che per ogni \mathit{k} < \mathit{h} si abbia che \mathit{n}_k = \mathcal{F}_{k+3} - 1 ed usando le ricorrenze relative ad n_h e ad \mathcal{F}_i si ottiene:

    \mathit{n}_h= 1 + \mathit{n}_{h-1} + \mathit{n}_{h-2} = 1 + \mathcal{F}_{h+2} -1 + \mathcal{F}_{h+1} -1 = \mathcal{F}_{h+3} - 1

    Inoltre una proprietà della successione di Fibonacci è che il rapporto tra due numeri della successione \lim_{h\rightarrow\infty} \frac{\mathcal{F}_{h+1}}{\mathcal{F}_{h}} si avvicina sempre più al Rapporto Aureo \phi = \frac{(1 + \sqrt{5})}{2} \approx 1,61803... e si dimostra che \mathcal{F}_h = \frac{\phi^h-(1-\phi)^h}{\sqrt{5}}= \frac{\phi^h-(-\phi)^{-h}}{\sqrt{5}} = \theta(\phi^h) .

    L'altezza dell'albero e il numero dei nodi sono quindi legati esponenzialmente, ragion per cui si ottiene h = \Theta(\log \ n_h) , in dettaglio un albero di Fibonacci con n_h nodi ha altezza < 1,44 \ \log (n_h+2)-0,328

    Spero possa esserti d'aiuto la spiegazione.
  • Re: Spiegazioni di alcuni algoritmi

    Copiare e incollare da Wikipedia non è un grande aiuto... Bastava un link
  • Re: Spiegazioni di alcuni algoritmi

    Che cosa vuoi tu?
    perché ti metti in mezzo?
    Non l'ho data a te la risposta ma a Shiny.
    Quindi sarà lui o lei che mi risponderà e mi darà una risposta in merito alla mia.
    Tu non c'entri ne dalla porta e ne dalla finestra.
    Quindi non ti impicciare, hai capito?!
  • Re: Spiegazioni di alcuni algoritmi

    Questo è un forum in cui tutti scrivono quando e se vogliono. Datti una calmata.
  • Re: Spiegazioni di alcuni algoritmi

    gucri ha scritto:


    Che cosa vuoi tu?
    perché ti metti in mezzo?
    Non l'ho data a te la risposta ma a Shiny.
    Quindi sarà lui o lei che mi risponderà e mi darà una risposta in merito alla mia.
    Tu non c'entri ne dalla porta e ne dalla finestra.
    Quindi non ti impicciare, hai capito?!
    Stai certo: la maleducazione non paga!
    E risulta pure ridicola
  • Re: Spiegazioni di alcuni algoritmi

    Lascia stare ... ovviamente è stato bannato ...
  • Re: Spiegazioni di alcuni algoritmi

    Spero di non aver causato una guerra per questo post , comunque ho risolto quasi del tutto il mio problema, l'unico rimasto e quello riguardante l'algoritmo di ricerca di fibonacci, quindi sarei grato se qualcuno mi possa aiutare, senza scatenare una rissa s'intende
Devi accedere o registrarti per scrivere nel forum
10 risposte