Computing angestrebte Anzahl von zahlen in einem set

Arbeite ich an einer Hausaufgabe das problem, dass der mich fragt diese:

Tiven einer endlichen Menge von zahlen und eine Ziel-Zahl, finden, wenn das set kann verwendet werden, um die Berechnung der Ziel-Nummer durch einfache mathematische Operationen (add, sub, mult, div) und mit jeder Zahl in der Menge genau einmal (so muss ich zu Auspuff set). Dies hat zu tun mit Rekursion.

So, zum Beispiel, wenn ich über die set

{1, 2, 3, 4}

- und Ziel-10, dann konnte ich abrufen, indem Sie mithilfe

((3 * 4) - 2)/1 = 10. 

Ich versuche zu formulieren, die der Algorithmus in pseudo-code, aber bisher noch nicht dazu gekommen zu weit. Ich denke die Grafiken sind der Weg zu gehen, würde aber auf jeden Fall schätzen die Hilfe. danke.

  • Was haben Sie bisher studiert? In welcher Klasse / Lektion hast du die Hausaufgaben? Das erste, was mir in den Sinn kommt ist, genetische algorithmen, aber wenn man noch nicht studiert, noch, gibt es wahrscheinlich etwas anderes, wie eine erschöpfende Suche. Auch, müssen Sie Konto für Klammern? Oder sind Sie garantiert in der Lage sein zu Holen Sie sich die Ziel-Zahl, ohne Sie als gut? Und eine weitere Sache, müssen Sie verwenden Sie jede Zahl EXAKT einmal, oder höchstens einmal?
  • Sorry, ich sollte gewesen klarer. Lesen wieder das problem, es besagt, dass jede Zahl soll GENAU einmal verwendet werden. Die Klammern wurden Hinzugefügt, für den sake des Beispiels, das ändert sich jetzt in ((3*4)-2)/1 = 10... danke für den Hinweis, diese Dinge.
  • Sie könnte vergessen, über den Vorrang einfach durch die Verwendung eines Präfix (oder postfix) - notation: (/ (- (* 3 4) 2) 1).
  • Was ist es, was führt Sie zu denken, sollten Sie verwenden ein graph-Algorithmus? Was tun die Knoten/Kanten des Graphen entsprechen, in den das problem?
  • Ersetzen Sie die Zahl "10" durch "24" und erhalten Sie stackoverflow.com/questions/2277015/....
InformationsquelleAutor sa125 | 2010-03-06
Schreibe einen Kommentar