![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() 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. |
#2
|
||||
|
||||
¿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 Última edición por roman fecha: 01-08-2012 a las 18:49:12. |
#3
|
||||
|
||||
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 n a,b,c,d comenzar leer n. // leer los 4 dígitos para a <- 1 hasta 4 ... ... ... si no((n[a]=n[b]) v (n[a]=n[c]) v (n[a]=n[d]) v (n[b]=n[c]) v (n[b]=n[d]) v (n[c]=n[d])) entonces escribir (n[a],n[b],n[c],n[d]). ... Edito: No lo puse en Pascal para que realices algo de la tarea... ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 01-08-2012 a las 17:33:01. |
#4
|
||||
|
||||
Entre lo que ha explicado Román y el metacódigo que ha puesto ecfisa... ya casi tengo yo también mi programita de combinaciones.
Así sí que se aprende ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
||||
|
||||
Yo, la verdad, no entendí el metacódigo
![]() ![]() // Saludos |
#6
|
||||
|
||||
Seguramente por que el pseudocódigo que iría en lugar de los '...' no queda tán claro de deducir como yo pensaba...
![]() Sería: Código:
variables n a,b,c,d comenzar leer n para a <- 1 hasta 4 para b <- 1 hasta 4 para c <- 1 hasta 4 para d <- 1 hasta 4 si no((n[a]=n[b]) v (n[a]=n[c]) v (n[a]=n[d]) v (*) (n[b]=n[c]) v (n[b]=n[d]) v (n[c]=n[d])) entonces escribir (n[a],n[b],n[c],n[d]). fin Saludos. ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
||||
|
||||
jejeje... puse metadato, lo corregí a medias y se quedó en metacódigo
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#8
|
||||
|
||||
A ver si lo que está preguntando es otra cosa, porque todavía no ha dicho nada.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#9
|
||||
|
||||
Quizá dejó el ejercicio y se fue a la escuela.
// Saludos |
#10
|
||||
|
||||
Cita:
![]() Saludos. ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#11
|
||||
|
||||
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 |
#12
|
|||
|
|||
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 |
#13
|
||||
|
||||
No entiendo lo de "forma aleatoria"
![]() Además tampoco entiendo lo de 6 combinaciones, ¿el 1 no cuenta?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#14
|
||||
|
||||
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 1396 3196 6193 9163 1639 3619 6319 9316 1693 3691 6391 9361 1936 3916 6913 9613 1963 3961 6931 9631 Saludos. ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 02-08-2012 a las 01:33:09. |
#15
|
|||
|
|||
Correcto eficsa, eso es exactamente lo que estoy necesitando desarrollar en Delphi.
Saludos |
#16
|
||||
|
||||
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.
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
#17
|
||||
|
||||
Cita:
// Saludos |
#18
|
||||
|
||||
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... ![]() Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#19
|
||||
|
||||
Entiendo lo que dices, pero eso ya tendrá que contestarlo el profesor.
// Saludos |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Combinaciones | Delar | Varios | 21 | 17-02-2014 10:28:30 |
Cinco cifras para Neftali | roman | La Taberna | 18 | 25-10-2010 17:36:41 |
Obtener la cantidad de cifras de un numero | aeff | Varios | 12 | 10-10-2007 20:08:33 |
generar numero de 9 cifras aleatorio que nunca se repita | coletaun | Varios | 9 | 19-02-2007 10:34:29 |
Cifras alucinantes en el ClubDelphi | dec | La Taberna | 7 | 16-08-2006 01:32:10 |
![]() |
|