June 2018 Update

This commit is contained in:
Ingy döt Net 2018-06-22 20:57:24 +00:00
parent ba8067c3b7
commit 22f33d4004
5278 changed files with 84726 additions and 14379 deletions

View file

@ -1,24 +1,15 @@
sub is-derangement(List $l) {
return not grep { $l[$_] == $_ }, 0..($l.elems - 1);
sub derangements(@l) {
@l.permutations.grep(-> @p { none(@p Zeqv @l) })
}
# task 1
sub derangements(Range $x) {
$x.permutations.grep( *.&is-derangement )
sub prefix:<!>(Int $n) {
(1, 0, 1, -> $a, $b { ($++ + 2) × ($b + $a) } ... *)[$n]
}
# task 2
.say for (0..4).&derangements;
say 'derangements([1, 2, 3, 4])';
say derangements([1, 2, 3, 4]), "\n";
# task 3
sub prefix:<!>(Int $x) {
return +derangements(^$x);
}
# task 4
for ^9 -> $n {
say "number: " ~ $n;
say "count: " ~ !$n;
say "derangements: ";
.say for (0..$n-1).&derangements;
say 'n == !n == derangements(^n).elems';
for 0 .. 9 -> $n {
say "!$n == { !$n } == { derangements(^$n).elems }"
}