elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Como saber todas las combinaciones posibles de letras y numeros?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como saber todas las combinaciones posibles de letras y numeros?  (Leído 29,314 veces)
peterfly

Desconectado Desconectado

Mensajes: 94


Ver Perfil
Como saber todas las combinaciones posibles de letras y numeros?
« en: 13 Julio 2012, 21:58 pm »

Hola y espero que me puedan ayudar...

Hoy me he encontrado con un problema...

Quisiera saber el número de combinaciones que se pueden generar con las 27 letras del alfabeto + los 10numeros (del 0 al 9) y cuales son esas combinaciones.

Es decir, todas las combinaciones posibles de de las letras mayúsculas + letras minúsculas + los numeros.

He pensado que podría hacer un programa en C que me hiciera esta función... pero la verdad es que después de mirar un poco mis apuntes no tengo nada parecido...

Bueno, si alguien fuera tan amable de guiarme un poco en mi proyecto a seguir le estaría eternamente agradecido.

Y bueno si alguien conoce otra forma o algun programa que haga esto... igualmente me vale, no hace falta que lo programe yo necesariamente xD

Muchas gracias de antemano.


En línea

DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: Como saber todas las combinaciones posibles de letras y numeros?
« Respuesta #1 en: 13 Julio 2012, 22:10 pm »

¡Hola!

Precisamente estos días hemos estado tratando un tema muy parecido en el foro. Es este: http://foro.elhacker.net/programacion_cc/como_hacer_un_generador-t366597.0.html

¿Lo que quieres es que en cada combinación aparezcan todas las letras del abecedario, tanto en mayúsculas como en minúsculas y los números del 1 al 9? El programa en sí no sería complicado de hacer, pero tardaría mucho en finalizar la ejecución del programa (ten en cuenta que son 26 * 2 + 9 caracteres, es decir, 61 caracteres en total, y en cada secuencia también hay 61 caracteres. Por lo tanto hay 8,03748056 × 10108 combinaciones posibles...).

*Digo 26 caracteres porque no cuento la 'ñ'.

Aquí te dejo un código que genera todas las combinaciones posibles desde AAAAA00000 hasta ZZZZZ99999:

Código
  1. #include <stdio.h>
  2.  
  3. FILE *fp;
  4.  
  5. void numeros(char *Letras, int n)
  6. {
  7. int i;
  8. for(i=0;i<100000;i++)printf("%s%.5d\n",Letras, i);
  9. }
  10.  
  11. void Generador(char *Letras, int n)
  12. {
  13.    int count, resta=1, llamada;
  14.    while(llamada != 5)
  15.    {
  16.        numeros(Letras, n);
  17.        count = n;
  18.        Letras[n]++;
  19.        llamada = 0;
  20.        while(count >= 0)
  21.        {
  22.            if(Letras[count] > 90)
  23.            {
  24.                Letras[count] = 65;
  25.                Letras[count-1]++;
  26.                llamada++;
  27.            }
  28.            count--;
  29.            resta++;
  30.        }
  31.    }
  32. }
  33. int main()
  34. {
  35.    char Letras[] = "AAAAA";
  36.    fp = fopen("combinacion.txt", "w");
  37.    Generador(Letras, 4);
  38.    fclose(fp);
  39.    return 0;
  40. }
  41.  

No obstante, en el tema que te he pasado encontrarás el planteamiento y las soluciones de otros usuarios (algunas de ellas son geniales!), así que te vendrá muy bien pasarte por allí para que te vayas haciendo una idea de cómo hacer tu código.

Saludos!


En línea

0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: Como saber todas las combinaciones posibles de letras y numeros?
« Respuesta #2 en: 13 Julio 2012, 22:50 pm »

Tambien, cuando veas esa tema, te daras cuenta de que si quieres almacenar todas esas combinaciones en archivos necesitaras varios cientos de TB.

Saludos.

PD: Si esa era tu intencion, siento decepcionarte :-\
En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
peterfly

Desconectado Desconectado

Mensajes: 94


Ver Perfil
Re: Como saber todas las combinaciones posibles de letras y numeros?
« Respuesta #3 en: 15 Julio 2012, 01:20 am »

muchas gracias amigos...

pero una duda..

con el código sacado del enlace que me pasaste:
Código:
#include <stdio.h>
 
FILE *fp;
 
void numeros(char *Letras, int n)
{
 int i;
 for(i=0;i<100000;i++)
 {
     printf("%s%.5d\n",Letras, i);
     fprintf(fp, "%s%.5d\n", Letras, i);
 }
 
}
 
void PrimeraLetra(char *Letras, int n)
{
 
    numeros(Letras, n);
    Letras[n]++; //Pasamos al siguiente carácter [al siguiente valor ASCII]
    if(Letras[n] <= 90) PrimeraLetra(Letras, n); /*90 es el valor ASCII de  'Z'. Si no se ha superado
                                                                                  ese valor, significa que el nuevo carácter está
                                                                                  comprendido entre la 'A' y la 'Z', y, por tanto, es
                                                                                  un carácter de los que queremos generar. Así, llamamos
                                                                                  a la función de nuevo.*/
    else Letras[n] = 65;
}
 
void SegundaLetra(char *Letras, int n) //Algo similar a la función anterior.
{
    PrimeraLetra(Letras, n);
    Letras[n-1]++;
    if(Letras[n-1] <= 90) SegundaLetra(Letras, n);
    else Letras[n-1] = 65;
}
 
void TerceraLetra(char *Letras, int n)
{
    SegundaLetra(Letras, n);
    Letras[n-2]++;
    if(Letras[n-2] <= 90) TerceraLetra(Letras, n);
    else Letras[n-2] = 65;
}
 
void CuartaLetra(char *Letras, int n)
{
    TerceraLetra(Letras, n);
    Letras[n-3]++;
    if(Letras[n-3] <= 90) CuartaLetra(Letras, n);
    else  Letras[n-3] = 65;
}
 
void QuintaLetra(char *Letras, int n)
{
    CuartaLetra(Letras, n);
    Letras[n-4]++;
    if(Letras[n-4] <= 90) QuintaLetra(Letras, n);
    else Letras[n-4] = 65;
}
 
int main()
{
    char Letras[] = "AAAAA";
    fp = fopen("combinacion.txt", "w");
    QuintaLetra(Letras, 4);
 
    fclose(fp);
    return 0;
}

como puedo acer para que se mezclen los numeros y las letras???
me refiero a que no esten los numeros por un lado y las letras por otro, sino todo en uno...
En línea

DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: Como saber todas las combinaciones posibles de letras y numeros?
« Respuesta #4 en: 15 Julio 2012, 01:26 am »

Ese código que has puesto fue otro que hice, pero después hice otra versión que no hacía tantas llamadas recursivas (el que he puesto en este tema, en mi primer mensaje).

Para mezclar números y letras tendrías que fijarte en el código ASCII. Empezarías por 00000 (o con tantos caracteres como desees), y vas aumentando (tal y como en el código que te pasé). Cuando uno de los caracteres sea mayor que 9, el carácter en ASCII que le sigue es ':', y lo que quieres es que después del 9 salga la A. Por tanto, haces un condicional en el que si un carácter > 9, carácter == 65. A partir de ahí sigues sumando y ya todo sería como en los códigos del tema que puse.

Espero que te hayas hecho una idea.

Saludos!
En línea

nb248077

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: Como saber todas las combinaciones posibles de letras y numeros?
« Respuesta #5 en: 15 Julio 2012, 18:11 pm »

resien empiezo a programar en c++
me podrias decir donde iria el condicional y el caracter?
En línea

DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: Como saber todas las combinaciones posibles de letras y numeros?
« Respuesta #6 en: 15 Julio 2012, 18:14 pm »

resien empiezo a programar en c++
me podrias decir donde iria el condicional y el caracter?

¿A qué te refieres? ¿Es de este tema, o de otro?

Saludos!
En línea

nb248077

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: Como saber todas las combinaciones posibles de letras y numeros?
« Respuesta #7 en: 15 Julio 2012, 18:17 pm »

de este tema...
es que no se donde iria el condicional y el caracter que le digiste a peterfly con el codigo de peterfly
En línea

DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: Como saber todas las combinaciones posibles de letras y numeros?
« Respuesta #8 en: 15 Julio 2012, 18:26 pm »

Para empezar tendrías que sustituir

Código
  1. char Letras[] = "AAAAA";

Por:

Código
  1. char Letras[] = "00000";

Para que la primera combinación fuese la 00000.

Y en la función Generador irían las condiciones:

Código
  1. void Generador(char *Letras, int n)
  2. {
  3.    int count, resta=1, llamada;
  4.    while(llamada != 5)
  5.    {
  6.        puts(Letras);
  7.        count = n;
  8.        Letras[n]++;
  9.        llamada = 0;
  10.        while(count >= 0)
  11.        {
  12.            if(Letras[count] == 58) Letras[count] = 65;
  13.            if(Letras[count] > 90)
  14.            {
  15.                Letras[count] = 48;
  16.                Letras[count-1]++;
  17.                llamada++;
  18.            }
  19.            count--;
  20.            resta++;
  21.        }
  22.    }
  23. }


Saludos!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como pasar de letras a numeros
Programación Visual Basic
kakinets 2 2,762 Último mensaje 2 Julio 2005, 21:05 pm
por maxnet
Mi portatil no muestra todas las letras
Seguridad
kmeljess 2 4,440 Último mensaje 15 Noviembre 2011, 03:34 am
por kmeljess
Combinaciones con 54 numeros
.NET (C#, VB.NET, ASP)
mr_marley 3 9,547 Último mensaje 27 Noviembre 2011, 01:56 am
por mr_marley
Programa que entretege todas las combinaciones posibles de letras de una palabra
Programación C/C++
freakx 0 5,550 Último mensaje 23 Enero 2012, 04:55 am
por freakx
posibles combinaciones de sumas de campos
PHP
romanjr 0 2,130 Último mensaje 15 Febrero 2012, 20:11 pm
por romanjr
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines