生成 0 到“x"之间的唯一随机数(整数) [英] Generating unique random numbers (integers) between 0 and 'x'

查看:38
本文介绍了生成 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方法:

  • 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 (e.g. 10)
  • Round this number downward to its nearest integer

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆