PHP: Kann ein Array von Zahlen zu einer Zahl addieren

8

Das ist mehr ein Puzzle als alles andere. Ich habe tatsächlich eine Lösung gefunden, aber es ist so langsam, dass ich dachte, ich hätte meine Internetverbindung verloren (siehe unten).

Hier ist das Problem:

Nehmen wir an, ich habe ein Array von Zahlen, so:

%Vor%

Lassen Sie uns auch sagen, dass ich eine Nummer einige Zahlen habe, in Variablen wie folgt gespeichert:

%Vor%

Ich versuche, eine Funktion zu erstellen, die true zurückgibt, wenn eine der Zahlen in $numbers_array addiert werden kann (jeweils nur einmal verwendet), um die Summen zu bilden:

%Vor%

Das obige sollte ausgeben:

%Vor%

Weil 7 + 8 = 15, 7 + 8 + 9 = 24, aber keine Kombination von 1-9 kann 200 erzeugen.

Hier ist meine EXTREM langsame Lösung:

%Vor%

Ссылка

Wie immer wird Hilfe geschätzt !!

    
apparatix 13.08.2012, 10:13
quelle

1 Antwort

3

Ihr Problem ist in der Tat ein algorithmisches Standardproblem (wie Jon das Rucksackproblem erwähnte), genauer gesagt das Teilmengenproblem . Es kann in polynomieller Zeit gelöst werden (siehe Wiki-Seite ).

Pseudocode:

%Vor%     
Bart Platak 13.08.2012, 10:22
quelle

Tags und Links