Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Fibonacci - Come impostare il progetto

Fibonacci

Sommario | Admin | Forum | Bugs | Todo | Files

Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 19:16
Martedì, 10/04/2012
Ciao!

Ho letto il titolo del progetto. Mi sembra molto interessante.
Ho qualche idea su come gestire i grandi numeri che la serie genera.
Voi come la pensate?

PM Quote
Avatar
Kernelol (Member)
Newbie


Messaggi: 16
Iscritto: 26/09/2011

Segnala al moderatore
Postato alle 21:12
Giovedì, 12/04/2012
Hey, ciao... Ora carico una versione con il codice sorgente che ho dimenticato di mettere nelle altre... Ci sono alcuni problemi come per esempio la variabile che se Integer arriva solo al 23° numero della serie e se real ogni volta mostra i decimali (ad esempio 5,5000000000000E+000) e non saprei risolvere di mio... Inoltre dopo il 40° numero ci mette moltissimo tempo a calcolare D: Per il momento il programma è del tutto da sviluppare, i miei sono solo schizzi :yup:

PM Quote
Avatar
Kernelol (Member)
Newbie


Messaggi: 16
Iscritto: 26/09/2011

Segnala al moderatore
Postato alle 21:24
Giovedì, 12/04/2012
Caricato sorgente e relativa applicazione, intanto ti ho accettato come developer nel progetto insieme ad Ht-never :D

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 0:29
Venerdì, 13/04/2012
Testo quotato

Postato originariamente da Kernelol:

Hey, ciao... Ora carico una versione con il codice sorgente che ho dimenticato di mettere nelle altre... Ci sono alcuni problemi come per esempio la variabile che se Integer arriva solo al 23° numero della serie e se real ogni volta mostra i decimali (ad esempio 5,5000000000000E+000) e non saprei risolvere di mio... Inoltre dopo il 40° numero ci mette moltissimo tempo a calcolare D: Per il momento il programma è del tutto da sviluppare, i miei sono solo schizzi :yup:



La visualizzazione di un numero, può essere formattata dal comando writeln in questo modo:
Codice sorgente - presumibilmente Plain Text

  1. ...
  2.   n:=5.3;  (* n è stata dichiarata real *)
  3.   vriteln(n:6:2);
  4.   ...

  

Il numero n, verrà visualizzato con 2 cifra decimali, e occuperà 6 caratteri.

Il calcolo è rallentato, perché utilizzi una funzione ricorsiva. Per migliorare le prestazioni, basta utilizzare un ciclo iterativo.




PM Quote
Avatar
Kernelol (Member)
Newbie


Messaggi: 16
Iscritto: 26/09/2011

Segnala al moderatore
Postato alle 13:37
Venerdì, 13/04/2012
Ora provo...

PM Quote
Avatar
Dario DF (Member)
Newbie


Messaggi: 19
Iscritto: 19/06/2013

Segnala al moderatore
Postato alle 2:15
Giovedì, 08/08/2013
Penso che il metodo migliore comprenda l'utilizzo delle matrici: http://fusharblog.com/solving-linear-recurrence-for-progra ...

Un alternativa, forse più veloce, è l'uso del rapporto aureo:

Codice sorgente

  s5 = sqrt(5);   Phi = (1 + s5) / 2;   F = pow(Phi, n);   if (n % 2) {     F -= 1 / F;   } else {     F += 1 / F;   }   F /= s5;   Fn = round(F); // Fn è l'approssimazione dell'n-esimo numero di fibonacci, che è intero per definizione



Ma questo calcolo non è più valido per n grandi a causa delle approssimazioni...

PM Quote