Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matrix 在矩阵上寻找对称的不同对_Matrix_Graph_Graph Algorithm_Adjacency Matrix_Jung - Fatal编程技术网

Matrix 在矩阵上寻找对称的不同对

Matrix 在矩阵上寻找对称的不同对,matrix,graph,graph-algorithm,adjacency-matrix,jung,Matrix,Graph,Graph Algorithm,Adjacency Matrix,Jung,我有一个正方形平面晶格,表示为NxN网格图。荣格有没有办法得到一个特定顶点的对称对(给定对称轴)。示例:8->0,5->3。 我的目标是获得不同的节点对。因为对(4,1),(4,7),(4,3)和(4,5)本质上是相同的。(1,3)将与(3,7)等相同。也许可以在矩阵上执行某些算法,然后将其转换为图形 一般图形并不特别适合这种情况,因为它们没有行、列、轴对称等内置概念。;它们都是关于拓扑的,而不是几何的 如果您真的想要这样的东西,您应该创建一个具有所需操作的Graph子类型,并创建一个要匹配的实

我有一个正方形平面晶格,表示为NxN网格图。荣格有没有办法得到一个特定顶点的对称对(给定对称轴)。示例:8->0,5->3。 我的目标是获得不同的节点对。因为对(4,1),(4,7),(4,3)和(4,5)本质上是相同的。(1,3)将与(3,7)等相同。也许可以在矩阵上执行某些算法,然后将其转换为图形


一般图形并不特别适合这种情况,因为它们没有行、列、轴对称等内置概念。;它们都是关于拓扑的,而不是几何的


如果您真的想要这样的东西,您应该创建一个具有所需操作的Graph子类型,并创建一个要匹配的实现,或者只创建相应的矩阵(以及从矩阵位置到Graph节点的映射)并对该矩阵执行操作

到目前为止,我能够编写一个算法,将矩阵旋转3次,并以固定的索引跟踪节点。使用节点的视觉坐标而不是索引,可以为任何类型的图形编写相同的代码

fun旋转矩阵(矩阵:List):List{/*--*/}
val reflections=mutableListOf()
(0..2).折叠(mat){a,b->
val new=旋转矩阵(a)
材料加工指数{x,e->
e、 前加工指数{y,e2->
反射。将(mat[x][y]添加到新的[x][y])
}
}
新的
}
结果是描述(0,2,8,6)是“相同”的关系;(1,5,3,7)相同等。剩下要做的唯一一件事是使用输出来确定哪些节点对对应于哪些反射同级