Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery

Comment on

( #3333=superdoc: print w/ replies, xml ) Need Help??
I have a working algorithm, but it needs work.
I want a program to take five arrays (@a - @e, each array runs at least 0-2) and a produce every permutation. This is easy for me with a for loop. But, to complicate things, I want to produce these permutations in a specific sequence - namely I want all the numbers to stay non-zero as long as possible (except the middle one, c - this one can be whatever). For example, I want 01010 to come before 02000 (two non-zeros vs. one non-zero), but a simple nested for loop gets it wrong. I was able to solve this problem and get it right, but I had to use 15 for loops like this one...
$b = 0; $d =0; for ($a=scalar(@minus2)-1; $a>=1; $a--){ for ($e=scalar(@plus2)-1; $e>=1; $e--){ for ($c=scalar(@mut)-1; $c>=0; $c--){ push(@possible, $minus2[$a].$minus[$b].$mut[$c].$plus[$d].$plus2[$e]); }}}
where in each loop I hold an increasing number of variables at at zero. This just seems really inefficient and ugly to use 15 loops. Assuming this is clear, any ideas on how to improve this algroithm?

In reply to How can I improve this? by Dogg

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?

    What's my password?
    Create A New User
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others contemplating the Monastery: (4)
    As of 2015-11-27 06:11 GMT
    Find Nodes?
      Voting Booth?

      What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

      Results (719 votes), past polls