in reply to Metric for confidence of complex match
I think i would bit-encode the numbers into a single numeric value, ordering them from most to least significant.
Eg. You have values A > B > C in terms of importance, and each could range from 0 .. 3, the the combination of A=2, B=3, C=1 would become b'101101'. Converted back to a single numeric value they can be sorted numerically and the position of the fields will weight the sort.
You'll probably have to change the pack/unpack formats (switch the first 'b' for 'B'?), and possible drop one or both of the reverses on non-intel platforms.
This assumes 6 values in the range 0 .. 3.
#! perl -slw use strict; my @data = map{ [ map{ int rand 4 } 1 .. 6 ] } 1 .. 20; my @sorted = map { $_->[1] } sort { $b->[0] <=> $a->[0] } map { my $n = unpack 'N', pack 'B32', reverse join '', map{ scalar reverse unpack 'b2', pack 'C*',$_ } @$_ ; [ $n, $_ ] } @data; print "@$_" for @sorted; __END__ P:\test>503446.pl 3 3 2 3 3 3 3 3 2 3 1 0 3 2 1 2 2 1 3 1 3 3 1 0 3 0 3 1 2 2 3 0 0 2 1 3 2 2 1 1 2 1 2 1 3 3 3 0 2 0 0 3 0 3 2 0 0 2 1 0 1 3 3 3 2 1 1 3 1 0 1 2 1 2 1 0 1 1 1 0 3 1 2 2 1 0 0 1 2 1 0 1 3 1 2 3 0 1 1 3 3 0 0 1 0 3 3 1 0 0 0 3 3 2 0 0 0 3 1 3
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Metric for confidence of complex match
by BrowserUk (Patriarch) on Oct 28, 2005 at 05:34 UTC |