Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re^3: Generate all unique combinations of 1 and 0 using specified length of "0"-string and count of 1's -- permutations

by hippo (Bishop)
on Sep 18, 2020 at 09:21 UTC ( [id://11121906]=note: print w/replies, xml ) Need Help??


in reply to Re^2: Generate all unique combinations of 1 and 0 using specified length of "0"-string and count of 1's -- permutations
in thread Generate all unique combinations of 1 and 0 using specified length of "0"-string and count of 1's

This is neat code but is doing far too much work because it permutes every zero with every other zero (and also every one with every other one). eg. if you run it with 2 zeros and 2 ones you will get 4 duplicates for each answer. Increasing the numbers just makes the problem exponentially worse. Try with 9 zeros and 1 one and you'll soon see what I mean :-)


🦛

  • Comment on Re^3: Generate all unique combinations of 1 and 0 using specified length of "0"-string and count of 1's -- permutations

Replies are listed 'Best First'.
Re^4: Generate all unique combinations of 1 and 0 using specified length of "0"-string and count of 1's -- permutations
by Discipulus (Canon) on Sep 18, 2020 at 10:05 UTC
    yes thanks choroba and hippo, my code presented above is blatantly wrong :)

    Can I add a %seen to repair my sin?

    use strict; use warnings; use feature 'say'; use Algorithm::Combinatorics qw(permutations); my $zeros = 7; my $ones = 3; my %seen; # this is really ugly # say join '', @$_ for grep{ !$seen{join('', @$_)}++ } permutations( [ + (0) x $zeros, (1) x $ones] ); # a little nicer say for grep { !$seen{$_}++ } map{join '', @$_} permutations( [(0) x $ +zeros, (1) x $ones] );

    Now the cure is worst than the disease, but runs ok

    L*

    There are no rules, there are no thumbs..
    Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (5)
As of 2024-04-19 06:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found