Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.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
Java 这个代码的数学归纳法?_Java_C++_Algorithm - Fatal编程技术网

Java 这个代码的数学归纳法?

Java 这个代码的数学归纳法?,java,c++,algorithm,Java,C++,Algorithm,我真的不明白我是如何用归纳法证明这段代码的。 我只是想知道如何证明这个代码和算法的正确性 证明我们永远不会计算已经计算过的项目 countCellsx,y的算法 如果电池atx,y在外面 结果为0的网格 否则如果 x,y处的细胞颜色不是异常颜色,结果为0 否则 将x,y处的单元格颜色设置为临时颜色 颜色结果是1加上每一段数据中的单元格数 包含最近邻居的blob 下面的链接显示了它是如何工作的 归纳法证明 证明基本情况条件n=1 证明所有假设步骤n=k 证明感应步骤+1 n=k+1 因此,在第1步

我真的不明白我是如何用归纳法证明这段代码的。 我只是想知道如何证明这个代码和算法的正确性

证明我们永远不会计算已经计算过的项目

countCellsx,y的算法

如果电池atx,y在外面

结果为0的网格

否则如果 x,y处的细胞颜色不是异常颜色,结果为0

否则 将x,y处的单元格颜色设置为临时颜色 颜色结果是1加上每一段数据中的单元格数 包含最近邻居的blob

下面的链接显示了它是如何工作的

归纳法证明

证明基本情况条件n=1

证明所有假设步骤n=k

证明感应步骤+1 n=k+1

因此,在第1步中用一个基数调用你的函数,让k等于其他一些通用输入,然后输入+1


基本上,您希望测试函数的边缘情况,以确保它们正常工作。您的老师可能希望您只编写上述函数的测试条件。

证明正确性?你能指定countCells应该做什么吗?在我看来,这是一种泛光填充算法,它从x,y开始计算连接的异常颜色单元格的数量。不过,没有什么需要证明的。你不能证明代码的正确性,而是证明基于它的算法的正确性。那么,你的算法计算了包含一个细胞的blob中的所有元素吗?我的计算机科学老师说,我应该用归纳法来证明这一点。我不知道我如何证明。对该算法只计算包含单元的blob中的所有元素。输入:现有矩阵中任意点的二维矩阵、x坐标、y坐标。输出:blob的计数,包括像素X、Y和K。但是我仍然不明白我是如何从这个算法中得到归纳证明的。我刚刚发布了这个算法的工作原理。你能点击我上面写的链接吗?
public int countCells(int x, int y)
{
    int result;

    if(x<0 || x>=N || y<0 || y>=N) // N is the maximum value of the matrix
        return 0;
    else if(!getColor(x,y).equals(ABNORMAL)) // 
        return 0;
    else
    {
        recolor(x, y, TEMPORARY);
        return 1 + countCells(x-1, y+1)  + countCells(x, y+1)
             + countCells(x+1, y+1)  + countCells(x-1, y)
             + countCells(x+1, y)  + countCells(x-1, y-1)
             + countCells(x, y-1)  + countCells(x+1, y-1)
    }
}