Ver Mensaje Individual
  #11 (permalink)  
Antiguo 19/02/2013, 17:06
fightmx
 
Fecha de Ingreso: febrero-2003
Ubicación: D.F.
Mensajes: 163
Antigüedad: 21 años, 2 meses
Puntos: 22
Respuesta: Ideas para realizar Diccionario

Hola jask2007, no hay nada especial es simplemente contar como lo hacemos de manera tradicional, la diferencia es que no lo estás haciendo en sistema decimal.

Cuando tienes 10 dígitos(sistema decimal) y digamos tres posiciones, entonces el número de combinaciones es en si la cantidad de números que puedes representar, esto es: 10^3 = 1000 números diferentes (0-999). Para representarlos lo que hacemos es ir incrementando el valor de la posición a la izquierda cada que se cumpla un ciclo (0-9) en la posición actual, por ejemplo:

| 0 | 0 | 0 |
| 0 | 0 | 1 |
| 0 | 0 | 2 |
| 0 | 0 | 3 |
| 0 | 0 | 4 |
| 0 | 0 | 5 |
| 0 | 0 | 6 |
| 0 | 0 | 7 |
| 0 | 0 | 8 |
| 0 | 0 | 9 |
| 0 | 1 | 0 |
| 0 | 1 | 1 |
| 0 | 1 | 2 |
| 0 | 1 | 3 |
| 0 | 1 | 4 |
| 0 | 1 | 5 |
| 0 | 1 | 6 |
| 0 | 1 | 7 |
| 0 | 1 | 8 |
| 0 | 1 | 9 |
| 0 | 2 | 0 |
.
.
.
| 0 | 9 | 0 |
| 0 | 9 | 1 |
| 0 | 9 | 2 |
| 0 | 9 | 3 |
| 0 | 9 | 4 |
| 0 | 9 | 5 |
| 0 | 9 | 6 |
| 0 | 9 | 7 |
| 0 | 9 | 8 |
| 0 | 9 | 9 |
| 1 | 0 | 0 |
.
.
.
| 9 | 9 | 9 |

Lo mismo puedes hacer con el sistema hexadecimal y con cualquier otra base, el número de combinaciones que obtienes está dado por: base^numpos. La manera de representarlos es análoga al sistema decimal, únicamente cambia la cantidad de elementos (16 en hexadecimal) para representar el ciclo, entonces puedes utilizar un arreglo con el número de posiciones e ir cambiando los valores con un contador en cada uno de ellos (como en el ejemplo). A veces la forma más simple puede resultar la menos obvia.

Como comentó vosk, aún más simple es utilizar un loop e imprimir los valores desde 1 hasta FFFFFFFF, pero no más, ya que la limitante equivale a 32 posiciones (32 bits o 64 en el caso de un sistema de 64 bits) de un sistema binario, esto es 2^32 combinaciones diferentes (16^8 en hexadecimal).

Saludos.