【发布时间】:2010-06-17 09:56:20
【问题描述】:
我决定做一张图片来更好地解释这一点,我只是想检查一下我的想法是否正常,并且我可以将总排列减少 75%:
alt text http://www.freeimagehosting.net/uploads/45e5c6b05e.gif
【问题讨论】:
标签: optimization loops combinatorics nested-loops permutation
我决定做一张图片来更好地解释这一点,我只是想检查一下我的想法是否正常,并且我可以将总排列减少 75%:
alt text http://www.freeimagehosting.net/uploads/45e5c6b05e.gif
【问题讨论】:
标签: optimization loops combinatorics nested-loops permutation
您正在减少排列的数量,但没有减少 75%,因为小正方形的所有可能位置都填充了 6x6 正方形,而您的“四分之一”填充了 4x4 正方形。
由于您的宿舍存在“重叠”,您实际上是在添加一些排列。 由于您的四分之一是 4x4,因此中间列有 4 个重叠的正方形,中间行有另外 4 个。
不过,这比实际计算每个小方块要少。
此外,您可以通过执行以下操作进一步提高 2 个方格的性能:
假设您有 2 个正方形,1 和 2。如果您的正方形是:
11110000
11110000
00000000
02000000
这将等同于:
00001111
00001111
00000000
00000020
和
00000020
00000000
00001111
00001111
因此,您可以循环遍历网格第一季度中 1 的所有排列,而不是网格前半部分(左)中 2 的所有排列。对第 1 季和第 2 季执行此操作(其中第 1 季在左上角,第 2 季在右上角)。
【讨论】: