首页 > 编程语言 > 详细

产生指定范围不重复的随机数,产生指定数组不重复的随机数

时间:2019-08-29 15:21:18      阅读:108      评论:0      收藏:0      [点我收藏+]
/**
             *  产生指定范围不重复的随机数
             *  参数一: 最小值    int
             *  参数二: 最大值    int
             *  参数三: 随机数量  int
             *  返回值: 结果数组  Array
             **/
            function getRandNumForRange(least, max, num) {
                // 检查传值是否合法
                if(num > max - least) return false;
                // 产生指定范围的所有数值
                var numList = [],
                    numRandList = [],
                    randId;
                for(var i = least; i < max; i++) numList.push(i);
                // 产生记录次数
                for(var i = 0; i < num; i++) {
                    randId = Math.floor(Math.random() * numList.length); // 随机一个数组ID
                    numRandList.push(numList[randId]); // 获取这个值
                    numList.splice(randId, 1); // 删除这个成员 防止下次再次生成
                }
                return numRandList;
            }

            /**
             *  产生指定数组不重复的随机数
             *  参数一: 抽取数组  Array
             *  参数二: 随机数量  int
             *  返回值: 结果数组  Array
             **/
            function getRandNumForArray(numArray, num) {
                // 检查传值是否合法
                if(num > numArray.length) return false;
                // 产生记录次数
                var numRandList = [],
                    randId;
                for(var i = 0; i < num; i++) {
                    randId = Math.floor(Math.random() * numArray.length); // 随机一个数组ID
                    numRandList.push(numArray[randId]); // 获取这个值
                    numArray.splice(randId, 1); // 删除这个成员 防止下次再次生成
                }
                return numRandList;
            }

 

产生指定范围不重复的随机数,产生指定数组不重复的随机数

原文:https://www.cnblogs.com/1212dsa/p/11429507.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!