6.1.26

これは回転を同一視した2つのマスの選び方と等しい。 回転したものが同一視されるので、回転を同一視しない選び方は次の2つの場合に分割できる。

  1. 回転したときに2つの異なる塗られ方になるもの
  2. 回転したときに4つの異なる塗られ方になるもの

(1)となるのは2つのマスが中央のマスに対して点対称になるときである。 これは中央のマス以外を1つ選ぶともう片方は自動的に決まるので(7×71)/2=24(7\times 7-1)/2=24通りある。 また、全ての塗り方は(492)=49×24\binom{49}{2}=49\times 24通りあるので、(2)は49×2424=48×2449\times 24-24 = 48\times 24通りある。

最後に回転を同一視すると(1)は2で、(2)は4で割ればいいので 最終的な答えは242+48×244=300\frac{24}{2} + \frac{48\times 24}{4} = 300通りである。

以下、確認用のコード

n = 7 # must be odd
c = n // 2

def rot(p):
    x = p[0] - c
    y = p[1] - c
    return (-y + c, x + c)

ans = 0
cnt = set()

for x1 in range(n):
    for y1 in range(n):
        for x2 in range(n):
            for y2 in range(n):
                p1 = (x1, y1)
                p2 = (x2, y2)
                if p1 == p2: continue
                if (p1, p2) in cnt: continue

                ans += 1

                p1_, p2_ = p1, p2
                for r in range(4):
                    cnt.add((p1_,p2_))
                    cnt.add((p2_,p1_))
                    p1_ = rot(p1_)
                    p2_ = rot(p2_)

print(ans)

results matching ""

    No results matching ""