Probability distribution of product of integers

339 Views Asked by At

I have a scoring system based on 5 factors with integer values from 1 to 5:

Score = A * B * C * D * E

So the Score can range from 1 to 3125. Each of the factors is uniformly distributed between 1 and 5. I want to find a way to partition the results into 5 ranges so that the probability of a score in each range is equal.

Because the final values for Score are only integers with prime factors 2, 3, and 5, the distribution of possible scores is weighted heavily toward low numbers. I did a simple graph in Excel and it looks like a Poisson or Gamma distribution, but that's just an uneducated guess.

Simply put, I want a way to say, "This score is between X and Y, so it is in the 2nd quintile of all scores."

2

There are 2 best solutions below

1
On BEST ANSWER

Brute force gives quintile breaks at $40, 90, 180, 360$. These are far from exact breaks. That patter 90,180,360 seems like something interesting might be going on.

Specifically, there are 657 ways to get numbers from $1$ to $40$. There are $1257$ ways to get numbers from $1$ to $90$. There are $1922$ ways to get numbers from $1$ to $180$, and there are $2503$ ways to get numbers from $1$ to $360$.

The raw data. The count is the number of ways to get this value or less, so there are $31$ ways to get a value of $5$ or less.

$$\begin{matrix}\text{Count}&\text{Value}\\ 1& 1\\6& 2\\11& 3\\26& 4\\31& 5\\51& 6\\81& 8\\91& 9\\111& 10\\161& 12\\181& 15\\226& 16\\256& 18\\306& 20\\386& 24\\396& 25\\406& 27\\466& 30\\517& 32\\577& 36\\657& 40\\687& 45\\782& 48\\812& 50\\832& 54\\9 52& 60\\997& 64\\1067& 72\\1097& 75\\1192& 80\\1197& 81\\1257& 90\\1337& 96\\1397& 100\\1427& 108\\1567& 120\\1577& 125\\1607& 128\\1627& 135\\1687& 144\\1747& 150\\1827& 160\\1832& 162\\1922& 180\\1972& 192\\2042& 200\\2062& 216\\2092& 225\\2212& 240\\2213& 243\\2233& 250\\2248& 256\\2268& 270\\2298& 288\\2388 & 300\\2438& 320\\2443& 324\\2503& 360\\2523& 375\\2543& 384\\2603& 400\\2608& 405\\2618& 432\\2648& 450 \\2708& 480\\2738& 500\\2743& 512\\2763& 540\\2773& 576\\2833& 600\\2838& 625\\2858& 640\\2868& 675\\289 8& 720\\2918& 750\\2923& 768\\2953& 800\\2983& 900\\3003& 960\\3023& 1000\\3024& 1024\\3034& 1125\\3064& 1200\\3069& 1250\\3074& 1280\\3094& 1500\\3104& 1600\\3109& 1875\\3119& 2000\\3124& 2500\\3125& 3125 \end{matrix}$$

0
On

The problem in this case is that since the numbers you're multiplying can be the same, there are many possible ways how to express a single product value. For example, there are 80 ways how to express 40 as the product of five numbers from 1 to 5. The chance that the boundaries of quintiles will fall between different product values is very small, and it is indeed this case. Just to test the idea, I made a small Haskell program to produce all possible values:

import Control.Applicative
import Data.List (sort)

scores = sort $ prod <$> xs <*> xs <*> xs <*> xs <*> xs where
    prod a b c d e = a * b * c * d * e
    xs = [1..5]

And confirmed the boundaries of the 1st and 2nd quintile contain the same value:

> scores !! 624
40
> scores !! 625
40

So if you put the boundary between 1st and 2nd quintile to be $\geq 40$, the 1st quintile will be too small. And if you put it to be $> 40$, it will be too large.