Skip to content

Paridad

by en 22/04/2013

¡Hola!

Para nuestro acertijo de esta semana comenzaremos dando algunas nociones de representación de números en base dos. Como algunos ya sabréis los ordenadores no entienden nuestro sistema de numeración habitual (ellos no tienen 10 dedos para ayudarse al contar 😉 ). Para el ordenador lo importante es la ausencia o presencia de electricidad en sus circuitos. Debido a ello, los ordenadores representan la información en binario, o lo que es lo mismo en base 2. Cada uno de los dígitos binarios que forman parte de un número se llaman bit. Pero, ¿cómo se pasa un número a binario?

Para pasar un número a binario se realiza el siguiente procedimiento:

  • Se comienza dividiendo el número entre dos, y se reserva el resto.
  • Si el cociente es distinto de cero, se vuelve a dividir el cociente entre dos y se reserva el resto. Esta operación se realiza mientras el cociente sea distinto de cero.
  • Cuando el cociente es igual a cero se deja de dividir y se recuperan los restos obtenidos en orden inverso.

Veamos un ejemplo, supongamos que queremos pasar a binario el número 2:

25=12*2+1

12=6*2+0

6=3*2+0

3=1*2+1

1=2*0+1

Como hemos llegado a un cociente igual a 0, cogemos todos los restos en orden inverso al obtenido: 11001

Luego el número 25 está formado por los siguientes bits 11001 en ese orden.

Una vez explicado todo esto, tenemos las bases para nuestro acertijo semanal. Definiremos la paridad de un número como la suma de sus bits en su representación binaria. En el ejemplo dado anteriormente la paridad de 25 sería 1+1+0+0+1=3.

¿Podrías darnos la paridad del número 9? ¿y la del 567?

Como todas las semanas, si programas la solución, puedes probarla aquí.

¡Hasta pronto!

Anuncios

From → Fáciles, Problemas

One Comment
  1. Pues creo que es bastante simple:
    Aquí dejo el código por si alguien lo quiere probar:

    public static void main(String[] args) {
    int paridad = 0;
    int num = 567;
    while (num >= 1) {
    if (num % 2 == 1) {
    paridad++;
    }
    num = (int) num / 2;
    }
    System.out.println(“Paridad: ” + paridad);
    }

    Para 9: Paridad 2
    Para 567: Paridad 6

    Espero que este bien.

    Un saludo!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: