需要8x8排列矩阵

时间:2014-02-09 18:44:05

标签: java matrix

简短故事:

我需要一个8x8矩阵,可以有很多解决方案(a 众所周知的现存问题) 解决方案如下,它应该只有81个位置,其余为0

一个很好的例子可以是8 queen problem。(放置8个皇后,使他们不会互相残杀)

Queen problem

所以我们可以创建一个矩阵,总共有64个位置,1代表当前的皇后位置,0代表空白位置。

LONG STORY:

我正在为Steganography创建一个算法,需要一个8x8矩阵(say A)来存储图像的像素(一次8个像素,每个8位)。

要创建另一个8x8矩阵say B,其中包含的数据只有8个地方应该有1,其余为0。

然后将这些位共同映射到矩阵A,以检查和评估8位结果 ASCII值字符串。

所以,我可以制作这样的组合,在8x8棋盘上组合8个国王组合,这样就不会互相残杀。但这不是一个众所周知的,或者是一个棘手的问题。

创建这样一个矩阵的想法?这个想法可以来自任何地方,通常与棋盘无关。

3 个答案:

答案 0 :(得分:1)

  • 将8x8字段视为具有8个节点和8个边
  • 的图的邻接矩阵
  • 枚举所有这些图表
  • 发现"有趣"这些图的属性。
    • 示例:"色数为3"
    • 示例:"包含至少/最多/ A个度B"
    • 的节点
    • ...
  • 利润

答案 1 :(得分:0)

一种方法是从单位矩阵开始(即仅在主对角线中有1个条目,在其他地方有0个条目)并随机地随机移动行。

答案 2 :(得分:0)

由于你没有详细讨论问题本身,我想你要求的是一个容纳矩阵的数据结构,而不是解决问题的算法。

有效的数据结构将是二维数组int[8][8]甚至是boolean[8][8],因为每个字段只需要两个状态。

如果您要求的数据结构验证不超过或少于8个标记字段的规则,您可以围绕此类数组实现包含要验证的逻辑的包装类。

我可能会误解你。