π
<-

Fonction de puissance modulaire, possible? Impossible?

Fonction de puissance modulaire, possible? Impossible?

Message non lude Rukia » 18 Oct 2010, 22:46

Bonsoir,
Je suis comme vous l'avez sans doute deviné, une nouvelle dans le monde des calculatrices programmable, en effet je viens de faire l'acquisition d'une Ti83+ fr et depuis quelques heures, j'essaie désespérément de crée un programme capable de calculer la puissance modulaire mais sans résultat.

Je n'ai pas honte de dire que la programmation et moi ça fait 1000, mais ce dont j'ai vraiment honte c'est que le prof nous a clairement donner le code mais je ne sais pas comment le mettre dans la calculatrice. :#oups#:

Veuillez pardonner d'avance la noob que je suis. :#zen#:

(_J'ai un partiel Mercredi et je ne sais pas comment m'en sortir sans ce programme, d'après le prof c'est indispensable.

Voilà ce que le prof nous a donné:

Code python
def pm(a,x,n):
A,X,Y=a%n,x,1
while X!=0:
if X%2= =1 : Y=(Y*A)%n
A,X=(A*A)%n,X//2
return Y

Je ne sais pas vous mais moi j'y comprends rien.

Sinon voilà une autre méthode en dehors de python

Fonction pm(a,x,n € N, n≠0)→N
X←x ; Y←1 ; A←a mod n ;
Tant que X≠0 faire
Si X mod 2 = 1 alors Y←Y * A mod n ;
A←(A*A) mod n ; X←X div 2
Fin tant que
Résultat Y


Merci d’avance.
Avatar de l’utilisateur
Rukia
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 0%
 
Messages: 3
Inscription: 18 Oct 2010, 00:00
Genre: Femme
Calculatrice(s):
MyCalcs profile
Classe: IUT LP

Re: Fonction de puissance modulaire, possible? Impossible?

Message non lude critor » 18 Oct 2010, 23:36

Python:
Code: Tout sélectionner
def pm(a,x,n):
A,X,Y=a%n,x,1
while X!=0:
if X%2= =1 : Y=(Y*A)%n
A,X=(A*A)%n,X//2
return Y


Algorithme:
Code: Tout sélectionner
Fonction pm(a,x,n € N, n≠0)→N
X←x ; Y←1 ; A←a mod n ;
Tant que X≠0 faire
Si X mod 2 = 1 alors Y←Y * A mod n ;
A←(A*A) mod n ; X←X div 2
Fin tant que
Résultat Y



Bonsoir.


Je ne connais pas le Python, et l'algorithme que l'on t'a fourni ne me semble pas utiliser une écriture très standard. Il ressemble plus à une traduction française de Python qu'autre chose...

Mais je vais essayer de t'aider de mon mieux.

Voici un premier jet en TI-Basic.
Code: Tout sélectionner
PROGRAM:PM
Prompt A,X,N
1→Y
round(NfPart(A/N),0→A
While X≠0
If 1=2fPart(X/2
Yround(NfPart(A/N),0→Y
round(NfPart(AA/N),0→A
int(X/2←X
End
Y


Crée donc un nouveau programme PM:
ImageImageImageImageImageImage

Et voici même comment taper le code TI-Basic.
Merci de "comprendre" et corriger d'éventuelles étourderies.

Prompt A,X,N
ImageImageImageImageImageImageImageImageImageImageImageImage

1→Y
ImageImageImageImageImage

round(NfPart(A/N),0→A
ImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImage

While X≠0
ImageImageImageImageImageImageImageImage

If 1=2fPart(X/2
ImageImageImageImageImageImageImageImageImageImageImageImageImage

Yround(NfPart(A/N),0→Y
ImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImage

round(NfPart(AA/N),0→A
ImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImage

int(X/2←X
ImageImageImageImageImageImageImageImageImage

End
ImageImageImage

Y
ImageImage


Voilà!
Tu quittes l'éditeur, et tu le lances!
ImageImageImage


A bientôt sur TI-Bank.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 54.5%
 
Messages: 42500
Images: 17348
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Fonction de puissance modulaire, possible? Impossible?

Message non lude Rukia » 19 Oct 2010, 00:23

Bonsoir ou bonjour vu l'heure (>_Tout d'abord je te dis un GRAND MERCI pour la réponse super rapide et surtout quelle présentation! Je suis restée scotcher, ça a dû te prendre beaucoup de temps de faire tout ça, vraiment merci beaucoup.

Cependant j'ai un petit problème, en effet lorsque je lance le programme j'ai une ERR:SYNTAXE

Désolée de te déranger encore une fois et merci d'avance pour ta réponse.
Avatar de l’utilisateur
Rukia
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 0%
 
Messages: 3
Inscription: 18 Oct 2010, 00:00
Genre: Femme
Calculatrice(s):
MyCalcs profile
Classe: IUT LP

Re: Fonction de puissance modulaire, possible? Impossible?

Message non lude critor » 19 Oct 2010, 01:21

Rukia a écrit:Bonsoir ou bonjour vu l'heure (_Tout d'abord je te dis un GRAND MERCI pour la réponse super rapide et surtout quelle présentation! Je suis restée scotcher, ça a dû te prendre beaucoup de temps de faire tout ça, vraiment merci beaucoup.

Cependant j'ai un petit problème, en effet lorsque je lance le programme j'ai une ERR:SYNTAXE

Désolée de te déranger encore une fois et merci d'avance pour ta réponse.


Bonsoir.


Ce n'est pas grave.

Quand tu as l'erreur de syntaxe, choisis l'option "Goto" et la calculatrice va te montrer quelle ligne du programme provoque l'erreur.

Compare-la alors avec ce que je t'ai donné ci-dessus.
Cela peut être un simple espace en trop en fin de ligne, par exemple...

Normalement, ça marche sur ma calculatrice, mais j'ai pu "mal" recopier les choses.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 54.5%
 
Messages: 42500
Images: 17348
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Fonction de puissance modulaire, possible? Impossible?

Message non lude Lionel Debroux » 19 Oct 2010, 06:36

Comme celui des TI-68k, et pour les mêmes raisons (vérification de la signature de l'OS), l'OS des TI-Z80 flashables (dont fait partie la 83+ FR) doit contenir quelque part, des fonctions de puissance modulaire.
C'est plus difficile d'y accéder en ASM que de refaire l'algo en BASIC, mais les fonctions de l'OS seraient plus efficaces et pourraient traiter de plus grands nombres.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.4%
 
Messages: 6875
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Fonction de puissance modulaire, possible? Impossible?

Message non lude Rukia » 19 Oct 2010, 19:18

critor2000 a écrit:Bonsoir.


Ce n'est pas grave.

Quand tu as l'erreur de syntaxe, choisis l'option "Goto" et la calculatrice va te montrer quelle ligne du programme provoque l'erreur.

Compare-la alors avec ce que je t'ai donné ci-dessus.
Cela peut être un simple espace en trop en fin de ligne, par exemple...

Normalement, ça marche sur ma calculatrice, mais j'ai pu "mal" recopier les choses.


Bonjour,
J'ai fait ce que tu m'as dit et il me renvoie vers la dernière ligne, je pense que c'est l'espace mais lorsque je l'efface et que je teste, le programme ne renvoie pas de résultat, il affiche "fait" c'est tout.
Que dois-je faire?

Comme celui des TI-68k, et pour les mêmes raisons (vérification de la signature de l'OS), l'OS des TI-Z80 flashables (dont fait partie la 83+ FR) doit contenir quelque part, des fonctions de puissance modulaire.
C'est plus difficile d'y accéder en ASM que de refaire l'algo en BASIC, mais les fonctions de l'OS seraient plus efficaces et pourraient traiter de plus grands nombres.

J'ai cherché mais il n'y a rien. T'as des indications peut être?
Avatar de l’utilisateur
Rukia
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 0%
 
Messages: 3
Inscription: 18 Oct 2010, 00:00
Genre: Femme
Calculatrice(s):
MyCalcs profile
Classe: IUT LP

Re: Fonction de puissance modulaire, possible? Impossible?

Message non lude critor » 19 Oct 2010, 19:33

Ben oui! J'ai fait une bêtise.

critor2000 a écrit:End
ImageImageImage

Y
ImageImage



La dernière ligne, il faut y écrire Y et non espace.
Me suis trompé de touche.

Mais tu aurais pu corriger, puisque je t'ai aussi fourni le code :;):

Bref, donc:


Y
ImageImage
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 54.5%
 
Messages: 42500
Images: 17348
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Fonction de puissance modulaire, possible? Impossible?

Message non lude Lionel Debroux » 19 Oct 2010, 19:40

Comme celui des TI-68k, et pour les mêmes raisons (vérification de la signature de l'OS), l'OS des TI-Z80 flashables (dont fait partie la 83+ FR) doit contenir quelque part, des fonctions de puissance modulaire.
C'est plus difficile d'y accéder en ASM que de refaire l'algo en BASIC, mais les fonctions de l'OS seraient plus efficaces et pourraient traiter de plus grands nombres.

J'ai cherché mais il n'y a rien. T'as des indications peut être?

Non, je ne sais pas programmer les TI-Z80 en ASM :(:
Rien d'évident dans des docs comme http://group.revsoft.org/ti83plus.inc et http://brandonw.net/calcstuff/BCALLs.txt... les fonctions ne sont peut-être même pas dans l'OS lui-même mais dans le boot code.
Bref, pour aller plus loin dans cette voie, si c'est nécessaire, il faut un vrai programmeur TI-Z80 ASM :):
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.4%
 
Messages: 6875
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl


Retourner vers TI-Basic

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 7 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Ndless for CX 4.5.5 / CX II 6.2.0
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
5077 utilisateurs:
>5054 invités
>16 membres
>7 robots
Record simultané (sur 6 mois):
32248 utilisateurs (le 01/09/2025)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)