拼图 |给棋盘上色所需的最少颜色,没有两对给定的对子相互威胁
谜:
对于以下每个棋子,找出为N x N棋盘着色所需的最小颜色数,这样放置在两个相同颜色的方格上的任何对都不会相互威胁:
- 骑士
- 主教
- 国王
- 车
解决方案:
- 棋盘上的骑士威胁任何一个方格,该方格是水平两格和垂直一格,或垂直两格和水平一格的方格。
如图所示,在标准棋盘上,白方的骑士只能攻击黑方,反之亦然。因此,对于骑士,当N > 2 时,最小颜色数为 2 。 N = 2时为1 ,因为在这么小的棋盘上没有两个骑士可以互相威胁。
- 主教是威胁任何在同一对角线上的正方形的人。
现在,由于主对角线上有N个方格,因此至少需要N种颜色来为对角线的方格着色,这样对角线上的主教就不会相互威胁。要将这种着色扩展到整个棋盘,我们可以使用与位于主对角线上的正方形相同的颜色为列或行着色。这样,所有的对角线都会有不同颜色的方块,所以没有两个主教躺在两个相同颜色的方块上会互相威胁。 - 所有与国王方格水平、垂直或对角线相邻的方格,都受到它的威胁。
考虑一个2 x 2棋盘,其左下角有一个国王。因为这样的国王会威胁到棋盘上所有剩余的方格。因此,需要4种颜色来为2 x 2板着色。
要为N x N棋盘着色,我们可以将其视为由2 x 2块棋盘组成,并且使用相同的配色方案为每个2 x 2棋盘着色,将确保相同颜色方块上的两个国王不会相互威胁。因此,国王的颜色数是4 。 - 车会威胁棋盘上同一行或同一列上的每个方格。
为确保车不会威胁其行或列中的任何人,需要N种颜色。此外,使用简单的配色方案, N种颜色足以为整个电路板着色。用N种不同的颜色为第一行着色。对于要着色的每一行,将颜色向左或向右循环移动一个位置,以便没有一行包含两次相同的颜色。