Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Say I have a function function $f(x)$ returning any real between 0 and 1, for a $x$ between 0 and 1.

I want to get $n$ randomly generated values of $x$, based the probablity they occur from $f(x)$.

Example: If $n=5$, and $f(x)$ described a direct ascending line from 0 to 1, I could get $x_1=0.8$, $x_2=0.7$, $x_3=0.75$, $x_4=0.4$, $x_5=0.3$.

Basically, the higher $f(x)$, the more the random value tends to $x$.

Any idea how to achieve that?

share|cite|improve this question
Do you intend $f$ to be proportional to a probability distribution? Are you looking for an implementable algorithm or just an abstract definition (with perhaps nicer theoretical properties)? – Henning Makholm Jan 15 '12 at 20:47
Question makes no sense to me. You write "$x$ between $0$ and $1$," and $f(x)$ returns a "real between $0$ and $1$," so where are you getting $x_1=4$, $x_2=3.5$, etc.? Those numbers are not between $0$ and $1$. – Gerry Myerson Jan 15 '12 at 20:53
I'm looking for an implementable algorithm. I think I do intend $f$ to be proportional to a probability distribution, but I'm not sure what any other option would be? – Lazlo Jan 15 '12 at 20:53
Oops, you're right Gerry. I'll divide these by 5. – Lazlo Jan 15 '12 at 22:43
If you can find the antiderivative of $f$, you can use inverse transform sampling (after appropriately rescaling it so that the antiderivative goes from $0$ to $1$ over $[0,1]$). – Rahul Jan 15 '12 at 22:53

I think I finally understand the question: you want $n$ samples from a random variable whose probability density function is (proportional to) $f(x)$. There is a lot of literature on this problem, and now that I have given you the keywords and keyphrases to look for, you may be able to find what you need and report back to us.

share|cite|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.