Dado varios vectores/conjuntos, cada uno de los cuales contiene números enteros múltiples que son diferentes dentro de un vector. Ahora quiero comprobar, si existe un conjunto que se compone de extraer solo un elemento de cada vectores/conjuntos dados, en el mismo tiempo los números extraídos son no idénticos entre sí.¿Cómo encontrar los elementos no idénticos de múltiples vectores?
Por ejemplo, dada fija a, b, c, d como:
a <- (1,3,5);
b <- (3,6,8);
c <- (2,3,4);
d <- (2,4,6)
puedo averiguar conjuntos como (1, 8, 4, 6) o (3, 6, 2, 4) ..... en realidad, solo necesito encontrar uno de esos conjuntos para probar la existencia.
aplicando la búsqueda de fuerza brutal, puede haber combinaciones máximas m^k para verificar, donde m es el tamaño de conjuntos dados, k es el número de conjuntos dados.
¿Hay alguna manera más inteligente? ¡Gracias!
¿Puedo asumir estas cosas: 1) que cada conjunto está ordenado, 2) no puede haber más de, digamos 100 elementos en cada conjunto, 3) y no puede haber más de, digamos 10, conjuntos? – Nawaz
Gracias Nawaz. Sí, no hace daño hacer tal suposición al principio. – ulyssis2
Lo único que se me ocurre es reducir el problema establecido al cortocircuitar la generación de la combinación. Entonces, si tiene un 2, no pruebe combinaciones en el siguiente conjunto que contenga 1, 2 y/o 3. Si elige 3 en el conjunto "a", entonces toda la generación combinada que se genera usando 3 en el conjunto "b" sería elimado. No reducirá el O (m^k) pero reducirá el tiempo de ejecución real. – Justin