Sto cercando di eseguire lo pseudocodice per il problema della partizione di seguito in bruteforce.Problemi di partizione Algoritmo della forza bruta
un insieme di interi X e un intero k (k> 1). Trova k sottoinsiemi di X tali che i numeri in ogni sottoinsieme sommi allo stesso ammontare e che due sottoinsiemi abbiano un elemento in comune o che non esistano tali sottosistemi k . Il problema è NP-Complete
Ad esempio, con X = {2, 5, 4, 9, 1, 7, 6, 8} e k = 3, una possibile soluzione potrebbe essere: {2, 5, 7}, {4, 9, 1}, {6, 8}, perché tutti loro somma fino a 14.
per la ricerca esaustiva so che in genere avremmo dovuto cercare ogni possibile soluzione e vedere se il l'obiettivo è simile. Ma dato che questo è un problema di partizione, questo potrebbe essere complicato.
La forza bruta algoritmo:
Subset= X.sum/K //I had a guess this would make the parition
For int i==1; I <subset; i++ // this would change partition if not found in the first one
If (j=0; I<n; i++)
Sum == s[i]
If sum == target
Display “found”
Else
“not found”
I numeri nell'array dovrebbero essere tutti usati? – NMSL
Infatti, se tutti i numeri devono essere usati, questo ti dà la somma (totale/k) e questo semplifica la ricerca delle partizioni. – m69
Sarebbe {2,5} {1,6} e {7} essere una soluzione valida per il tuo esempio di 'X = {2, 5, 4, 9, 1, 7, 6, 8} e k = 3'? –