Page 1 sur 1

programme fraction continue

Message non luPosté: 24 Sep 2022, 11:23
de kadtexas
Bonjour,

Code: Tout sélectionner
Define LibPub foncontinu(list)=
Func
:local k,n,d,r
:© list: liste des coefficients, ici {4,2,6,7} de la fraction 415/93
:© k:nombre de coéfficients
:© f(k-1): matrices des coefficients de la fraction continue avec les indices 0,1,2,...,k-1
:n:=f(k-1)
:d:=1
:while k≥1
: r:=d
: d:=n
: k:=k-1
: n=f (k-1)*n+r
:endwhile
:disp n/d
:EndFunc

Je me suis inspiré d'un programme sur internet pour écrire le programme ci-dessus sur ti nspire.

Déterminer une valeur approchée de la fraction 415/93 à partir de ses coefficients {4,2,6,7}.
J'ai programmé Euclide en extrayant les quotients.
Mais je ne sais pas comment définir la fonction f(k-1).

Merci d'avance.

Re: programme fraction continue

Message non luPosté: 24 Sep 2022, 15:22
de Bisam
Je pense qu'il s'agit simplement du dernier élément de la liste.
Le site où tu as pris cet algorithme est probablement une très mauvaise traduction d'un site de vulgarisation écrit en (mauvais) anglais.

En Basic Nspire, cela s'écrit :
Code: Tout sélectionner
Define Libpub foncontinu(l)
Func
local k,n,d,r
k:=dim(l)
n:=l[k]
d:=1
While k≥1
  r:=d
  d:=n
  k:=k-1
  n:=l[k]*n+r
EndWhile
Return n/d
EndFunc

Re: programme fraction continue

Message non luPosté: 26 Sep 2022, 15:06
de kadtexas
Merci pour la fonction, ça marche.
J'ai décalé k:=k-1 en dessous de n:=l[k]*n+r car l'indice 0 provoque une erreur de dimension.

Re: programme fraction continue

Message non luPosté: 26 Sep 2022, 17:55
de Bisam
Oui, j'ai oublié de modifier ce détail : j'ai trop l'habitude du Python, désormais...

Re: programme fraction continue

Message non luPosté: 28 Sep 2022, 10:57
de kadtexas
Bonjour,

Je pense que cet algorithme développe en fraction continue que les rationnels n/d avec n>d
Pour 1/7 il donne [0,7]
1/7 est périodique, 0,142857 à la calculette.