XP is just a number PerlMonks

### Re: Issue with hash definition & possibly some other stuff

by hdb (Monsignor)
 on Apr 08, 2013 at 21:27 UTC ( #1027601=note: print w/replies, xml ) Need Help??

• The symmetry of the problem leads to 10 different cases only. We can assume that 1<=\$c<\$b<\$a<=\$rep.
• This also implies that \$a is always at least 3, and \$b at least 2.
• This way the loops are simpler and no check for equality is required.
• I think that \$a, \$b, \$c are the correct parameters to store the results rather than the polynomials itself.
Here is my proposed code:

```use strict;
use warnings;
use Math::Polynomial::Solve qw!poly_derivative poly_roots!;
use Data::Dumper;

my %haystack;
my \$rep = int 5; # \$rep means right endpoint of the interval [0, \$rep]

foreach my \$a (3..\$rep ) {
foreach my \$b (2..\$a-1 ) {
foreach my \$c (1..\$b-1 ) {
my @quintic = (1, -\$a - \$b - \$c, \$a*\$b + \$a*\$c + \$b*\$c, -\$a*\$b*\$
+c, 0, 0);
my @derivative = poly_derivative(@quintic);
my @zeros = poly_roots(@derivative);

\$haystack{"\$a,\$b,\$c"}{"p"} =  \@quintic;
\$haystack{"\$a,\$b,\$c"}{"d"} =  \@derivative;
\$haystack{"\$a,\$b,\$c"}{"z"} =  \@zeros;
}
}
}

print Dumper{%haystack};

Replies are listed 'Best First'.
Re^2: Issue with hash definition & possibly some other stuff
by crunch_this! (Acolyte) on Apr 08, 2013 at 23:30 UTC
That makes a lot of sense when I think of what the problem is, especially the first & last things. Once I got it working I confirmed what I suspected that I actually don't really need to know what the derivatives actually are, only what their zeros are. So I actually only need an ordinary hash. Now that I've got the hash part fixed I want to search the values for zero sets that only contain integers, or maybe values within 0.0001 of an integer since the Solve module uses a numerical matrix method to find the zeros, then print out its key. I think grep is what I'm looking for. Thx for all the help so far everybody :D
Re^2: Issue with hash definition & possibly some other stuff
by crunch_this! (Acolyte) on Apr 09, 2013 at 01:56 UTC
btw that dumper module is a real lifesaver!

Create A New User
Node Status?
node history
Node Type: note [id://1027601]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (2)
As of 2018-05-26 01:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
World peace can best be achieved by:

Results (192 votes). Check out past polls.

Notices?