in reply to Comparing two arrays and counting pairwise comparisons

#! perl -slw use strict; use List::Util qw[ min ]; use Data::Dumper; my @site1 = qw[ abcde cdefg efghi ]; my @site2 = qw[ zyxwv xwvut vutrs ]; my %counts; for my $site1 ( @site1 ){ for my $site2 ( @site2 ) { $counts{ substr( $site1, $_, 1 ) . substr( $site2, $_, 1 ) }++ + for 0 .. min( length( $site1 )-1, length( $site2 )-1 ); } } print Dumper \%counts; __END__ P:\test>400340.pl $VAR1 = { 'bu' => 1, 'cv' => 2, 'fu' => 2, 'av' => 1, 'hw' => 1, 'ax' => 1, 'du' => 2, 'gv' => 2, 'es' => 1, 'is' => 1, 'ct' => 1, 'iv' => 1, 'gx' => 1, 'fr' => 1, 'cx' => 2, 'dy' => 1, 'az' => 1, 'ev' => 3, 'ez' => 1, 'et' => 2, 'it' => 1, 'dw' => 2, 'hu' => 1, 'dr' => 1, 'ex' => 2, 'fy' => 1, 'cz' => 1, 'by' => 1, 'fw' => 2, 'bw' => 1, 'gs' => 1, 'hr' => 1, 'gt' => 2 };

Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"Think for yourself!" - Abigail
"Memory, processor, disk in that order on the hardware side. Algorithm, algorithm, algorithm on the code side." - tachyon

Replies are listed 'Best First'.
Re^2: Comparing two arrays and counting pairwise comparisons
by tachyon (Chancellor) on Oct 19, 2004 at 00:27 UTC

    I agree that the description is suboptimal but this does not generate all the permutations. Having the second string as all the same char does make it ambiguous.

      Hmmm. Changed your tune I see...


      Examine what is said, not who speaks.
      "Efficiency is intelligent laziness." -David Dunham
      "Think for yourself!" - Abigail
      "Memory, processor, disk in that order on the hardware side. Algorithm, algorithm, algorithm on the code side." - tachyon