Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

RE: Re: How can I improve this?

by lhoward (Vicar)
on Jul 25, 2000 at 07:51 UTC ( #24243=note: print w/replies, xml ) Need Help??

in reply to Re: How can I improve this?
in thread How can I improve this?

Since you seemed interested.. here is my permutation generator. It takes a base string (should be empty) as its first argument, then refrences to as many lists as you want as the other arguments and returns a refrence to a list containg all the list-element concatination permutations:
my $foo=permute('',[0..2],[0..2],[0..3],[0..2]); sub permute{ my $prefix=shift; my @arrays=@_; my $c=shift @arrays; my @ret=(); foreach(@$c){ my $f=$prefix.$_; if(scalar(@arrays)==0){ push @ret,$f; }else{ my $t=permute($f,@arrays); push @ret,@$t; } } return \@ret; }
I'm not really happy with the implementation of it, but I like it in spirit (of course, I'm a big fan of recursive algorithms to begin with).

Replies are listed 'Best First'.
My permutor
by merlyn (Sage) on Jul 25, 2000 at 07:57 UTC
    Well, since everyone is posting their permutors, here's mine:
    sub permute { my $last = pop @_; unless (@_) { return @$last; } return map { my $left = $_; map "$left$_", @$last } permute(@_); }

    -- Randal L. Schwartz, Perl hacker

    by gryng (Hermit) on Jul 25, 2000 at 17:01 UTC

      Oh I like that.


      does this work? how do you call it?

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://24243]
[marto]: not if you keep telling people :P
[zentara]: I had to disable hyperthreading on my machine because of that.
[Discipulus]: thanks marto but... at the moment this seems a bit beyond my faculties.. ;=)
[zentara]: a thread goes into a wait state after emitting a wait to all other threads. It locks up a machine completely.
[marto]: if you mean the recent hyperthreading bug, I don't think that's NSA related?
[zentara]: s/thread/cpu/
[marto]: xkcd://538
[Discipulus]: these opcodes mentioned in the wiki pages are the same opcode perl is translated into? or is just the same term but in different fields?
[zentara]: it's useful if you want to lockup a multicore machine :-)

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (11)
As of 2017-07-28 12:10 GMT
Find Nodes?
    Voting Booth?
    I came, I saw, I ...

    Results (428 votes). Check out past polls.