PDA

Ver la Versión Completa : Algoritmo de exponenciacion rapidaç


barracuda
29-06-2007, 15:19:58
Como estan todos?, necesito ayuda y no se si alguien alguna vez tuvo que programar el "Algoritmo de exponenciacion rapidaç" que sirve en criptografia para resolver potencias de numeros muy grandes por ejemplo:881 elevado a 39423, cosas que computacionalmente seria inviable, el algoritmo consiste en el archivo zip que estoy adjuntando, que parece simple pero tengo problemas para implementarlo, no molestaria a la comunidad sino fuese que el principal problema que tengo para implementarlo es el tiempo:( y tal vez si alguien ya resolvio ese problema antes sino, de todas formas gracias y ya les estoy comentando como soluciono al problema, saludosss.....

jorge82
16-08-2007, 20:05:17
Bueno pues supongo que es el mismo algoritmo (http://es.wikipedia.org/wiki/Exponenciación_binaria).

Y aquí dicho algoritmo en Delphi:

function ExpRapida(x, n: Integer): Cardinal;
begin
if n = 1 then
Result := x
else if (n mod 2 = 0) then
Result := ExpRapida(x*x, n div 2)
else if ((n mod 2) mod 2 <> 0) then
Result := (x * ExpRapida(x*x, (n-1) div 2));
end;

Espero te sirva de algo. :cool: