From 84b520b0b614661ab828c8b59b06f946d8b60ae3 Mon Sep 17 00:00:00 2001 From: Simon Proctor Date: Mon, 30 Mar 2020 09:03:13 +0100 Subject: Permutations --- challenge-054/simon-proctor/raku/ch-1.p6 | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 challenge-054/simon-proctor/raku/ch-1.p6 diff --git a/challenge-054/simon-proctor/raku/ch-1.p6 b/challenge-054/simon-proctor/raku/ch-1.p6 new file mode 100644 index 0000000000..3670fe4fda --- /dev/null +++ b/challenge-054/simon-proctor/raku/ch-1.p6 @@ -0,0 +1,8 @@ +#!/usr/bin/env raku + +use v6; + +#| Print the kth permutation of the numbers from 1 to n +sub MAIN( UInt \n, Int \k where * >= 1 ) { + (1..n).permutations[k-1].join("").say; +} -- cgit From 340592c026f33b33d4334ce5ebd561a35b3c943e Mon Sep 17 00:00:00 2001 From: Simon Proctor Date: Mon, 30 Mar 2020 09:38:15 +0100 Subject: Haven't done extra credit yet. --- challenge-054/simon-proctor/raku/ch-2.p6 | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 challenge-054/simon-proctor/raku/ch-2.p6 diff --git a/challenge-054/simon-proctor/raku/ch-2.p6 b/challenge-054/simon-proctor/raku/ch-2.p6 new file mode 100644 index 0000000000..d5e06d7387 --- /dev/null +++ b/challenge-054/simon-proctor/raku/ch-2.p6 @@ -0,0 +1,14 @@ +#!/usr/bin/env raku + +use v6; + +#| Print the Collatz list for target +multi sub MAIN( + UInt \target #= Number to print the target for +){ + (target,{collatz($^a)}...1).join(' -> ').say; +} + +multi sub collatz( UInt \n where { n %% 2 } ) { n div 2; } + +multi sub collatz( UInt \n where { n !%% 2 } ) { (3 * n) + 1; } -- cgit