生成0到'x'之间的唯一随机数(整数) [英] Generating unique random numbers (integers) between 0 and 'x'
本文介绍了生成0到'x'之间的唯一随机数(整数)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要生成一组唯一(无重复)整数,并且在0和给定数字之间。
I need to generate a set of unique (no duplicate) integers, and between 0 and a given number.
即:
var limit = 10;
var amount = 3;
如何使用Javascript生成1到10之间的3个唯一数字?
How can I use Javascript to generate 3 unique numbers between 1 and 10?
推荐答案
使用基本的数学
方法:
-
Math.random()
返回0到1之间的随机数(包括0,不包括1)。 - 将此数字乘以所需的最高数字(例如10)
-
收起此数字
Math.random()
returns a random number between 0 and 1 (including 0, excluding 1).- Multiply this number by the highest desired number (eg 10)
Round this number
Math.floor(Math.random()*10) + 1
示例:
//Example, including customisable intervals [lower_bound, upper_bound)
var limit = 10,
amount = 3,
lower_bound = 1,
upper_bound = 10,
unique_random_numbers = [];
if (amount > limit) limit = amount; //Infinite loop if you want more unique
//Natural numbers than exist in a
// given range
while (unique_random_numbers.length < limit) {
var random_number = Math.floor(Math.random()*(upper_bound - lower_bound) + lower_bound);
if (unique_random_numbers.indexOf(random_number) == -1) {
// Yay! new random number
unique_random_numbers.push( random_number );
}
}
// unique_random_numbers is an array containing 3 unique numbers in the given range
这篇关于生成0到'x'之间的唯一随机数(整数)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文