2017-03-04 2 views
2

Ich bin auf der Suche nach einer Hash-Funktion, die einen skalaren Wert für eine kleine binäre Matrix (7x7) zuweisen wird. Ich möchte, dass es unterschiedliche Werte für 2 verschiedene Matrizen gibt, es sei denn eine Matrix ist eine 90 °, 180 ° oder 270 ° Rotation des anderen. Hast du irgendwelche Vorschläge, wie ich das machen könnte? Ich hatte erwartet, eine Methode in der Bildverarbeitung zu finden, da dies einem 7x7 Binärbild entsprechen würde, aber ich konnte nichts finden.Rotations-Invariante Hash-Funktion für binäre Matrix

+1

Im schlimmsten Fall könnten Sie alle vier Rotationen der Matrix berechnen, nehmen Sie das lexikographisch zuerst, dann Hash das mit einer Standard-Hash-Funktion. Dies gibt Ihnen im Wesentlichen eine "kanonische Form" für die Matrix, die unabhängig von der Hash-Idee ist. – templatetypedef

+0

danke, das Minimum zu nehmen ist eigentlich wirklich gut. –

Antwort

0

Konvertieren von meinem Kommentar zu einer Antwort:

Wenn Sie einen Weg zu finden, sind versucht, zu testen, ob zwei Objekte nachdem ich eine Art von Transformation gleichwertig sind, hilft es oft eine einzige „kanonische Form“ zu holen für das Objekt, das leicht berechnet werden kann. In Ihrem Fall würde es wahrscheinlich sehr hilfreich sein, eine einzige Rotation der Matrix als "kanonische" Rotation auszuwählen und die Dinge auf diese Weise zu vergleichen. Eine einfache Option wäre, die lexikographisch erste Matrix aus allen möglichen Rotationen auszuwählen und sie dann zu verwenden.

Verwandte Themen