RosettaCodeData/Task/Permutations-Derangements/Zkl/permutations-derangements-3.zkl
2023-07-01 13:44:08 -04:00

10 lines
338 B
Text

fcn derangements(n){ //-->Walker
enum:=[0..n-1].pump(List);
Utils.Helpers.permuteW(enum).tweak('wrap(perm){
if(perm.zipWith('==,enum).sum(0)) Void.Skip
else perm
});
}
fcn derangers(n){ // just count # of derangements, w/o saving them
derangements(n).reduce('+.fpM("10-",1),0); // ignore perm --> '+(1,sum)...
}