On Tue, Feb 26, 2019 at 04:01:15PM +0100, Tom Sommer wrote:

> > # Picks smtp1 90% of the time, smtp2 10% of the time.
> > randmap:{smtp1,smtp1,smtp1,smtp1,smtp1,smtp1,smtp1,smtp1,smtp1,smtp2}
>
> True, that is a way - although a litte bit of a workaround; setting 93% 
> is a little bit of a mess :)

You'll probably find that 13 / 14 is close enough to 93%.

    $ echo "2k 100 13 * 14 / p " | dc
    92.85

More generally, if you're willing to limit yourself to even
percentiles, and mostly denominators up to 27, then the multiple
of 4 percentiles are just that fraction over 25 (reduced for multiples
of 20), while the rest can be well approximated via:

    02% ~  1 / 50 ~ 0.02
    06% ~  1 / 17 ~ 0.06
    10% ~  1 / 10 ~ 0.10
    14% ~  1 /  7 ~ 0.14
    18% ~  2 / 11 ~ 0.18
    22% ~  2 /  9 ~ 0.22
    26% ~  7 / 27 ~ 0.26
    30% ~  3 / 10 ~ 0.30
    34% ~  1 /  3 ~ 0.33
    38% ~  8 / 21 ~ 0.38
    42% ~  8 / 19 ~ 0.42
    46% ~  6 / 13 ~ 0.46
    50% ~  1 /  2 ~ 0.50
    54% ~  7 / 13 ~ 0.54
    58% ~ 11 / 19 ~ 0.58
    62% ~ 13 / 21 ~ 0.62
    66% ~  2 /  3 ~ 0.67
    70% ~  7 / 10 ~ 0.70
    74% ~ 20 / 27 ~ 0.74
    78% ~  7 /  9 ~ 0.78
    82% ~  9 / 11 ~ 0.82
    86% ~  6 /  7 ~ 0.86
    90% ~  9 / 10 ~ 0.90
    94% ~ 16 / 17 ~ 0.94
    98% ~ 49 / 50 ~ 0.98

With must 2% and 98% requiring a larger denominator of 50.  Postfix
won't suffer any performance loss choosing from a list of 50 or
less, and you can use a script to generate the randmap definition
for each desired percentile.

-- 
        Viktor.

Reply via email to