Sunday, June 2, 2024
 Popular · Latest · Hot · Upcoming
0
rated 0 times [  7] [ 7]  / answers: 1 / hits: 18505  / 9 Years ago, wed, may 27, 2015, 12:00:00

Is it possible to get a random number between 1-100 and keep the results mainly within the 40-60 range? I mean, it will go out of that range rarely, but I want it to be mainly within that range... Is it possible with JavaScript/jQuery?



Right now I'm just using the basic Math.random() * 100 + 1.


More From » algorithm

 Answers
184

The simplest way would be to generate two random numbers from 0-50 and add them together.


This gives a distribution biased towards 50, in the same way rolling two dice biases towards 7.


In fact, by using a larger number of "dice" (as @Falco suggests), you can make a closer approximation to a bell-curve:


function weightedRandom(max, numDice) {
let num = 0;
for (let i = 0; i < numDice; i++) {
num += Math.random() * (max/numDice);
}
return num;
}

Weighted


JSFiddle: http://jsfiddle.net/797qhcza/1/


[#66444] Tuesday, May 26, 2015, 9 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
andrewb

Total Points: 259
Total Questions: 124
Total Answers: 90

Location: Ivory Coast
Member since Sun, Mar 7, 2021
3 Years ago
;