我正在製作一個遊戲,涉及通過圖表求解路徑。根據圖的大小,這可能需要一點時間,所以我想緩存我的結果。散列圖以查找重複項(包括旋轉和反射版本)
這是我尋找一種算法來散列圖來找到重複。
這對於圖的確切副本很簡單,我只是使用相對於頂角的節點位置。對於旋轉或甚至反射圖形來說,它變得相當複雜一些。我懷疑這不是一個新問題,但我不確定它的術語是什麼?
我的具體情況是在一個網格上,所以一個節點(如果有的話)將總是連接到它的四個鄰居,北,南,東和西。在我當前的實現中,每個節點都存儲一個相鄰節點的數組。
對進一步閱讀或甚至完整算法的建議非常感謝。
我目前的散列實現始於第一個發現它取決於我如何遍歷賽場圖表節點,然後注意到所有的節點相對於它的位置。基本圖將有可能會像哈希:0:1,0:2,1:2,1:3,-1:1,
您是否將不同尺寸的圖形視爲不同或重複?例如。拿出你的基本圖並且將所有距離縮放2倍。重複與否? – bummzack 2014-09-30 13:34:51
它們是等價的(在我的遊戲中,這將不會發生,因爲節點之間的距離是固定的)。 – grapefrukt 2014-09-30 14:10:05
儘管節點之間的距離是固定的,但您仍然可以擁有兩倍的圖形。您只需跳過一些中間節點? – bummzack 2014-09-30 14:18:19