我决定做一个图片来更好地解释这个,我只是想检查一下我的想法是否正常,并且我可以将总排列减少75%:
alt text http://www.freeimagehosting.net/uploads/45e5c6b05e.gif
答案 0 :(得分:1)
你正在减少排列数量,但不是75%,因为小方块的所有可能位置都填满了6x6平方,而你的“四分之一”填满了4x4平方。
由于你的宿舍有“重叠”,你实际上是在添加一些排列。 由于您的四分之一是4x4,因此在中间列中有4个正方形重叠,而在您的中间行中有另外四个正方形。
不过,这比每个小方块的实际计算要少。
另外,通过这样做可以进一步提高2个方格的性能:
假设您有2个正方形,1个& 2.如果你的方格是:
11110000
11110000
00000000
02000000
这相当于:
00001111
00001111
00000000
00000020
和
00000020
00000000
00001111
00001111
因此,您可以在网格的第一个四分之一中循环遍历1的所有排列,而在网格的FIRST HALF(左侧)中排除2的所有排列。对第1季和第2季(第1季是左上角,第2季是右上角)这样做。