def blute(N, A, B):
ret = 0
for ax in range(0, N - A + 1):
for ay in range(0, N - A + 1):
for bx in range(0, N - B + 1):
for by in range(0, N - B + 1):
if ax <= bx < ax + A or ax < bx + B <= ax + A:
if ay <= by < ay + A or ay < by + B <= ay + A:
continue
ret += 1
return ret
(1-x)^5で割れば4次式になることは確認した
python
>>> xs = np.array([blute(20, 10, i) for i in range(1, 11)])
>>> reduce(np.convolve, [[1, -1]] * 5, xs)[:10]
array([ 36300, -151980, 238728, -166632, 43560, 0, 0,
0, 0, 0])