> -----Original Message-----
> From: Janek Schleicher [mailto:[EMAIL PROTECTED]]
> Sent: 18 September 2002 16:34
> To: [EMAIL PROTECTED]
> Subject: Re: lots of numbers...
>
>
> I think, it's better to weight the sorted numbers
> with their sum rank, in the above example it would be:
>
> Of course, you can also solve the real optimization problem,
> but for that you really should ask a mathematization.
> (But these algorithms are also slow :-))
>
Your analysis is interesting. I am no mathemagician either, but it
occurs to me that it would be easy to code your analysis more
efficiently than using the sum rank, something like this: (not
debuggered)
use strict;
# Note that this array must be sorted ascending
my @numbers = (1,4,9,16,25,36,49,64,81);
# How many groups will we create?
# What do we do if there are not exactly three numbers
# per group??
my $iterations = integer (scalar @numbers / 3);
my @groups;
foreach my $i ( 1..$iterations ) {
my @group;
# put the smallest and biggest value into groups
push @group, pop( @numbers ), shift( @numbers );
push @groups, \@group;
}
# Now we have to decide which group can best use the
# remaining numbers. Process the groups from biggest
# to smallest, adding the smallest available value
foreach my $group ( sort { $b[0]+$b[1] <=> $a[0]+$a[1] } @groups ) {
push @$group, pop @numbers;
}
# @groups now is an array of balanced tuplets! hoorah.
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]