On Sat, 08 Oct 2005 12:04:54 +0900
藤岡和夫 <kazuf@...> さんwrote:
> シュワルツ変換は、ソート対象の配列要素と配列要素から計算して得られる新
> しい要素をmapして、新しい要素をキーにソートして、元の配列要素を並び替え
> るというものです。今回の場合はソートする必要はないので(というか、フィー
> ルドの計算でソートを使っているので)、シュワルツ変換とは言えないですけど、
> それ風に書けば(^^;)、mapを使って、
シュワルツ変換に囚われていた(^^;;;、単にmapするだけ・・・
@a=(13, 18, 8, 9, 11, 20);
@b=(15, 9, 9, 18, 25);
foreach (sort{$a <=> $b}(@a, @b)){
$nc{$_}++;$count++;
if($_ == $buffer){
$na{$_} += $count;
}else{
$na{$_} = $count;
}
$buffer = $_;
}
foreach (keys %na){
$ea{$_} = $na{$_}/$nc{$_};
}
@A = map { $ea{$_} } @a;
@B = map { $ea{$_} } @b;
print '@A = (', join(", ", @A), ")\n";
print '@B = (', join(", ", @B), ")\n";
藤岡 和夫
kazuf@...
TS Networkのために http://homepage1.nifty.com/kazuf/