Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: Better algorithm than brute-force stack for combinatorial problems?

by BrowserUk (Patriarch)
on May 21, 2004 at 22:12 UTC ( [id://355480]=note: print w/replies, xml ) Need Help??


in reply to Better algorithm than brute-force stack for combinatorial problems?

My take

#! perl -slw use strict; use List::Util qw[ sum ]; sub Cnr{ my( $n, @r ) = shift; return [] unless $n--; for my $x ( 0 .. ($#_ - $n) ) { push @r, map{ [ $_[$x], @$_ ] } Cnr( $n, @_[ ($x + 1) .. $#_ ] ); } return @r; } sub sums{ my( $required, @values ) = @_; return grep{ sum( @$_ ) == $required ? $_ : () } map{ Cnr( $_, @values ) } 1 .. $#values; } print "@$_" for sums( 20, 1 .. 9 ); <STDIN>; __END__ P:\test>355455 3 8 9 4 7 9 5 6 9 5 7 8 1 2 8 9 1 3 7 9 1 4 6 9 1 4 7 8 1 5 6 8 2 3 6 9 2 3 7 8 2 4 5 9 2 4 6 8 2 5 6 7 3 4 5 8 3 4 6 7 1 2 3 5 9 1 2 3 6 8 1 2 4 5 8 1 2 4 6 7 1 3 4 5 7 2 3 4 5 6

Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"Think for yourself!" - Abigail
  • Comment on Re: Better algorithm than brute-force stack for combinatorial problems?
  • Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://355480]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others studying the Monastery: (6)
As of 2024-05-28 06:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found