![]() |
Combinaciones Numero De 4 Cifras
Buen dia Foro,
alguien me puede ayudar e indicar como puedo realizar en Delphi las combinaciones posibles de un numero de 4 cifras? es decir, a partir de un numero de 4 cifras previamente conocido. Por ejemplo el 0027 o el 8012 y que no se repitan? Agradeciendo de antemano su ayuda. |
¿Te refieres a las combinaciones de sus dígitos?
Toma cada uno de los dígitos y pégales las combinaciones de los tres restantes. Ahora tienes el mismo problema pero con menos dígitos, es decir, basta que resuelvas el problema para números de tres dígitos. Para resolver este segundo problema, toma cada uno de los tres dígitos y pégales las combinaciones de los dos restantes. Ahora tienes el mismo problema pero con menos dígitos, es decir, basta que resuelvas el problema para números de dos dígitos. Este tercer problema es trivial pues sólo hay dos combinaciones posibles para números de dos cifras, AB y BA. Lo que estoy describiéndote es un proceso recursivo con el que puedes resolver el problema. // Saludos |
Hola rbarzallo.
Una forma de realizarlo: Declara cinco variables, una para almacenar los 4 dígitos y 4 mas para que recorran los cuatro números. El algorímo se reduce a: Código:
variables Edito: No lo puse en Pascal para que realices algo de la tarea... :) |
Cita:
Así sí que se aprende :) |
Yo, la verdad, no entendí el metacódigo :o (pero ya hice la tarea :))
// Saludos |
Cita:
Sería: Código:
variables Saludos. :) |
jejeje... puse metadato, lo corregí a medias y se quedó en metacódigo :)
|
Cita:
|
Quizá dejó el ejercicio y se fue a la escuela.
// Saludos |
Cita:
Saludos. :) |
Bueno, mi solución tiene un error que ahora veo. La puse pensando en que las cifras del número no se repetían, pero si eso pasa debo descartar las repeticiones.
// Saludos |
Combinaciones 4 Cifras
ok, gracias por su ayuda.
Exactamente lo que necesito realizar es obtener las combinaciones de 4 digitos conocidos, pero de forma aleatoria. Es decir, si tengo el numero 1963, obtener 6 combinaciones de dicho numero es decir, 1963, 1936, 1396, 1369, 1693, 1639 Gracias |
No entiendo lo de "forma aleatoria" :confused:
Además tampoco entiendo lo de 6 combinaciones, ¿el 1 no cuenta? |
Cita:
Se puede hablar de combinatoria cuando los grupos obtenidos se consideran diferentes si y solo sí, tienen un elemento diferente, por lo que en este caso estaríamos hablando de permutación. Es decir, se considera que un grupo es diferente a otro cuando difiere en el órden en que están dispuestos los elementos. El número 1963 consta de cuatro dígitos y como es tomado de 4 en 4, sin ahondar en detalles, podemos decir que el número total de grupos a formar es 4! = 4.3.2.1 = 24 Los grupos obtenidos son: Código:
1369 3169 6139 9136 Saludos. :) |
Correcto eficsa, eso es exactamente lo que estoy necesitando desarrollar en Delphi.
Saludos |
Estaba pensando en las combinaciones y permutaciones, el famoso factorial (!) y mis clases de Mate IV en la Uni. La solución de eficsa es la correcta y además la más sencilla. Me acorde de una materia que se llamaba "Análisis Numérico" y que precisamente se trataba de resolver problemas matemáticos como este (hasta "Furias" de Fourier y "Transtornadas" de La Place) pero con la ayuda del lenguaje computacional de tu gusto. Era fenomenal esa clase.
|
Cita:
// Saludos |
Cita:
Estuve pensando en lo que comentas y no sé si estare hacertado conceptualmente, pero pienso que aún usando permutación con repetición, se debería consider la posición que ocupa el elemento en los grupos y no su valor. Si bién 0 y 0 tienen el mismo valor, no se refieren al mismo elemento. Claro que tomando en cuenta lo anterior y con el condicional: las repeticiones son inevitables. Pero como te dije mas arriba, no estoy totalmente seguro cuál es el concepto que debiera considerarse, si el valor o el elemento... :confused: Saludos. |
Entiendo lo que dices, pero eso ya tendrá que contestarlo el profesor.
// Saludos |
La franja horaria es GMT +2. Ahora son las 23:34:21. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi