in reply to [OT] Normalizing the return result of an exponential formula

Based on your post and discussion with BrowserUk, my first thought is a Gaussian - see Normal_distribution. The functional form gives you a width parameter and the normalization is known, so it will satisfy your importance and radius requirements. You could probably implement your boost parameter by modifying the exponent on x. Perhaps something like:
#!/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

Update: Fixed typo in call order.

Replies are listed 'Best First'.
Re^2: [OT] Normalizing the return result of an exponential formula
by clinton (Priest) on Apr 14, 2011 at 18:09 UTC
    kennethk that looks like just the ticket! Many thanks