Explicaré mi solución desde el punto de vista algorítmico.
En primer lugar, debe saber acerca de la exponenciación modular (solo vea el pseudocódigo).
Para encontrar [math] b ^ {e} [/ math] de manera eficiente, el algoritmo itera sobre la representación binaria (de derecha a izquierda) del exponente [math] e [/ math]. En cada paso, [math] b [/ math] se está elevando al cuadrado. Y para cada [matemática] 1 [/ matemática] en la representación binaria, [matemática] b [/ matemática] se multiplica por el resultado [matemática] [/ matemática]. Al final, [matemáticas] resultado = b ^ {e} [/ matemáticas]. (Todos los valores se calculan módulo [matemática] m [/ matemática], por supuesto).
- Regresión logística, función softmax. ¿Por qué utiliza la función exponencial en la función sigmoidea?
- ¿Cómo se puede diseñar un autómata de estado finito para el siguiente problema?
- Encontré los términos suma de verificación, MD5, SHA, etc. ¿Qué son la suma de verificación, MD5, SHA y la firma de código? ¿Cómo están relacionados y cómo funcionan?
- Cómo obtener una carrera en el desarrollo de mejores estructuras de datos y algoritmos
- ¿Cuáles son algunos de los temas de teoría de gráficos que necesito aprender para hacer el bien en la programación competitiva?
Para este problema en particular, [matemáticas] b = 2, e = 2 ^ a. [/ Matemáticas]
En la representación binaria de [math] 2 ^ a [/ math], hay un [math] 1 [/ math] seguido de [math] a [/ math] [math] 0 [/ math] s. ([matemática] 100000 [/ matemática]… [matemática] a [/ matemática] ceros)
¿Qué hará el algoritmo en este caso?
- Cuadra la base [matemáticas] b [/ matemáticas], [matemáticas] a [/ matemáticas] veces.
- Multiplique [math] b [/ math] con [math] result [/ math] una vez.
Básicamente, para este problema en particular, si cuadras [matemáticas] b [/ matemáticas] (que es [matemáticas] 2 [/ matemáticas], en este caso) [matemáticas] a [/ matemáticas] veces, [matemáticas] b [ / matemáticas] en sí se convierte en la respuesta.
Puedes ver mi código C ++. http://pastebin.com/2Ap4X4R1