Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
28/11/09 11:51
mikemuntain
elementi in comune tra n colonne di una matrice
salve inanzitutto vorrei farei i complimenti a tutti i moderatori di questo forum davvero bellissimo e completo.

Vorrei porvi un problemi io ho una matrice di booleani dove al suo interno ci sono vari true e false, adesso io vorrei prendere le righe o le colonne a gruppi n dove n viene dato da input e vedere quali elementi hanno in comune.
Esempio:
ho questa matrice e una 6x6
codice:

    a    b    c    d    e    g
a    F    T    T    T    F    T
b    T    F    F    T    F    F
c    T    F    F    T    T    T
d    T    T    T    F    T    F
e    F    F    T    T    F    T
g    T    F    T    F    T    F


dove le lettere sono degli indici puremente indicativi adesso io dovrei per esempio prendere dei gruppi di n righe o colonne, ad esempio n=3 e dovrei prendere tutte le possibili combinazioni di tre righe o colonne e vedere quali sono gli elementi in comune tra tutti e tre ad esempio:
il gruppo a-c-e ha in comune a in comune tra tutte e tre d e g, e cosi via....
Adesso io ho provato con un brute-force nel senso a crearmi tutte le possibili combinazioni di n righe o colonne ma lo cosa e abbastanza lenta.
Spero abbiate capito cosa voglio realizzare spero nella vostra bonta nell'aiutarmi perchè ne sto uscendo veramente pazzo

Ringrazio a tutti ancipatamente a presto
aaa
28/11/09 13:32
MrC
Hai qualche nozione di Algebra Lineare?

it.wikipedia.org/wiki/… :pat:


Al momento non ho voglia di pensare e cercare una soluzione algoritimica al tuo problema, in quanto è tuo :), ma ti posso consigliare di ricercarlo in quella "zona".

Come informatico ti posso consigliare una struttura dati migliore per velocizzare il processo:

un boolean è T o F cioè 0 o 1, se usi una matrice di INTeri ne fai stare (32) in una sola cella e per confrontarli tra loro ti basta un operazione ! XOR

Se poi ti serve un valore preciso basta una masKera di bit cioè int[ pos ] & ( 1 << indirizzo_bool_voluto )

La cosa è più complicata, ma se punti alla velocità molto probabilmente è meglio :-|
Ultima modifica effettuata da MrC 28/11/09 13:33
aaa