Próbuję wykonać pseudocode dla problemu partycji poniżej w bruteforce.Problemy z partycją Brute Force Algorithm
zestaw liczb całkowitych X i liczba całkowita k (k> 1). Znajdź k podzestawów X takich , że liczby w każdym podzestawie sumują się do tej samej liczby i nie mają dwóch podzbiorów, które mają wspólny element, lub wyciągnij wniosek, że nie istnieją takie podzbiory k. . Problem jest NP-Complete
Na przykład, przy X = {2, 5, 4, 9, 1, 7, 6, 8} i k = 3, możliwe rozwiązanie będzie: {2, 5, 7}, {4, 9, 1}, {6, 8}, ponieważ wszystkie z nich suma do 14.
do wyczerpujących poszukiwań znam zwykle musielibyśmy szukać wszelkich możliwych rozwiązań i sprawdzić, czy cel jest podobny. Ale ponieważ jest to problem z partycją, może to być trudne.
Algorytm 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”
Wszystkie liczby w tablicy powinny być używane? – NMSL
Rzeczywiście, jeśli wszystkie liczby muszą być użyte, daje to sumę (total/k), co upraszcza znajdowanie partycji. – m69
Czy {2,5} {1,6} i {7} byłyby właściwym rozwiązaniem dla twojego przykładu "X = {2, 5, 4, 9, 1, 7, 6, 8} i k = 3"? –