Rechercher
 
 

Résultats par :
 


Rechercher Recherche avancée

Connexion

Récupérer mon mot de passe

Chatbox externe


Derniers sujets
» [JEU] Mon voisin du dessous
Dim 3 Sep 2017 - 19:50 par Clément.7

» Lancement du TI-Concours 2017 !
Sam 20 Mai 2017 - 0:27 par Paulo1026

» Chaînes Youtube des membres
Ven 19 Mai 2017 - 22:41 par Wistaro

» cacul du taux d'intêret
Ven 24 Mar 2017 - 21:50 par m@thieu41

» [Projet] Un mario by tout82
Dim 29 Jan 2017 - 14:09 par Wistaro

» Cherche documentation assembleur TI82stat
Mer 25 Jan 2017 - 12:29 par Ti64CLi++

» Probleme Ti-82 Stats fr
Jeu 12 Jan 2017 - 13:56 par Ti64CLi++

» ROM 82 stats.fr
Jeu 15 Déc 2016 - 10:24 par Ti64CLi++

» flappy bird
Jeu 15 Déc 2016 - 10:23 par Ti64CLi++

Partenaires
TI-Planet Espace-TI : Forum

Faire un don à Tout-82...
Où va cet argent ?
Membres donateurs:- Persalteas (10€)
- Wistaro (5€)
- jo2geek (22€)

Les posteurs les plus actifs du mois
Ti64CLi++
 
Clément.7
 


Calcul de factorielle, avec les chiffres significatifs

Voir le sujet précédent Voir le sujet suivant Aller en bas

Calcul de factorielle, avec les chiffres significatifs

Message par persalteas le Jeu 6 Mar 2014 - 18:48

Salut, alors voilà mon algorithme, qui effectue bêtement ce qu'on fait à la main quand on calcule une factorielle: il pose les multiplications.

Je n'ai pas su trouver la méthode plus rapide pour laquelle 135! est une limite.
Mon algorithme ci-dessous est donc plus lent (7 minutes et 8 secondes pour calculer 135!) mais peut calculer jusqu'à 449! (997 chiffres significatifs).


En virant les zéros de fin de liste et en stockant leur nombre dans une variable, on pourrait étendre la portée de l'algorithme jusqu'à la factorielle qui possède 999 chiffres significatifs avant les zéros, ce qui est assez puissant, quand même. (mais que je n'ai pas fait dans le cadre du concours, c'était inutile... )


prgmFACTDG a écrit:
:Input N
:getTime→L6
:ClrHome
:Disp "COMPUTING…
:Output(3,1,"*
:abs(iPart(real(NN
:{1L1
:For(A,2,N
: Output(2,1,A
: Output(4,1,L1
: AL1L1
: A-1
: dim(L1)-iPart(Ans/5)-iPart(Ans/25
: For(C,Ans,1,1
: If 9<L1(C:Then
: If C=1:Then
: iPart(.1L1(C
: augment({Ans},L1L1
: IS>(C,C:
: Else
: L1(C-1)+iPart(.1L1(CL1(C-1
: End
: 10fPart(.1L1(CL1(C
: End
: End
:End
:DelVar ADelVar CDelVar NClrHome
:Disp "SPENT TIME:","{H,M,S}",getTime-L6,"=
:L1
:DelVar L1Pause Ans
:ClrHome

Bon, en plus de l'algo de base, j'ai ajouté des petits affichages graphiques pour occuper le correcteur, et un calcul du temps d'exécution.

Le programme permet de récupérer la liste contenant les chiffres du résultat dans Ans.

La ligne "dim(L1)-iPart(Ans/5)-iPart(Ans/25" sert à se passer des zéros en fin de liste, les calculer ne sert à rien, alors autant gagner de la vitesse. Une factorielle prend un zéro tout les 5! (à 5!, 10!, 15! ... etc) et un de plus tous les 25! , d'où cette ligne.


Autre remarque, le programme est optimisé pour la vitesse, pas pour le poids en octets, vous l'aurez remarqué Smile
J'aimerais bien connaitre votre méthode, aussi, svp :P


Dernière édition par persalteas le Jeu 6 Mar 2014 - 19:12, édité 1 fois

__________________________________________________________________________
Bienvenue sur le nouveau Tout-82, Invité ! Viens discuter sur le chat... What a Face
Depuis que je me suis tatoué une calculatrice sur le bras, vous pouvez compter sur moi ! :P (Best joke ever x) )
avatar
persalteas
----------------------
----------------------

Messages : 482
Points Concours : 152
Productivité : 39
Date d'inscription : 06/12/2012
Localisation : Savoie, France
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Voir le profil de l'utilisateur http://tout82.forumactif.org

Revenir en haut Aller en bas

Re: Calcul de factorielle, avec les chiffres significatifs

Message par Wistaro le Jeu 6 Mar 2014 - 19:04

Waw c'est beau! Tu as fait comment la colorationsyntaxique?
Et que-ce que le gettime() vient faire ici?

__________________________________________________________________________
Clique ici pour retrouver tout mes programmes en TIbasic

Tu es curieux, Invité? Alors clique ici:


Coucou Invité !Ta dernière visite sur ce forum date de . Tu as posté un total de 78 message(s) sur Tout 82 et enfin, tu as 0 ans.
Si nous sommes le 0, je te souhaite un joyeux anniversaire ;-)

avatar
Wistaro
Passioné
Passioné

Messages : 909
Points Concours : 86
Productivité : 28
Date d'inscription : 16/06/2013
Localisation : Tarbes - DUT GEII
Calculatrice(s) :
  • TI-82
  • TI-82 Stats
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Voir le profil de l'utilisateur http://www.youtube.com/user/Wistaro

Revenir en haut Aller en bas

Re: Calcul de factorielle, avec les chiffres significatifs

Message par persalteas le Jeu 6 Mar 2014 - 19:10

La coloration syntaxique c'est du HTML tout droit sorti de SourceCoder ou de TI-Editor :



Le getTime me permet juste d'afficher le temps d'exécution du programme à la fin, il ne sert pas à grand chose, oublie le :P

__________________________________________________________________________
Bienvenue sur le nouveau Tout-82, Invité ! Viens discuter sur le chat... What a Face
Depuis que je me suis tatoué une calculatrice sur le bras, vous pouvez compter sur moi ! :P (Best joke ever x) )
avatar
persalteas
----------------------
----------------------

Messages : 482
Points Concours : 152
Productivité : 39
Date d'inscription : 06/12/2012
Localisation : Savoie, France
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Voir le profil de l'utilisateur http://tout82.forumactif.org

Revenir en haut Aller en bas

Re: Calcul de factorielle, avec les chiffres significatifs

Message par Samos le Jeu 6 Mar 2014 - 19:24

Voilà ma version:
Spoiler:


EDIT: j'ai caché pour que les éventuelles personnes ne devant pas voir mon code ne le voient pas.


Dernière édition par Samos le Ven 7 Mar 2014 - 11:42, édité 2 fois

Samos
----------------------
----------------------

Messages : 17
Points Concours : 18
Productivité : 10
Date d'inscription : 16/06/2013
Calculatrice(s) :
  • TI-82 Stats.fr


Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul de factorielle, avec les chiffres significatifs

Message par m@thieu41 le Jeu 6 Mar 2014 - 22:58

On est pas sensé attendre les résultats en théorie avant de publier ?

Je poste quand même mon code Razz: (EDIT: du coup j'ai fait pareil que Samos)
Spoiler:

Code:
Prompt N
DelVar L5{0,E-9
For(C,1+2fPart(.5N),N,2
AnsC(C+1->L3 //Merci à Samos pour cette amélioration j'avais bêtement mis C²Ans+CAns->L3 ce qui me fait perdre 4 secondes
int(Ans->L4
dim(Ans->dim(L5
SortA(L5,L4
L4E-9+fPart(L3
If Ans(1
augment({0},Ans
End
E9Ans->L3
"N!=->Str1
{0,1->L1
Ans->L2
For(C,2,dim(Lƒ
L3(C->L2(2
LinReg(ax+b)Y
Equ>String(Y,Str0
length(Str0)-3->A
sub(Str0,1,A
For(B,1,(9-A)(C!=2
"0"+Ans
End
Str1+Ans->Str1
End
ClrAllLists
Pause Str1

Je n'ai pas non plus compris la limite 135! ...


Dernière édition par m@thieu41 le Ven 7 Mar 2014 - 14:12, édité 2 fois

__________________________________________________________________________
ZSNAKE Mon premier (et unique) jeu en ASM:
Un Snake 2 joueurs (2caltos)
-> Je travaille sur une version plus stable du jeu, je poste dès que possible.
avatar
m@thieu41
----------------------
----------------------

Messages : 934
Points Concours : 65
Productivité : 47
Date d'inscription : 02/06/2013
Localisation : Nice, France
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul de factorielle, avec les chiffres significatifs

Message par Wistaro le Ven 7 Mar 2014 - 8:10

Je posterais bien le mien mais comme il ne fonctionne pas :-(

Samos: Tu peux expliquer comment fonctionne le tient stp? Merci.

Persalteas: Au lieu de passer par un Get_Time tu pourrais passer par un StartTmr. Tu stockes sa valeur avant l'exécution du programme, puis celle après le programme et tu fait une soustraction...Le temps est en seconde, mais ce n'est pas plus mal et tu gagnes quelques octets

__________________________________________________________________________
Clique ici pour retrouver tout mes programmes en TIbasic

Tu es curieux, Invité? Alors clique ici:


Coucou Invité !Ta dernière visite sur ce forum date de . Tu as posté un total de 78 message(s) sur Tout 82 et enfin, tu as 0 ans.
Si nous sommes le 0, je te souhaite un joyeux anniversaire ;-)

avatar
Wistaro
Passioné
Passioné

Messages : 909
Points Concours : 86
Productivité : 28
Date d'inscription : 16/06/2013
Localisation : Tarbes - DUT GEII
Calculatrice(s) :
  • TI-82
  • TI-82 Stats
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Voir le profil de l'utilisateur http://www.youtube.com/user/Wistaro

Revenir en haut Aller en bas

Re: Calcul de factorielle, avec les chiffres significatifs

Message par persalteas le Ven 7 Mar 2014 - 10:29

m@thieu, tu fais combien en temps pour 135! ?

@Wistaro oui mais de toutes façons je te dis, le programme n'est pas optimisé en octets...

__________________________________________________________________________
Bienvenue sur le nouveau Tout-82, Invité ! Viens discuter sur le chat... What a Face
Depuis que je me suis tatoué une calculatrice sur le bras, vous pouvez compter sur moi ! :P (Best joke ever x) )
avatar
persalteas
----------------------
----------------------

Messages : 482
Points Concours : 152
Productivité : 39
Date d'inscription : 06/12/2012
Localisation : Savoie, France
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Voir le profil de l'utilisateur http://tout82.forumactif.org

Revenir en haut Aller en bas

Re: Calcul de factorielle, avec les chiffres significatifs

Message par m@thieu41 le Ven 7 Mar 2014 - 11:01

Sur Wabbitemu (vitesse 100%): 28 secondes.
Sur ma calto (mémoire pleine): 56 secondes (le double...).
Je ne sais pas si: Wabbitemu est plus rapide avec la nouvelle version ou si c'est ma calto qui avec sa mémoire pleine et des piles pas pleines qui est plus lente...

__________________________________________________________________________
ZSNAKE Mon premier (et unique) jeu en ASM:
Un Snake 2 joueurs (2caltos)
-> Je travaille sur une version plus stable du jeu, je poste dès que possible.
avatar
m@thieu41
----------------------
----------------------

Messages : 934
Points Concours : 65
Productivité : 47
Date d'inscription : 02/06/2013
Localisation : Nice, France
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul de factorielle, avec les chiffres significatifs

Message par Samos le Ven 7 Mar 2014 - 11:49

@Wistaro
Le mien fonctionne d'une manière très simple et apparemment pas du tout optimisée Sad
Spoiler:
D'abord, on calcule avec la TI ce qu'on peut calculer sans perdre de précision (J'ai peut-être fait des erreurs à ce sujet)
Code:
For(A,22,N
AL1->L1
End
Mais comme il y a des risques de dépassement,
Code:
If 740000000<max(L1
: Then
on fait la division euclidienne par 10
Code:
For(B,1,dim(L1)-1
: .1L1(B→N
: L1(B+1)+iPart(N→L1(B+1
: 10fPart(N→L1(B
: End
: While 9≤L1(B
: .1L1(B→N
: 10fPart(N→L1(B
: iPart(N→L1(B+1
: B+1→B
: End

Et comme les 0 à la fin ne servent à rien, on les enlève
Code:
 0
: Repeat L1(Ans
: Ans+1
: End
: Ans→N
: seq(L1(D),D,N,dim(L1→L1
: N-1+O→O
: End

après la première boucle, c'est du traitement pour l'affichage

Samos
----------------------
----------------------

Messages : 17
Points Concours : 18
Productivité : 10
Date d'inscription : 16/06/2013
Calculatrice(s) :
  • TI-82 Stats.fr


Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul de factorielle, avec les chiffres significatifs

Message par m@thieu41 le Ven 7 Mar 2014 - 12:26

J'aurais eut besoin d'une formule pour connaitre le nombre de chiffres d'une factorielle, j'ai trouvé ceci:
⌊(log(2π)−2n+log(n)∗(1+2n))/(2log(10))⌋+1
ici: http://www.dcode.fr/calcul-factorielle
Mais je ne sais pas à quoi correspondent les ⌊⌋...
Quelqu'un a une idée?

__________________________________________________________________________
ZSNAKE Mon premier (et unique) jeu en ASM:
Un Snake 2 joueurs (2caltos)
-> Je travaille sur une version plus stable du jeu, je poste dès que possible.
avatar
m@thieu41
----------------------
----------------------

Messages : 934
Points Concours : 65
Productivité : 47
Date d'inscription : 02/06/2013
Localisation : Nice, France
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul de factorielle, avec les chiffres significatifs

Message par Wistaro le Ven 7 Mar 2014 - 12:54

Valeur absolue?...

Merci Samos

__________________________________________________________________________
Clique ici pour retrouver tout mes programmes en TIbasic

Tu es curieux, Invité? Alors clique ici:


Coucou Invité !Ta dernière visite sur ce forum date de . Tu as posté un total de 78 message(s) sur Tout 82 et enfin, tu as 0 ans.
Si nous sommes le 0, je te souhaite un joyeux anniversaire ;-)

avatar
Wistaro
Passioné
Passioné

Messages : 909
Points Concours : 86
Productivité : 28
Date d'inscription : 16/06/2013
Localisation : Tarbes - DUT GEII
Calculatrice(s) :
  • TI-82
  • TI-82 Stats
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Voir le profil de l'utilisateur http://www.youtube.com/user/Wistaro

Revenir en haut Aller en bas

Re: Calcul de factorielle, avec les chiffres significatifs

Message par m@thieu41 le Ven 7 Mar 2014 - 12:57

Nan c'est pas ça...
Ils auraient mis || de toute façon je pense...

__________________________________________________________________________
ZSNAKE Mon premier (et unique) jeu en ASM:
Un Snake 2 joueurs (2caltos)
-> Je travaille sur une version plus stable du jeu, je poste dès que possible.
avatar
m@thieu41
----------------------
----------------------

Messages : 934
Points Concours : 65
Productivité : 47
Date d'inscription : 02/06/2013
Localisation : Nice, France
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul de factorielle, avec les chiffres significatifs

Message par Samos le Ven 7 Mar 2014 - 13:50

ça correspond à l'arrondi à la valeur inférieure

Samos
----------------------
----------------------

Messages : 17
Points Concours : 18
Productivité : 10
Date d'inscription : 16/06/2013
Calculatrice(s) :
  • TI-82 Stats.fr


Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul de factorielle, avec les chiffres significatifs

Message par noelthebest le Ven 7 Mar 2014 - 14:00

ouais, la partie entière.

ah oui, et j'ai mis 135 parce que un multiple de 5 ça fait plus classe, en théorie j'aurais pu aller jusqu'à 136, 137.

noelthebest
Intéressé
Intéressé

Messages : 83
Points Concours : 0
Productivité : 0
Date d'inscription : 02/06/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul de factorielle, avec les chiffres significatifs

Message par Wistaro le Ven 7 Mar 2014 - 17:23

Nooon, sérieux?...

__________________________________________________________________________
Clique ici pour retrouver tout mes programmes en TIbasic

Tu es curieux, Invité? Alors clique ici:


Coucou Invité !Ta dernière visite sur ce forum date de . Tu as posté un total de 78 message(s) sur Tout 82 et enfin, tu as 0 ans.
Si nous sommes le 0, je te souhaite un joyeux anniversaire ;-)

avatar
Wistaro
Passioné
Passioné

Messages : 909
Points Concours : 86
Productivité : 28
Date d'inscription : 16/06/2013
Localisation : Tarbes - DUT GEII
Calculatrice(s) :
  • TI-82
  • TI-82 Stats
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Voir le profil de l'utilisateur http://www.youtube.com/user/Wistaro

Revenir en haut Aller en bas

Re: Calcul de factorielle, avec les chiffres significatifs

Message par m@thieu41 le Ven 7 Mar 2014 - 18:23

Bah la formule n'est pas bonne alors...

Ah mais... Tu n'avais pas dis que 135 n'avait pas été choisi au hasard?  Suspect 

__________________________________________________________________________
ZSNAKE Mon premier (et unique) jeu en ASM:
Un Snake 2 joueurs (2caltos)
-> Je travaille sur une version plus stable du jeu, je poste dès que possible.
avatar
m@thieu41
----------------------
----------------------

Messages : 934
Points Concours : 65
Productivité : 47
Date d'inscription : 02/06/2013
Localisation : Nice, France
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul de factorielle, avec les chiffres significatifs

Message par noelthebest le Ven 7 Mar 2014 - 18:52

Non, il n'a pas été choisi au hasard. En fait, j'aurais pu aussi choisir 138 ou 139, je m'en rends compte avec le recul. Wink

noelthebest
Intéressé
Intéressé

Messages : 83
Points Concours : 0
Productivité : 0
Date d'inscription : 02/06/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul de factorielle, avec les chiffres significatifs

Message par Wistaro le Ven 7 Mar 2014 - 19:04

Moi je pensais que comme 135/2 = 67,5, on pouvait utiliser sa et que sa pouvait nous être utile...

__________________________________________________________________________
Clique ici pour retrouver tout mes programmes en TIbasic

Tu es curieux, Invité? Alors clique ici:


Coucou Invité !Ta dernière visite sur ce forum date de . Tu as posté un total de 78 message(s) sur Tout 82 et enfin, tu as 0 ans.
Si nous sommes le 0, je te souhaite un joyeux anniversaire ;-)

avatar
Wistaro
Passioné
Passioné

Messages : 909
Points Concours : 86
Productivité : 28
Date d'inscription : 16/06/2013
Localisation : Tarbes - DUT GEII
Calculatrice(s) :
  • TI-82
  • TI-82 Stats
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Voir le profil de l'utilisateur http://www.youtube.com/user/Wistaro

Revenir en haut Aller en bas

Re: Calcul de factorielle, avec les chiffres significatifs

Message par m@thieu41 le Ven 7 Mar 2014 - 19:57

Mais pourquoi 135 138 ou 139? Pourquoi pas par exemple 120 ou 150?

__________________________________________________________________________
ZSNAKE Mon premier (et unique) jeu en ASM:
Un Snake 2 joueurs (2caltos)
-> Je travaille sur une version plus stable du jeu, je poste dès que possible.
avatar
m@thieu41
----------------------
----------------------

Messages : 934
Points Concours : 65
Productivité : 47
Date d'inscription : 02/06/2013
Localisation : Nice, France
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul de factorielle, avec les chiffres significatifs

Message par persalteas le Ven 7 Mar 2014 - 21:40

Aucune idée, comme vous Razz

Donc à priori c'est m@thieu qui a le meilleur temps entre nous tous...
Fuu, tu va foncer vers le podium ! je suis jaloux :P

__________________________________________________________________________
Bienvenue sur le nouveau Tout-82, Invité ! Viens discuter sur le chat... What a Face
Depuis que je me suis tatoué une calculatrice sur le bras, vous pouvez compter sur moi ! :P (Best joke ever x) )
avatar
persalteas
----------------------
----------------------

Messages : 482
Points Concours : 152
Productivité : 39
Date d'inscription : 06/12/2012
Localisation : Savoie, France
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Voir le profil de l'utilisateur http://tout82.forumactif.org

Revenir en haut Aller en bas

Re: Calcul de factorielle, avec les chiffres significatifs

Message par m@thieu41 le Sam 8 Mar 2014 - 0:06

Ah ça fait plaisir  Smile 
je m'y attendais pas au début Razz

Mais bon il reste encore la finale vous allez pouvoir me rattraper même si je vais faire mon possible pour que ça n'arrive pas  Very Happy 

__________________________________________________________________________
ZSNAKE Mon premier (et unique) jeu en ASM:
Un Snake 2 joueurs (2caltos)
-> Je travaille sur une version plus stable du jeu, je poste dès que possible.
avatar
m@thieu41
----------------------
----------------------

Messages : 934
Points Concours : 65
Productivité : 47
Date d'inscription : 02/06/2013
Localisation : Nice, France
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul de factorielle, avec les chiffres significatifs

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum