相关疑难解决方法(0)

找到3x3打孔的所有组合

我参加了一个狂欢节,在每个地方,他们用特殊的打孔标记你的节目.打孔器是3x3空间的网格.在每个空间中,有一个针刺穿你的纸张或没有.这让我想知道你可以使用这个工具制作多少种不同的模式.我的第一个想法是:2 ^ 9 = 512,但是所有9个空间都是无针的并不是真正的一拳,所以真的:511.

然后复杂性打击了我.特别是因为工人们在打纸时并不是那么小心,所以这些看起来都很明显:

x..  .x.  ...  etc.
.x.  x..  .x.
...  ...  ..x
Run Code Online (Sandbox Code Playgroud)

问题:如何编写测试以考虑轮换和转换?


到目前为止的勤奋和思想:

  • 二元感觉就像这个等式的一个明显的部分
  • 找到唯一模式后,将其存储在内存中,以便可以对其进行未来模式测试
  • 有4种旋转可能性.
    编辑:我所说的"旋转"是指你可以采取任何形状并将其旋转90度.考虑左上角是点的图案.您可以将其旋转/旋转90度并获得右上角的点.再次这样做,它在右下方.再次,它在左下角.使用纯2 ^ 9计算,这些是4种不同的组合.然而,对于这个问题,这些正是我试图清除的那种重复.
  • 对于每次旋转,有25种方法可以使3x3网格重叠:

重叠:

/ = the spaces in the new one to test
\ = the spaces in a verified unique one

1               2               25
/ / / . . . .   . / / / . . .   . . . . . . .
/ / / . . . .   . / …
Run Code Online (Sandbox Code Playgroud)

algorithm combinations

36
推荐指数
1
解决办法
2484
查看次数

标签 统计

algorithm ×1

combinations ×1