2016-12-03 1 views
-1

Mit der Idee der dynamischen Programmierung möchte ich 3 Zahlen (x, y, z) speichern, die auf einen Wert (v) abgebildet werden.So ordnen Sie 3 Zahlen einem Wert zu (Dynamische Programmierung)

Für jeden neuen Wert von x, y, z möchte ich prüfen, ob der Wert bereits existiert oder nicht. (um Neuberechnung zu vermeiden)

Die Reihenfolge von x, y, z ist nicht wichtig. Das heißt 1,1,2 und 2,1,1 usw. sollten auf den gleichen Wert abgebildet werden.

x, y, z wird berechnet unter Verwendung von für diese Schleifen (2 verschachtelte Schleifen als x + y + z = n (gegeben))

Wie kann ich erreichen? Wird eine benutzerdefinierte Datenstruktur benötigt?

Dank

Codierung in C++

+0

Sie können einen Wert mit drei Elementen mit 'struct value {int x, y, z;};' erstellen. Wenn Sie mehrere davon haben, könnte ein 'std :: vector ' verwendet werden, um sie zu speichern. –

+0

Warum wird die Frage abgelehnt? – borb183

+0

@ user7777777 Ich habe eine Schleife erstellt, die die Werte x, y, z berechnet. Speichern und später auf diese zugreifen ist was ich nicht verstehen konnte – borb183

Antwort

0

sortieren diese drei Werte zuerst da ihre relative Reihenfolge nicht wichtig ist und sie dann mit Sonderzeichen wie # zu verbinden, um eine Zeichenfolge zu generieren.

Zum Beispiel in Ihrem Fall 1,1,2 und 2,1,1 werden zuerst sortiert als die gleiche Sequenz 1,1,2 und dann verketten sie geben uns 1#1#2 - eine Zeichenfolge, dann wird der Schlüssel sein einzigartig, um Ihre Anforderung zu erfüllen.

Wenn noch etwas übersehen wird, sollten Sie hier vielleicht detailliertere Anforderungen stellen.

+0

Nein, genau das möchte ich machen. Sie schlagen vor, diese Zeichenfolge einem Wert zuzuordnen? Es ist eine nette Idee. Wird versuchen und aktualisieren – borb183

Verwandte Themen