Page 1 of 1

Alternative à ZFrac

Unread postPosted: 14 May 2013, 08:10
by Persalteas
Ce programme de Weregoose est censé être une alternative à ZFrac, la routine qui sépare le numérateur du dénominateur d'une valeur décimale (donc une routine de mise en fraction), basée sur l'algorithme d'Euclide:

Code: Select all
:Ans→X:{1,abs(Ans
:Repeat E‾7>Ans(2
:abs(Ans(2){1,fPart(Ans(1)/Ans(2
:End
:round({X,1}/Ans(1),0


Cependant, pour toute valeur que la fonction >Frac n'arrive pas à traiter, la valeur donnée par ce programme est approchée.

Exemple, 1245312/6403:prgmFRAC me répond 1245446/6404, ce qui n'est pas si faux que ça (l'erreur est de l'ordre de 10^-2).

Est-ce que Zfrac fonctionne sur ce principe, ou est-ce qu'elle donne de vrais résultats ?
Et quel algorithme as-tu utilisé, critor ?

Re: Alternative à ZFrac

Unread postPosted: 14 May 2013, 08:15
by critor
Zfrac est très rapide et très court.

En fait, il fait tout simplement appel à une des routines utilisées en interne par la commande >Frac.


A la différence que la commande >Frac ne fait qu'un simple affichage dont le contenu n'est pas récupérable de façon automatisée pour être réutilisé.

Zfrac lui stocke séparément les numérateur et dénominateur trouvés, permettant ainsi leur réutilisation par la suite. :bj:

Re: Alternative à ZFrac

Unread postPosted: 14 May 2013, 09:00
by Persalteas
D'accord, donc il ne fait pas de calcul différent de la routine de l'OS.

Bon, merci :)

Re: Alternative à ZFrac

Unread postPosted: 14 May 2013, 14:10
by Bisam
Ce programme est très court mais ne donne pas forcément les meilleures approximations fractionnaires... parce que la méthode utilisée, l'algorithme d'Euclide, ne le permet pas directement.
Pour obtenir les meilleures approximations fractionnaires, il faudrait utiliser l'algorithme d'Euclide étendu pour calculer petit à petit les numérateurs et dénominateurs les meilleurs.
Cela demanderait à peine plus de temps mais le programme doublerait en taille et utiliserait des variables !

Re: Alternative à ZFrac

Unread postPosted: 08 Jun 2013, 11:45
by Liza2
Ce programme est très court mais ne donne pas forcément les meilleures approximations fractionnaires... parce que la méthode utilisée, l'algorithme d'Euclide, ne le permet pas directement.