π
<-

Fonction de puissance modulaire, possible? Impossible?

Fonction de puissance modulaire, possible? Impossible?

Unread postby 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.
User avatar
Rukia
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 0%
 
Posts: 3
Joined: 18 Oct 2010, 00:00
Gender: Female
Calculator(s):
MyCalcs profile
Class: IUT LP

Re: Fonction de puissance modulaire, possible? Impossible?

Unread postby critor » 18 Oct 2010, 23:36

Python:
Code: Select all
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: Select all
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: Select all
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
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 53.4%
 
Posts: 42393
Images: 17088
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Fonction de puissance modulaire, possible? Impossible?

Unread postby 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.
User avatar
Rukia
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 0%
 
Posts: 3
Joined: 18 Oct 2010, 00:00
Gender: Female
Calculator(s):
MyCalcs profile
Class: IUT LP

Re: Fonction de puissance modulaire, possible? Impossible?

Unread postby critor » 19 Oct 2010, 01:21

Rukia wrote: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
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 53.4%
 
Posts: 42393
Images: 17088
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Fonction de puissance modulaire, possible? Impossible?

Unread postby 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.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.4%
 
Posts: 6873
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: Fonction de puissance modulaire, possible? Impossible?

Unread postby Rukia » 19 Oct 2010, 19:18

critor2000 wrote: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?
User avatar
Rukia
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 0%
 
Posts: 3
Joined: 18 Oct 2010, 00:00
Gender: Female
Calculator(s):
MyCalcs profile
Class: IUT LP

Re: Fonction de puissance modulaire, possible? Impossible?

Unread postby critor » 19 Oct 2010, 19:33

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

critor2000 wrote: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
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 53.4%
 
Posts: 42393
Images: 17088
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Fonction de puissance modulaire, possible? Impossible?

Unread postby 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.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.4%
 
Posts: 6873
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl


Return to TI-Basic

Who is online

Users browsing this forum: ClaudeBot [spider] and 11 guests

-
Search
-
Social TI-Planet
-
Featured topics
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 !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2312 utilisateurs:
>2298 invités
>7 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)