in reply to Puzzle Time
(I suppose only positive numbers otherwise multiply it with 2)
The following is just a variation of the code I recently used:
(I love branch and bound! :)
9! = 362880 possible combinations¹ are checked in a recursive function.
output#!perl use strict; use warnings; my @digits = 1..9; my @number; my $maxlevel=10; my %count_hash; my $count=0; append_digit(); print "count: $count\n"; print join "\n", sort { $a <=>$b } keys %count_hash; sub append_digit { my $level = scalar @number; my $number= join "", @number; if ( $level and ! grep {$number % $_} @number ) { $count++; print "$count: $number\n" unless $count %100; $count_hash{$number} = undef; } for my $digit (@digits) { return if $level > $maxlevel; # for testing only next if $digit ~~ @number; push @number, $digit; append_digit(); pop @number; } }
Cheers Rolf
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Puzzle Time
by ikegami (Patriarch) on Dec 24, 2012 at 06:41 UTC | |
|
Re^2: Puzzle Time
by Athanasius (Archbishop) on Dec 23, 2012 at 10:21 UTC | |
by LanX (Saint) on Dec 23, 2012 at 15:25 UTC | |
|
Re^2: Puzzle Time
by Anonymous Monk on Dec 23, 2012 at 04:28 UTC |