Foro de elhacker.net

Foros Generales => Foro Libre => Mensaje iniciado por: kaiserr en 25 Octubre 2011, 20:14 pm



Título: numeros binarios
Publicado por: kaiserr en 25 Octubre 2011, 20:14 pm
Hola a todos

en el colegio estoy haciendo numeros binarios y el profesor nos ha planteado una pregunta como ampliacion de la asignatura y por mas que busco no encuentro solucion, haber si alguno de vosotros me puede echar una mano jeje
ahi va

¿Hay algun truco para calcular potencias binarias?
por ejemplo (1001)^3

algun tipo de relacion o truquillo
que no sea pasarlo a numero deciamal xD


Título: Re: numeros binarios
Publicado por: Og. en 26 Octubre 2011, 01:38 am
Bueno, en lo personal no se me ocurre una manera mas rapida de calcular ab que no sea con exponenciación binaria.

Ej. 14 = 1110
a14 = a8 * a4 * a2

Código
  1. unsigned int pow(int a, int b)
  2. {
  3.    unsigned int res = 1;
  4.    while(b) {
  5.        if(b&1)
  6.            res *= a;
  7.        a *= a;
  8.        b >>= 1;
  9.    }
  10.    return res;
  11. }

Si existe una especie de juego con los bits para calcular un numero a un exponente entonces su complejidad podría ser O(1). Por lo tanto mucho mejor que O(lg(n)).

Bueno, a que viene todo esto?
Realmente seria muy interesante ver un algoritmo que calcula potencias de un número en base a un juego de bits.

Si el profe les llega a dar la respuesta podrías postearla aqui? (Claro, en caso de que nadie mas la ponga)

Saludos!


Título: Re: numeros binarios
Publicado por: multiplayer1080 en 26 Octubre 2011, 17:52 pm
Un dato importante para que puedas dar con la solucion es que recuerdes que las potencias (en el sistema decimal o en cualquier otro) son sumas de multiplicaciones y las multiplicaciones son igualmente sumas. Ahora, sabes sumar en binario verdad?  ;)


Título: Re: numeros binarios
Publicado por: kaiserr en 26 Octubre 2011, 18:19 pm
sisi claro que se sumar en binario xD

seguire pensando en alguna relacion que pueda tener ... si termino sabiendo la respuesta sereis los primeros en enteraros por aqui ;)


Título: Re: numeros binarios
Publicado por: kaiserr en 5 Noviembre 2011, 01:28 am
prometi respuestas pero aun no las tengo
el profesor no se referia a programacion

nos dio una pista...
(a+b)^2 --> binomio de newton

todavia no he tenido tiempo de ponerme a pensar pero este fin de semana espero encontrar la solucion, a no ser que la encuentre alguien antes jaja

en cuanto lo sepa lo pongo ;)