Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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
Algorithm 求矩阵中的群大小_Algorithm_Matrix_Cluster Computing_Detection - Fatal编程技术网

Algorithm 求矩阵中的群大小

Algorithm 求矩阵中的群大小,algorithm,matrix,cluster-computing,detection,Algorithm,Matrix,Cluster Computing,Detection,所以我想知道,有没有一种简单的方法来检测矩阵中相邻相同值的大小?例如,当查看以下0到12之间的值矩阵时: [0,4]处的组大小为14,因为有14个5相互连接。但是1和4没有连接 我认为可以使用呼吸优先搜索(好吧,尝试将矩阵可视化为一棵树) 这里是一个伪python实现。就是这样。这对你有用吗?你心里有复杂的想法吗 代码 解释 假设您从一个节点开始,开始分支出您以前从未访问过的访问节点。这样做直到没有遇到相同值的新单元格。由于设置了逻辑,每个节点保证只有一个父节点。因此,没有单元格被重复计数。那么

所以我想知道,有没有一种简单的方法来检测矩阵中相邻相同值的大小?例如,当查看以下0到12之间的值矩阵时: [0,4]处的组大小为14,因为有14个5相互连接。但是1和4没有连接


我认为可以使用呼吸优先搜索(好吧,尝试将矩阵可视化为一棵树)

这里是一个伪python实现。就是这样。这对你有用吗?你心里有复杂的想法吗

代码 解释
假设您从一个节点开始,开始分支出您以前从未访问过的访问节点。这样做直到没有遇到相同值的新单元格。由于设置了逻辑,每个节点保证只有一个父节点。因此,没有单元格被重复计数。

那么平方中的值是不相关的?@Srini我只想在矩阵中找到相同的值,所以如果8和5接触,它们不会一起计数,但只有5和8(应该选择更好的矩阵示例)啊,我知道了。我花了一段时间才注意到所有值都有一个唯一的颜色:)。谢谢你的澄清啊,是的,这很有意义!一定会试试的!
visited_nodes = set()

def find_adjacent_vals(target_val, cell_row, cell_column):
    if inside_matrix(cell_row, cell_column)
        cell = matrix(cell_row, cell_column)
        if cell not in visited_nodes:
            visited_nodes.add(cell)
            if cell.value == target_val:
                return (1 + 
                        find_adjacent_vals(target_val, cell_row + 1, cell_column) # below
                        +find_adjacent_vals(target_val, cell_row - 1, cell_column) # above
                        +find_adjacent_vals(target_val, cell_row, cell_column -1) # left
                        +find_adjacent_vals(target_val, cell_row, cell_column +1) # right
                        ))

print "Adjacent values count: " + str(find_adjacent_vals(target_val, target_row, target_column))