Page 1 of 1

Fibonacci

Unread postPosted: 19 Feb 2013, 18:24
by marseille
Dans votre section téléchargement, à l'adresse archives_voir.php?id=541 vous présentez un petit programme d'une dizaine de lignes pour générer une suite de Fibonacci (sans compter le define et sa fin, ni les commentaires). On peut faire la même chose avec une seule ligne.

seqn(u(n-1)+u(n-2),{1,1},x)

Avec x contenant le nombre d'éléments de la suite que l'on veut. Et ça donne :

Define fib(x)=Prgm
:© generates first n Fibonacci numbers in the list Fibs
:© precondition: x >=1 and n is a whole number
:© note how you can put a comment on any line of the program
: Disp seqn(u(n-1)+u(n-2),{1,1},x)
:EndPrgm


Ou, encore plus simple :
Define fib(x)=seqn(u(n-1)+u(n-2),{1,1},x)


L'instruction seqn sert à générer des listes de nombres à partir de nombres déja générés dans cette même liste. Il suffit de s'en servir.

- Le premier paramètre, u(n-1)+u(n-2), sert à définir l'élément à créer comme égal à la somme des 2 éléments qui le précèdent. Par exemple, le 3ème élément de la liste est égal à la somme du 1er et du second. A noter que pour la fonction seqn, u représente la liste et n est le rang de l'élément à créer. Donc u(n) est l'élément en cours. u(n-1) l'élément précédent, etc... A noter que les noms u et n vous sont imposés. Vous ne pouvez pas les changer.
- Le deuxième paramètre représente les 2 premiers éléments de la liste. Pour une suite de Fibonacci : 1 et 1.
- Le troisième paramètre est le nombre total d'éléments dans la liste.

Re: Fibonacci

Unread postPosted: 19 Feb 2013, 18:26
by diot
oui, pourquoi pas

Re: Fibonacci

Unread postPosted: 19 Feb 2013, 19:04
by Lionel Debroux
Sur TI-68k, la façon la plus rapide de calculer les grands termes de la suite de Fibonacci est d'utiliser la puissance de matrices: [1,1;1,0]^n.
Sur Nspire, est-ce que seqn réussit à faire mieux que la puissance de matrices ?

Re: Fibonacci

Unread postPosted: 19 Feb 2013, 19:05
by Laurae
Lionel Debroux wrote:Sur TI-68k, la façon la plus rapide de calculer les grands termes de la suite de Fibonacci est d'utiliser la puissance de matrices: [1,1;1,0]^n.
Sur Nspire, est-ce que seqn réussit à faire mieux que la puissance de matrices ?


On est bien dans le forum z80 ?
Car là je vois pas le rapport entre le programme linké et les z80 :p à moins que ce soit une erreur.

Re: Fibonacci

Unread postPosted: 19 Feb 2013, 23:53
by marseille
Laurae wrote:
Lionel Debroux wrote:Sur TI-68k, la façon la plus rapide de calculer les grands termes de la suite de Fibonacci est d'utiliser la puissance de matrices: [1,1;1,0]^n.
Sur Nspire, est-ce que seqn réussit à faire mieux que la puissance de matrices ?


On est bien dans le forum z80 ?
Car là je vois pas le rapport entre le programme linké et les z80 :p à moins que ce soit une erreur.

Ah pardon. C'est ma faute, alors.
Si le modo voit ce thread, il peut le déplacer au bon endroit. J'ai un peu perdu l'habitude d'utiliser les forums.

[Edit par Bisam] Voilà qui est fait.

Re: Fibonacci

Unread postPosted: 20 Feb 2013, 00:04
by Excale
Ce programme a été créé il y a fort longtemps, sûrement à l'époque où l'éditeur de programmes n'existait pas.

Il se trouve qu'à cette époque, seqn n'existait pas non plus :).

Re: Fibonacci

Unread postPosted: 21 Feb 2013, 10:46
by Bisam
Une façon relativement efficace est d'utiliser la formule de Binet et le binôme de Newton : cela permet d'obtenir l'expression sous la forme d'une somme d'entiers... mais il faut calculer plein de coefficients binomiaux.

Une dernière façon est d'utiliser l'algorithme logarithmique... et pour cela, je vous renvoie à Wikipedia qui explique cet algorithme très bien (et le fournit en Python, ce qui est très similaire au TI-Basic).