系统地尝试word search中的所有可能展示位置是否合理?
网格通常具有15 * 15(15个细胞宽,15个细胞高)的尺寸,并且包含大约15个待放置的单词,每个单词可以放置在8个可能的方向上。所以一般来说,您似乎可以通过以下方式计算所有可能的展示位置: width * height * 8_directions_to_place_word *单词数
所以对于这样的网格,似乎我们只需要尝试15 * 15 * 8 * 15 = 27,000,这看起来并不差。我期待一些巨大的数字,所以网格大小和单词数量都很小,或者我的数学有些可疑。
答案 0 :(得分:2)
从形式上讲,假设x
是行数而y
是列数,则应该为每个可能的单词的每个可能方向的所有概率求和。
输入为:x
,y
,l
(单词的平均长度),n
(总单词)
所以你有
0
开始到x-l
,然后向右或从l到x
向左行开始:2x(x-l)
0
到y-l
向下或从l
到y
向上。所以它是2y(y-l)
x*y
并减去l^2
,因为不能使用该字段的矩形。和之前一样,乘以4,因为你有4个可能的方向:4*(x*y - l^2)
。然后将整个结果与所包含的单词数相乘:
total = n*(2*x*(x-l)+2*y*(y-l)+4*(x*y-l^2)