如何用 JavaScript 在两个数字之间生成一个随机数
Moataz Farid
2023年10月12日
本教程将学习如何用 JavaScript 在两个数字之间生成一个随机数。我们将使用 Math.random()
方法在 0.0
和 0.999
之间生成一个随机浮动数。
在 JavaScript 中生成 1 和用户定义值之间的随机数
我们可以在 JavaScript 中使用随机数生成器-Math.random()
,通过将生成的浮点数与我们想要生成的最大数字相乘来生成一个随机数。Math.random()* max
生成一个 0 和 max
之间的随机数。
function generateRandom(max) {
return Math.random() * max;
}
console.log('1st try: ' + generateRandom(5));
console.log('2nd try: ' + generateRandom(5));
console.log('3rd try: ' + generateRandom(5));
console.log('4th try: ' + generateRandom(5));
输出:
1st try: 3.3202340813091347
2nd try: 1.9796467067025836
3rd try: 3.297605748406279
4th try: 1.1006700756032417
如果我们只想得到整数格式的结果,我们可以使用 Math.floor()
,这个方法返回小于或等于输入数的最大整数。
console.log(Math.floor(1.02));
console.log(Math.floor(1.5));
console.log(Math.floor(1.9));
console.log(Math.floor(1));
输出:
1
1
1
1
通过使用 Math.floor()
方法,我们可以得到随机生成的整数。
function generateRandomInt(max) {
return Math.floor(Math.random() * max);
}
console.log('1st Integer try: ' + generateRandomInt(9));
console.log('2nd Integer try: ' + generateRandomInt(9));
console.log('3rd Integer try: ' + generateRandomInt(9));
console.log('4th Integer try: ' + generateRandomInt(9));
输出:
1st Integer try: 8
2nd Integer try: 5
3rd Integer try: 7
4th Integer try: 0
用 JavaScript 在两个数字之间生成一个随机数
如果我们还想有一个用户定义的最小值,我们需要将 Math.random() * max
的公式改为 Math.random() * (max-min)) +min
。使用该等式,返回值是介于 min
和 max
之间的随机数。
function generateRandomInt(min, max) {
return Math.floor((Math.random() * (max - min)) + min);
}
console.log('1st min and max try: ' + generateRandomInt(2, 9));
console.log('2nd min and max try: ' + generateRandomInt(2, 9));
console.log('3rd min and max try: ' + generateRandomInt(2, 9));
console.log('4th min and max try: ' + generateRandomInt(2, 9));
输出:
1st min and max try: 6
2nd min and max try: 2
3rd min and max try: 8
4th min and max try: 3
如果我们有兴趣让 max
值包含在我们的随机发生器范围内,我们需要将等式改为 (Math.random() * (max+1 - min)) +min
。在 max-min
上加 1 将包括范围内的最大值,而 Math.floor()
将始终保证该值不超过 max
。
function generateRandomInt(min, max) {
return Math.floor((Math.random() * (max + 1 - min)) + min);
}
console.log('1st min and max included try: ' + generateRandomInt(2, 9));
console.log('2nd min and max included try: ' + generateRandomInt(2, 9));
console.log('3rd min and max included try: ' + generateRandomInt(2, 9));
console.log('4th min and max included try: ' + generateRandomInt(2, 9));
输出:
1st min and max included try: 3
2nd min and max included try: 7
3rd min and max included try: 9
4th min and max included try: 6