#!/usr/bin/perl -w use warnings; use strict; sub boost { my ($x, $importance, $radius, $drop) = @_; return $importance * exp( -($x/$radius)**$drop ); } my $imp = 1000; my $rad = 100; my $drop = 1; for (map 2**$_, 1..15) { my $boost = boost($_, $imp, $rad, $drop); my $bar = "@" x ($boost/$imp*50); printf "%6d %s %.1f\n", $_, $bar, $boost; } __END__ 2 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 980.2 4 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 960.8 8 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 923.1 16 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 852.1 32 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 726.1 64 @@@@@@@@@@@@@@@@@@@@@@@@@@ 527.3 128 @@@@@@@@@@@@@ 278.0 256 @@@ 77.3 512 6.0 1024 0.0 2048 0.0 4096 0.0 8192 0.0 16384 0.0 32768 0.0