Solve hanging lantern problem: Difference between revisions
Content added Content deleted
m (→{{header|J}}) |
|||
Line 835: | Line 835: | ||
Columns are 1 2 3 4 5 6 7, number of ways = 2431106898187968000 |
Columns are 1 2 3 4 5 6 7, number of ways = 2431106898187968000 |
||
Columns are 1 3 3, number of ways = 140 |
Columns are 1 3 3, number of ways = 140 |
||
</pre> |
|||
=={{header|Perl}}== |
|||
<lang perl>#!/usr/bin/perl |
|||
use strict; # https://rosettacode.org/wiki/Solve_hanging_lantern_problem |
|||
use warnings; |
|||
$_ = 'a bc def'; |
|||
my $answer = ''; |
|||
find($_, ''); |
|||
print "count = @{[ $answer =~ tr/\n// ]}\n", $answer; |
|||
sub find |
|||
{ |
|||
my ($in, $found) = @_; |
|||
find( $` . $', $found . $& ) while $in =~ /\w\b/g; |
|||
$in =~ /\w/ or $answer .= '[' . $found =~ s/\B/,/gr . "]\n"; |
|||
}</lang> |
|||
{{out}} |
|||
<pre> |
|||
count = 60 |
|||
[a,c,b,f,e,d] |
|||
[a,c,f,b,e,d] |
|||
[a,c,f,e,b,d] |
|||
[a,c,f,e,d,b] |
|||
[a,f,c,b,e,d] |
|||
[a,f,c,e,b,d] |
|||
[a,f,c,e,d,b] |
|||
[a,f,e,c,b,d] |
|||
[a,f,e,c,d,b] |
|||
[a,f,e,d,c,b] |
|||
[c,a,b,f,e,d] |
|||
[c,a,f,b,e,d] |
|||
[c,a,f,e,b,d] |
|||
[c,a,f,e,d,b] |
|||
[c,b,a,f,e,d] |
|||
[c,b,f,a,e,d] |
|||
[c,b,f,e,a,d] |
|||
[c,b,f,e,d,a] |
|||
[c,f,a,b,e,d] |
|||
[c,f,a,e,b,d] |
|||
[c,f,a,e,d,b] |
|||
[c,f,b,a,e,d] |
|||
[c,f,b,e,a,d] |
|||
[c,f,b,e,d,a] |
|||
[c,f,e,a,b,d] |
|||
[c,f,e,a,d,b] |
|||
[c,f,e,b,a,d] |
|||
[c,f,e,b,d,a] |
|||
[c,f,e,d,a,b] |
|||
[c,f,e,d,b,a] |
|||
[f,a,c,b,e,d] |
|||
[f,a,c,e,b,d] |
|||
[f,a,c,e,d,b] |
|||
[f,a,e,c,b,d] |
|||
[f,a,e,c,d,b] |
|||
[f,a,e,d,c,b] |
|||
[f,c,a,b,e,d] |
|||
[f,c,a,e,b,d] |
|||
[f,c,a,e,d,b] |
|||
[f,c,b,a,e,d] |
|||
[f,c,b,e,a,d] |
|||
[f,c,b,e,d,a] |
|||
[f,c,e,a,b,d] |
|||
[f,c,e,a,d,b] |
|||
[f,c,e,b,a,d] |
|||
[f,c,e,b,d,a] |
|||
[f,c,e,d,a,b] |
|||
[f,c,e,d,b,a] |
|||
[f,e,a,c,b,d] |
|||
[f,e,a,c,d,b] |
|||
[f,e,a,d,c,b] |
|||
[f,e,c,a,b,d] |
|||
[f,e,c,a,d,b] |
|||
[f,e,c,b,a,d] |
|||
[f,e,c,b,d,a] |
|||
[f,e,c,d,a,b] |
|||
[f,e,c,d,b,a] |
|||
[f,e,d,a,c,b] |
|||
[f,e,d,c,a,b] |
|||
[f,e,d,c,b,a] |
|||
</pre> |
</pre> |
||