c中的象棋矩阵

标签 c algorithm matrix

我有一个 n x m 矩阵,其中包含交替的黑白单元格(如棋盘)和一个常量 c,如果右下角是黑色,则为 0,如果右下角为白色,则为 1。

我无法计算出在 n x m 矩阵上可以找到多少个右下角为白色的 8×8 不同板。

我想我应该从右下角开始检查它的颜色。如果它是白色的,那么我有一个很好的案例 (n>8 && m>8),但我不知道如何施加 8 x 8 条件。

最佳答案

如果nxm棋盘的右下角是白色,则有上限((n-7)(m-7)/2)个可能的棋盘。

如果nxm棋盘的右下角是黑色,则有floor((n-7)(m-7)/2)个可能的棋盘。

看这个的方法是看棋盘的左上角在哪里。它仅限于 nxm 网格中左上角的 (n-7)x(m-7) 子网格。由于棋盘的左上角始终是白色,问题就简化为这个 (n-7)x(m-7) 子网格中有多少个白色方 block 。

关于c中的象棋矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18900291/

相关文章:

c - 为什么 FD_ISSET 在 select() 之后返回 true

C:如何区分字符串和整数?输出可以很好地打印整数,但不能打印字符串

algorithm - 找到矩阵乘积中的单个错误元素?

algorithm - 如何在编程中表示 -infinity

c - 具有此索引的数组如何工作? K&R练习

php - 我如何用 C 而不是 php 编写网站工作代码?

algorithm - 有人可以解释这个 RSA 示例的最后部分发生了什么吗?

c++ - 如何使用 float 组中的数据初始化 cv::Mat

c - Assimp详细类型指的是typedef

C++ - std::array 类型的二维矩阵的定义