Probleme fonction recursive SCILAB

picka69 Messages postés 1 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 24 avril 2011 - 24 avril 2011 à 18:05
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 - 25 avril 2011 à 00:59
Voici la fonction d’exponentiation modulaire rapide que j'ai faite en scilab.
Elle est en mode itératif, je n'arrive pas à faire la même fonction en mode récursif, d'autant plus qu'il n'y a pas d'opérateur & ou >> comme en langage C pour manipuler un nombre en binaire (bit-à-bit)
d'où l'utilisation de la variable tableau n!!!!

e = 13;
d = 77;
u = [1, 0, 1, 1]; // Tableau avec les données 13 en binaire
m = 9;

function [mes_signe] = ExpModRapide (a, n, m)
N= length(n)
mes_signe = 1
for i = 1 : N
if (n(i) == 1) then
mes_signe = modulo (mes_signe * a, m)
end
a = modulo((a*a),m)
end
endfunction

[mes_signe] = ExpModRapide (m, u,d)

1 réponse

Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
25 avril 2011 à 00:59
« Voici la fonction d'exponentiation modulaire rapide que j'ai faite en scilab »

D'abord, ici, on ne parle qu'en Pascal.

Ensuite, si tu trouves que ta fonction est trop rapide, re-écris-la en mode récursif.
Tu ne seras pas déçu et tu pourras aller boire un café à chaque appel !


_______________________________________
Soutenez Wikimédia France aujourd'hui : http://dons.wikimedia.fr
0
Rejoignez-nous