elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
27 Mayo 2012, 10:14  


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  Multiple Exponeciacion y Modulacion
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Multiple Exponeciacion y Modulacion  (Leído 1,832 veces)
AlbertoBSD
Estudiante y
Colaborador
***
Desconectado Desconectado

Mensajes: 1.955


Anonymous & Paranoid


Ver Perfil WWW
Multiple Exponeciacion y Modulacion
« en: 3 Octubre 2009, 17:27 »

Suponemos que existe un algoritmo que puede calcular el modulo n de Xp donde p es potenciado ala ( pp) esto m veces.

Alguna solucion he visto un articulo similar en wikipedia http://en.wikipedia.org/wiki/Quadratic_residue

Donde ahi sacan el modulo de X2 Sin embargo yo tengo Xp donde p es elevado a la p m veces.

Cabe mencionar que X y P siempre son numero primos he hecho el programa usando java y el BigInteger, sin embargo al trabajar con numeros grandes no pasa del segundo ciclo de exponenciacion de los m - 2 restantes.

Saludos


En línea

Bien Super Divertido
@wifigdlmx
isseu


Desconectado Desconectado

Mensajes: 305


°º¤ø,¸¸,El conocimiento es poder°º¤ø,¸¸,ø¤º°`°º¤ø,


Ver Perfil WWW
Re: Multiple Exponeciacion y Modulacion
« Respuesta #1 en: 3 Octubre 2009, 17:31 »

compartes el codigo fuente?


En línea

AlbertoBSD
Estudiante y
Colaborador
***
Desconectado Desconectado

Mensajes: 1.955


Anonymous & Paranoid


Ver Perfil WWW
Re: Multiple Exponeciacion y Modulacion
« Respuesta #2 en: 3 Octubre 2009, 18:02 »

Claro

mira:

Código
 
import java.io.FileReader;
import java.io.BufferedReader;
import java.math.BigInteger;
import java.util.StringTokenizer;
 
public class Problem1 {
 
public static void main(String args[]) throws Exception {
BufferedReader in = new BufferedReader(new FileReader("q1.txt"));
StringTokenizer st;
BigInteger a, p, m, n,pm;
int i;
while(in.ready()) {
st = new StringTokenizer(in.readLine());
a = new BigInteger(st.nextToken());
p = new BigInteger(st.nextToken());
m = new BigInteger(st.nextToken());
n = new BigInteger(st.nextToken());
System.out.println("a = "+ a);
System.out.println("p = "+ p);
System.out.println("m = "+ m);
System.out.println("n = "+ n);
i = 1;
pm = new BigInteger(p.toString());
 
while(i < m.intValue()) {
System.out.println("pass: " + i);
pm = pm.pow(p.intValue());
i++;
}
System.out.println("p^p m veces = "+ pm);
System.out.println("Resultado: "+a.modPow(pm,n));
}
}
}
El archivo de entrada tiene lo siguiente:

Código:
3 3 1 5
3 3 2 5
3 3 3 5
47 47 1 67
47 47 2 67
47 47 3 67
32719 54323 99 65399
Los primeros 6 lineas las procesa rapido pero la ultima, no pasa del sugundo ciclo como mencione.

El problema original esta descrito aqui:


:http://acmicpc-live-archive.uva.es/nuevoportal/data/p2046.pdf

:http://acmicpc-live-archive.uva.es/nuevoportal/data/problem.php?p=2046
 

Saludos



En línea

Bien Super Divertido
@wifigdlmx
do-while


Desconectado Desconectado

Mensajes: 604


Cuando me afeito, recuerdo porque me dejo barba.


Ver Perfil
Re: Multiple Exponeciacion y Modulacion
« Respuesta #3 en: 4 Octubre 2009, 15:33 »

Hola.

Si tienes que a = x mod(n) tendras que a^k = x^k mod(n), ya que el conjunto de valores mod(n) de los enteros forma un anillo.

Ahora si tienes a^k donde k=p^m, tendras que:

 si x^k = y mod(n) -> a^k = x^k mod(n) = x^(p^m) mod(n) = (x^p)^m mod(n)

Ahora obtendras que x^p = y mod(n), por lo tanto: x^k = y^m mod(n), y solo tendras que calcular y^m mod(n) = z

resumiendo:

a^(p^m) -> los datos son a,p y m.

calculas x = a mod(n) (Asi reduces la base)
calculas x^p (como la base esta reducida, tardara menos (supongo))
calculas y = x^p mod(n) (Vuelves a reducir la base)
calculas z = y^m mod(n)

y z es el resultado que buscabas.

Espero que esto te simplifique las cosas.

Hasta luego!
En línea

¡¡¡Feliz año nuevo!!!
AlbertoBSD
Estudiante y
Colaborador
***
Desconectado Desconectado

Mensajes: 1.955


Anonymous & Paranoid


Ver Perfil WWW
Re: Multiple Exponeciacion y Modulacion
« Respuesta #4 en: 11 Octubre 2009, 04:19 »

Muchas Gracias la verdad no tencia todo bien claro sobre la modulacion, pero ya con tu explicacion esta mejor, tambien he seguido leyendo en wikipedia y libros de matematicas donde manejan el tema.

Sin embargo checa bien el pdf que puse en uno de los links anteriores, el problema aqui es la exponeciacion P a la P a la P a la P .... M veces lo anterior.

Seguire haciendo ejemplo con lo que mencioanastes para ver hasta donde llego.

Saludos y gracias
En línea

Bien Super Divertido
@wifigdlmx
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines