F derangements(n) [[Int]] r V perm = Array(0 .< n) L I all(enumerate(perm).map((indx, p) -> indx != p)) r [+]= perm I !perm.next_permutation() L.break R r F subfact(n) -> Int64 R I n < 2 {1 - n} E (subfact(n - 1) + subfact(n - 2)) * (n - 1) V n = 4 print(‘Derangements of ’Array(0 .< n)) L(d) derangements(n) print(‘ ’d) print("\nTable of n vs counted vs calculated derangements") L(n) 0.<10 print(‘#2 #<6 #.’.format(n, derangements(n).len, subfact(n))) n = 20 print("\n!#. = #.".format(n, subfact(n)))