* [Guide] Basic JS: Random numbers within range. Enhancements Added code solution, explanation, resources and other minor fixes. * Additional fix; list. * update: created ordered list of calculation
2.2 KiB
2.2 KiB
title
| title |
|---|
| Generate Random Whole Numbers within a Range |
Generate Random Whole Numbers within a Range
Problem explanation:
Create a function called randomRange that takes a range myMin and myMaxand returns a random number that's greater than or equal to myMin, and is less than or equal to myMax, inclusive.
Hint 1
randomRange should use both myMax and myMin, and return a random number in your range.
You cannot pass the test if you are only re-using the function ourRandomRange inside your randomRange formula. You need to write your own formula that uses the variables myMax and myMin. It will do the same job as using ourRandomRange, but ensures that you have understood the principles of the Math.floor() and Math.random() functions.
try to solve the problem now
Spoiler alert!
Solution ahead!
Basic code solution:
function randomRange(myMin, myMax) {
return Math.floor(Math.random() * (myMax - myMin + 1) + myMin);
}
· Run code at repl.it.
Code explanation
Math.random()generates our random number between 0 and ≈ 0.9.- Before multiplying it, it resolves the part between parenthesis
(myMax - myMin + 1)because of the grouping operator( ). - The result of that multiplication is followed by adding
myMinand then "rounded" to the largest integer less than or equal to it (eg: 9.9 would result in 9)
If the values were myMin = 1, myMax= 10, one result could be the following:
Math.random() = 0.8244326990411024(myMax - myMin + 1) = 10 - 1 + 1 -> 10a * b = 8.244326990411024c + myMin = 9.244326990411024Math.floor(9.244326990411024) = 9