Ich versuche, den Pseudocode für das Partition Problem unten in Bruteforce zu tun.Partition Probleme Brute-Force-Algorithmus
eine Menge von ganzen Zahlen X und eine ganze Zahl k (k> 1). Finden Sie k Untermengen von X wie , dass die Zahlen in jeder Teilmenge auf die gleiche Menge und keine zwei Teilmengen ein Element gemeinsam haben, oder zum Schluss, dass keine solche k-Teilmengen existieren. Das Problem ist NP-Complete
Zum Beispiel wäre mit X = {2, 5, 4, 9, 1, 7, 6, 8} und k = 3 eine mögliche Lösung: {2, 5, 7}, {4, 9, 1}, {6, 8} weil alle von ihnen Summe bis 14.
für erschöpfende Suche ich weiß, normalerweise hätten wir jede mögliche Lösung suchen und sehen, ob die Ziel ist ähnlich. Aber da dies Partitionsproblem ist, könnte dies schwierig sein.
Der Algorithmus brute force:
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”
Die Zahlen im Array sollten alle verwendet werden? – NMSL
In der Tat, wenn alle Zahlen verwendet werden müssen, gibt dies die Summe (total/k) und das erleichtert das Auffinden der Partitionen. – m69
Wäre {2,5} {1,6} und {7} eine gültige Lösung für Ihr Beispiel von 'X = {2, 5, 4, 9, 1, 7, 6, 8} und k = 3'? –