Dati diversi vettori/insiemi, ognuno dei quali contiene più numeri interi che sono diversi all'interno di un vettore. Ora voglio controllare, se esiste un set che è composto estraendo da ogni dato vettori/set, nello stesso tempo i numeri estratti sono non identici l'uno dall'altro.Come trovare gli elementi non identici da più vettori?
Ad esempio, dato imposta a, b, c, d come:
a <- (1,3,5);
b <- (3,6,8);
c <- (2,3,4);
d <- (2,4,6)
posso scoprire insiemi come (1, 8, 4, 6) o (3, 6, 2, 4) ..... in realtà, ho solo bisogno di trovare uno di questi set per provare l'esistenza.
applicando la ricerca di forza brutale, ci possono essere le combinazioni m^k per il controllo massimo, dove m è la dimensione di gruppi dati, k è il numero di set dati.
Esistono modi più intelligenti? Grazie!
Posso presumere queste cose: 1) che ogni set è ordinato, 2) non possono esserci più di, diciamo 100, elementi in ogni set, 3) e non possono esserci più di, diciamo 10, set? – Nawaz
Grazie Nawaz. Sì, non fa male fare questa ipotesi all'inizio. – ulyssis2
L'unica cosa che posso pensare è la riduzione del problema impostato dal cortocircuito della generazione della combinazione. Quindi, se hai un 2 non provare nessuna combo nel prossimo set che contiene 1, 2 e/o 3. Se hai scelto 3 nel set "a", allora tutte le generazioni combinate generate usando 3 nel set "b" sarebbe stato eliminato. Non ridurrà O (m^k) ma ridurrà il tempo di esecuzione effettivo. – Justin