c语言中的象棋矩阵
我有一个nxm矩阵,它包含可选的黑白单元格(如棋盘)和一个常数c,如果右下角是黑色,它是0,如果是白色,它是1 我很难计算出在一个nxm矩阵上有多少个8×8不同的、右下角为白色的电路板c语言中的象棋矩阵,c,algorithm,matrix,C,Algorithm,Matrix,我有一个nxm矩阵,它包含可选的黑白单元格(如棋盘)和一个常数c,如果右下角是黑色,它是0,如果是白色,它是1 我很难计算出在一个nxm矩阵上有多少个8×8不同的、右下角为白色的电路板 我在想我应该从右下角开始检查它的颜色。如果它是白色的,那么我有一个很好的例子(n>8&&m>8),但我不知道如何施加8 x 8条件。如果nxm板的右下角是白色的,那么就有上限((n-7)(m-7)/2)可能的棋盘 如果nxm棋盘的右下角是黑色的,则可能有(n-7)(m-7)/2个棋盘 看到这一点的方法是查看棋盘左
我在想我应该从右下角开始检查它的颜色。如果它是白色的,那么我有一个很好的例子(n>8&&m>8),但我不知道如何施加8 x 8条件。如果nxm板的右下角是白色的,那么就有上限((n-7)(m-7)/2)可能的棋盘
如果nxm棋盘的右下角是黑色的,则可能有(n-7)(m-7)/2个棋盘
看到这一点的方法是查看棋盘左上角的位置。它仅限于nxm栅格中的左上(n-7)x(m-7)子栅格。由于棋盘的左上角始终为白色,因此问题归结为(n-7)x(m-7)子网格中有多少个白色方块。如果nxm棋盘的右下角为白色,则可能存在天花板((n-7)(m-7)/2)棋盘
如果nxm棋盘的右下角是黑色的,则可能有(n-7)(m-7)/2个棋盘
看到这一点的方法是查看棋盘左上角的位置。它仅限于nxm栅格中的左上(n-7)x(m-7)子栅格。因为棋盘的左上角总是白色的,所以问题归结为(n-7)x(m-7)子网格中有多少个白色方块。让右下角的索引为
(0,0)
,左上角的索引为(n,m)
。现在,每个8*8正方形的右下角索引(i,j)
应保持以下属性:
i让右下角的索引为(0,0)
,左上角的索引为(N,M)
。现在,每个8*8正方形的右下角索引(i,j)
应保持以下属性:
i可能的副本;另请参见&answers。您可能应该添加algorithm
标记,我看不出这是该问题的重复。在一个n x m矩阵简单的问题中,我很难实现确定右下角为白色的8 x 8个棋盘数量的算法,因为你只有黑色和白色,如果它像一个棋盘,你怎么可能有两个以上的情况?只要数组具有相似的高度和宽度,哪一个是成对的,就只有两个组合?@user2791841您能给出一些示例输入输出吗?n=9和m=9的输出是什么?可以有4个可能的8*8棋盘,我猜ans是2?可能的重复;另请参见&answers。您可能应该添加algorithm
标记,我看不出这是该问题的重复。在一个n x m矩阵简单的问题中,我很难实现确定右下角为白色的8 x 8个棋盘数量的算法,因为你只有黑色和白色,如果它像一个棋盘,你怎么可能有两个以上的情况?只要数组具有相似的高度和宽度,哪一个是成对的,就只有两个组合?@user2791841您能给出一些示例输入输出吗?n=9和m=9的输出是什么?可能有4个8*8的棋盘,我猜ans是2?
ceil((N - 7) * (M - 7) / 2)