Autor Tema: Problema de Combinaciones con Restricción

0 Usuarios y 1 Visitante están viendo este tema.

06 Diciembre, 2010, 07:18 pm
Respuesta #10

Boysek

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 24
  • Karma: +0/-0
  • Sexo: Masculino
No me ha quedado claro esta respuesta  :(

16 Abril, 2024, 11:55 pm
Respuesta #11

Chadizard_XD

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 1
  • País: pa
  • Karma: +0/-0
tengo un dilema con las combinaciones, no me se las formulas y no encuentro nada en youtube, el problema es ¿cauntas combinaciones posibles hay para quitarse los anillos? la ciencia es que hay 3 anillos en un solo dedo y solo puedes quitar un anillo si no tiene otro arriba, ponganse que en el índice (1 anillo de nombre "A"), medio ( 3 anillos de nombres "B", "C" y "D") y en el anular (1 anillo de nombre "E"), el punto es que "A" y "E" pueden ir en cualquier orden, pero "D" no puede ir antes que "C" y "C" no puede ir antes que "B", pero "A" y "E", (como ya mencione) pueden ir al inicio al final en medio, no importa.
ayuda porfas =)

17 Abril, 2024, 03:53 am
Respuesta #12

Tachikomaia

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,255
  • País: uy
  • Karma: +0/-0
  • Sexo: Masculino
¿Qué tan difícil es hacerlo a mano? Me refiero al 1er problema. Al igual que Luis, pienso que la dificultad es que no existe una única cantidad de grupos, depende de cómo los hagas. Lo interesante podría ser cual es el mínimo de grupos así que pueden formarse, y cual el máximo. Sino lo que estás planteando es que cada par de números DEBE estar en 2 grupos.

Veamos distintos métodos de agrupar.

1: Intentamos hacer siempre la misma, cambiando lo mínimo posible:
0123
0124
Tenemos (de los - hacia abajo/izquierda no pongo números porque son los reflejos de los otros):
  0123456789
0-2211
1  -211
2    -11
3      -
4       -
5        -
6          -
7            -
8             -
9               -
En el foro creo que se pueden hacer tablas pero no sé si es fácil, Excel está bien. Pero quizá así sea más fácil:
Pares que están en 2 grupos: 01, 02, 12
En 1: 03, 04, 13, 14, 23, 24
Nueva combinación: 0345
2: 01, 02, 03, 04, 12
1: 05, 13, 14, 23, 24, 34, 35, 45
El conteo puede ser mareador pero en cada nueva combinación ocurren 6 pares, así que el total de pares en 2 grupos*2+el de uno debería dar un divisible entre 6 o está mal. Debería ser 6, 12, 18... En este caso 18. Tenemos 5 en el 1er grupo, *2 son 10, +8 del 2ndo, vamos bien.
0567
2: 01, 02, 03, 04, 05, 12
1: 06, 07, 13, 14, 23, 24, 34, 35, 45, 56, 57, 67

Me aburrí xP

Un programa que te genere combinaciones random con la restricción sería algo como...
Código: [Seleccionar]
Repetir
  Repetir
    Numero1 = random(10)
    Repetir
      Numero2 = random(10)
    mientras Numero1 == Numero2
    Repetir
      Numero3 =

Tengo una mejor manera:
Código: [Seleccionar]
PosiblesValores = "0123456789"
// Generar grupos:
Repetir:
  // Generar un grupo:
  Repetir:
    PosiblesAhora = PosiblesValores
    Puntero = 0
    Repetir:
      Puntero++
      L = Largo de PosiblesAhora
      "N"+Puntero = Caracter nro random (L) de PosiblesAhora
      De PosiblesAhora quitar el nro de caracter elegido
    mientras Puntero<4
    // Ver si los pares ya ocurrieron:
    Repetir = "No"
    Si eval("P"+N1+N2) == 2
      Repetir == "Sí"
    sino si eval("P"+N1+N3) == 2
      Repetir == "Sí"
    sino si eval("P"+N1+N4) == 2
      Repetir == "Sí"
    sino si eval("P"+N2+N3) == 2
      Repetir == "Sí"
    sino si eval("P"+N2+N4) == 2
      Repetir == "Sí"
    sino si eval("P"+N3+N4) == 2
      Repetir == "Sí"
  mientras Repetir == "Sí"
  // Actualizar contadores de pares:
  ("P"+N1+N2)++
  ("P"+N1+N3)++
  ("P"+N1+N4)++
  ("P"+N2+N3)++
  ("P"+N2+N4)++
  ("P"+N3+N4)++
mientras quieras
Ese programa generaría combinaciones al azar, evitando que tengan los mismos números (por ejemplo evita 0012). Luego mira si los pares ya ocurrieron 2 veces. Si ocurrieron se repite. Esa repetición tardará más entre más grupos hayas producido y no hay manera de saber si va a producir uno nuevo o ya es imposible. Hacer un programa mejor, que te busque todas las posibles formas mediante distintos métodos, es más complicado...