📅  最后修改于: 2023-12-03 15:31:46.546000             🧑  作者: Mango
在编写 JavaScript 应用程序时,我们经常需要使用随机数字生成器。随机数生成器可用于模拟数据、加密算法、游戏等多个用途。本文将讨论如何使用 JavaScript 生成随机数,并提供一些实用示例。
JavaScript 提供了 Math.random()
方法来生成伪随机数字,该数字在 0 到 1 之间,不包括 1。下面是使用 Math.random()
方法生成随机数字的示例:
const randomNum = Math.random();
console.log(randomNum);
这会在控制台输出一个介于 0 和 1 之间的伪随机数字。
为了生成一个介于 min
和 max
之间的随机数字,我们可以根据以下公式自定义一个函数:
function getRandomNumber(min, max) {
return Math.random() * (max - min) + min;
}
const randomNum = getRandomNumber(1, 10);
console.log(randomNum);
这个函数将返回一个介于 1 和 10 之间的随机数字。
然而,上述函数返回的随机数字可能包括浮点数值。如果您需要生成整数值,请将返回值取整:
function getRandomInteger(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
const randomNum = getRandomInteger(1, 10);
console.log(randomNum);
这个函数将返回一个介于 1 和 10 之间的随机整数。
以下示例模拟投硬币,并输出投掷次数和正面朝上的次数:
let tosses = 0;
let heads = 0;
let tails = 0;
while (tosses < 10) {
const randomNum = getRandomInteger(0, 1);
if (randomNum === 0) {
heads++;
console.log('Heads!');
} else {
tails++;
console.log('Tails');
}
tosses++;
}
console.log(`Heads: ${heads}, Tails: ${tails}, Total tosses: ${tosses}`);
以下示例是一个猜数字游戏。该游戏会随机生成一个介于 1 和 100 之间的数字,然后提示玩家猜测该数字,直到猜测正确:
const answer = getRandomInteger(1, 100);
let guess = -1;
let attempts = 0;
while (guess !== answer) {
guess = prompt('Guess a number between 1 and 100');
attempts++;
if (guess < answer) {
alert('Try a higher number');
} else if (guess > answer) {
alert('Try a lower number');
} else {
alert(`You guessed it in ${attempts} attempts!`);
}
}
本文讨论了如何使用 Math.random()
方法来生成随机数字,并提供了一些实用示例。请记住,Math.random()
方法只是生成伪随机数字的方法,并不能保证安全加密。随机性仍然受到计算机熵的限制。