Skip to content

Instantly share code, notes, and snippets.

@fuba
Created September 9, 2009 19:25
Show Gist options
  • Save fuba/184007 to your computer and use it in GitHub Desktop.
Save fuba/184007 to your computer and use it in GitHub Desktop.
perl -e 'srand(time);my@data=map{int rand(10000000)}(0..100); my @c = map {int rand(6)} @data; for my $loop (0..30) {my %avg;my %num;for my $i (0..$#data){$avg{$c[$i]} += $data[$i];$num{$c[$i]}++;} map{$avg{$_}/=$num{$_}}keys %avg;for my $i(0..$#data){my$l = 0; for my $cl(keys%avg){$l=(abs($avg{$cl}-$data[$i]) < abs($avg{$l}-$data[$i])) ? $cl : $l} $c[$i]=$l } warn join " ","loop_${loop}|",map{$_->{c}.":".$_->{d}}sort{$avg{$a->{c}}<=>$avg{$b->{c}}}map{+{d=>$data[$_], c=>$c[$_]}}(0..$#c); }'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment