　正整数 $n$ に対し $n$ 次の置換 $\sigma$ であって $\sigma(i)\neq i\~(i=1,\dots,n)$ をみたすものを $n$ **次の良い置換** と呼ぶことにする．$n$ 次の良い置換の個数（**モンモール数**）を $a_n$ とすれば，簡単な議論によって $N=2048!\times(a_{2047}+a_{2048})$ が得られる．

　ここで $a_n$ の一般項は次の形に表されることが知られている．
$$a_n=\sum_{k=0}^{n}\frac{(-1)^kn!}{k!}$$

<details>
<summary>漸化式による証明<\/summary>
　$n$ 次の良い置換 $\sigma$ を考える．

- $\sigma(\sigma(n))=n$ であるとき：$\sigma$ は $\\{1,\dots,\sigma(n)-1,\sigma(n)+1,\dots,n-1\\}$ の置換と自然に見なすことができ，それは $n-2$ 次の良い置換に自然に対応する．
- $\sigma(\sigma(n))\neq n$ であるとき：次で定義される $n-1$ 次の置換 $\tau$ は良い置換である．
$$\tau(i)=\begin{cases}
\sigma(i)&(i\neq \sigma^{-1}(n))\\\\
\sigma(n)&(i=\sigma^{-1}(n))
\end{cases}$$

　逆に $n-2,n-1$ 次の良い置換に対し，対応する $n$ 次の良い置換は $n-1$ 個存在する．よって $a_n$ は次の漸化式をみたす：
$$a_1=0,\quad a_2=1,\quad a_{n+2}=(n+1)(a_{n+1}+a_n)\quad(n\geq 1)$$
このとき任意の $n\geq 1$ について
$$a_{n+1}-(n+1)a_n=-(a_n-na_{n-1})=\cdots=(-1)^{n-1}(a_2-2a_1)=(-1)^{n+1}$$
が成り立ち，この両辺を $(n+1)!$ で割った式を考えれば求める式は容易に得られる．
<\/details>
<details>
<summary>包除原理による証明<\/summary>
　$S:=\\{1,\dots,n\\}$ の部分集合 $T$ に対して，$n$ 次の置換 $\sigma$ であって任意の $i\in T$ に対し $\sigma(i)=i$ をみたすものは $(n-|T|)!$ 個存在する．また $|T|=k\~(0\leq k\leq n)$ なる $T\subset S$ は ${}\_{n}\mathrm{C}\_{k}$ 個存在するため，包除原理より
$$
a_n
=\sum_{T\subset S}(-1)^{|T|}(n-|T|)!
=\sum_{k=0}^{n}(-1)^{k}{}\_{n}\mathrm{C}\_{k}(n-k)!
=\sum_{k=0}^{n}\frac{(-1)^kn!}{k!}.
$$
<\/details>

これより次が得られる．
$$\begin{aligned}
N
&=2048!\times\left(2049\times\sum_{k=0}^{2047}\frac{(-1)^k\times 2047!}{k!}+1\right)\\\\
&=2048!\times\left(\underbrace{2049\times2046\times\left(2047\times\sum_{k=0}^{2045}\frac{(-1)^k\times 2045!}{k!}+1\right)}_{6の倍数}+1\right)
\end{aligned}$$
よって $a,b$ は $2048!$ が $2,3$ で割り切れる回数とそれぞれ一致することがわかる．それはLegendreの公式より $a=2047,b=1019$ と計算でき，特に解答すべき値は ${\bf 2085893}$．
公式解説
https://onlinemathcontest.com/contests/omc012/editorial/81
※かつて[公式解説](.\/)が存在しなかったときのものです

---

　$2047$ を一般に $n \ge 1$ とおき，仮定の置き方を $a\_n$ 通りとして，これを求める．  
* 石のない列が存在するとき．  
　黒石を固定したとき，白石の並べ方の総数は攪乱順列と同じ$%n!\sum\limits_{k=0}^n\dfrac{\left(-1\right)^k}{k!}$．よって，求める場合の数は
$$ \left(n+1\right)! \times n!\sum_{k=0}^n\frac{\left(-1\right)^k}{k!}. $$
* 全ての列に少なくとも一方の石があるとき．  
　$n = 1$ では $2$ 通り．$n \ge 2$ の場合，白石のみの列の白石を固定すると，残りの石の並べ方の総数は $n - 1$ の場合と同じ\*．よって $a_0 = 1$ とすれば，求める場合の数は $n \left(n + 1\right) a_{n-1}$ 通り．

　したがって
$$ a_n = n \left(n + 1\right) a_{n-1} + \left(n+1\right)! \times n!\sum_{k=0}^n\frac{\left(-1\right)^k}{k!} $$
であり，帰納的に
$$ a_n = n! \left(n + 1\right)! \sum_{k=0}^n\frac{\left(n - k + 1\right)\left(-1\right)^k}{k!} $$
を得る．よって $S = 2045!\sum\limits_{k=0}^{2045}\dfrac{\left(2048 - k\right)\left(-1\right)^k}{k!}$ とおくと
$$ N = a\_{2047} = 2047! \times 2048! \left(\frac S{2045!} + \frac2{2046!} - \frac1{2047!}\right) = 2048! \times \left(2047 \times 341 \times 6S + 4093\right)\mathclose{}. $$
$S$ は整数であるから，Legendre の定理より $a = 2047,\\, b = 1019$ が得られ，求める数値は $ab = \mathbf{2085893}$．
---
\*　白石のみの列およびその列の白石のある行を考え，その行と列以外の石を並べてから，残りの黒石 $1$ つを適切な場所におけばよい．
アーカイブ
https://onlinemathcontest.com/contests/omc012/editorial/81/27
　$2047$ 行 $2048$ 列のマス目があり, ここに黒石と白石を $2047$ 個ずつ置きます. ただし, 同じマスに複数の石を置くことはできません. 各行に置かれる石が白黒それぞれ高々 $1$ 個, 各列に置かれる石が白黒それぞれ高々 $1$ 個となるような石の置き方は $N$ 通りあります.\
　$N$ を $2$ で割り切れる回数を $a$, $N$ を $3$ で割り切れる回数を $b$ とするとき, $ab$ を求めてください.\
　ここで, 回転や裏返しで同一となるものも異なるものとして数えることとします.