Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: (Golf) Per Mutations

by Masem (Monsignor)
on May 04, 2001 at 18:57 UTC ( [id://77970]=note: print w/replies, xml ) Need Help??


in reply to (Golf) Per Mutations

A non-recursive solution, 138 characters, and doesn't suffer from problems with repeated elements.
#!/usr/bin/perl -w use strict; use Data::Dumper; my @b = p( 1, 2, 3 ); print Dumper( @b ); sub p { my@a=[];for(0..@_){@a=map{my@b=@$_;my@c=@_;for(@b){my$e=$_;for(1..@c +){my$d=shift@c;last if$d eq$e;push @c,$d}}@c?map{[@b,$_]}@c:[@b]}@a}@ +a }

Dr. Michael K. Neylon - mneylon-pm@masemware.com || "You've left the lens cap of your mind on again, Pinky" - The Brain

Replies are listed 'Best First'.
Re (tilly) 2: (Golf) Per Mutations
by tilly (Archbishop) on May 04, 2001 at 19:16 UTC
    Non-recursive, handles repeated elements?
    sub permute{ @r=[];$e=$_,@r=map{@a=@$_;map{@b=@a;splice(@b,$_,0,$e);[@b]}0..@a}@r f +or@_;@r }
    77 chars...

    UPDATE
    75...

    sub permute{ @r=[];$e=$_,@r=map{@a=@$_;map[@a[0..$_-1],$e,@a[$_..$#a]],0..@a}@r for +@_;@r }

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (4)
As of 2024-04-18 06:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found