\(N\) が小さいときは DP で求める. これはサイコロを \(i\) 回振ったときに合計が \(j\) となる確率を \(P(i, j)\) とすると,

\[P(i, j) = \frac{1}{6} \sum_{k=1}^6 P(i-1, j-k)\]

となる.

\(N\) が大きいときは大数の法則を使用する. \(N\) 個サイコロを振ったときの合計が \(x\) になるときの確率分布は正規分布に従うと仮定できる. その平均と分散は1個サイコロを振ったときの平均と分散のそれぞれ \(N\) 倍となるので,

\[\begin{align} \mu &= \frac{7}{2}N \\ \sigma &= \sqrt{ \frac{35}{12} }N \end{align}\]

となる. このとき, 累積分布関数は

\[F(x) = \frac{1}{2} \mathrm{erfc} \left( -\frac{x-\mu}{\sqrt{2}\sigma} \right)\]

となるので, \(F(R+0.5)-F(L+0.5)\) で求める. D言語には \(\mathrm{erfc}\) 関数がある.