pub fn derangements(n: u64) -> Result<u64, CombinatoricsError>
Count derangements of n elements: permutations with no fixed points at all.
n
D(n) = (n-1) * (D(n-1) + D(n-2)), with D(0) = 1, D(1) = 0.
D(n) = (n-1) * (D(n-1) + D(n-2))
D(0) = 1
D(1) = 0