**2**

# Gradient Weighted random number

Started by treeway, Oct 05 2011 03:31 AM

3 replies to this topic

###
#2
Members - Reputation: **605**

Posted 05 October 2011 - 07:33 AM

Random number generators generating values between zero and one with an uniform distribution are common. You can take the squared output of such a generator, and then use to to scale the vector (B-A) and add it to A.

In pseudocode:

In pseudocode:

uniformRand = rand(); outputPoint = A + uniformRand*uniformRand * (B-A);

###
#3
Crossbones+ - Reputation: **7837**

Posted 05 October 2011 - 08:32 AM

It sounds like you need to generate random numbers on a geometric or exponential distribution. If you're using C++ and your development environment supports the current ISO standard, you can just use std::geometric_distribution or std::exponential_distribution from <random>. If you're not in that situation, you can try to write them yourself, it's not that difficult.I have two points (A,B) and I want to create a set of random points between the two, such that most points are close to A and the number of points decreases linearly towards B. Does anyone know a simple way to solve this?

*Stephen M. Webb*

Professional Free Software Developer