高效生成随机数并去重

//只适合生成随机不重复的纯num,var arr = [];function newRandomnum (num, firstRange, endRange){    var obj = {};    for(var i=0; i<num; i++){        var randomnum = parseInt(Math.random()*(endRange - firstRange)) + firstRange;        if(!obj[randomnum]){            obj[randomnum] = true;            arr.push(randomnum);        }else{            i--;        }    }

return arr;}

newRandomnum(40000, 600, 100000);console.log(arr);

//去重方法
function distinctArray(arr){    var obj={};    for(var i=0;i<arr.length;i++){        if(!obj[arr[i]]){            obj[arr[i]] =true;        }else{           arr.splice(i, 1);        }    }    return arr;}var testarr=[1,2,3,2];console.log(distinctArray(testarr));// [1,2,3]
				
时间: 2024-10-26 03:12:10

高效生成随机数并去重的相关文章

一起talk C栗子吧(第六回:C语言实例--生成随机数)

各位看官们,大家好,从今天开始,我们讲大型章回体科技小说 :C栗子,也就是C语言实例.闲话休提, 言归正转.让我们一起talk C栗子吧! 看官们,上一回中咱们说的是数组巧妙赋值的例子,这一回咱们说的例子是:生成随机数. 看官们学过C语言的话,还记得如何生成随机数吧.忘记了?那么我们一起说说.使用rand()函数可以生 成随机数,不过,它生成的随机数是一种伪随机数.因为重复执行程序的话,得到的随机数是一样.生成 随机数的函数是通过一个固定的数值来计算随机数的,我们可以通过srand()函数来指定

指定范围内生成随机数

随机数生成20~70之间的数值: public class Random { public static void main(String[] args) { java.util.Random r = new java.util.Random(); for (int i = 0; i < 10; i++) { System.out.print(" " + (r.nextInt(70) + 20)); } } } 运行结果如下图: 指定范围内生成随机数,布布扣,bubuko.com

生成随机数,统计个数,按序排列

有以下一个题目: (一)生成随机数可以用以下方法: 上面用了两种方法生成随机数, 1)采用Random类的nextInt(int a)方法,该方法返回 一个大于等于0且小于a的随机整数,再加上10,就是  10<=result<51等价于[10,50]. 2)采用Math.random()方法,该方法返回一个大于等于0且小于1的double类型的小数,然后再乘以41,经过强制类型转换再加10,就能得出[10,50]的随机数. 下面我们来解决上述的题目: 声明一个数组count,用了存放出现50

[小技巧] 在bash中生成随机数

译至:http://d.hatena.ne.jp/anmino/20091017/1255705586 bash的SHELL参数RANDOM可以生成0-32767的随机数.想设定从1到N的随机数范围的话,可以使用:$ ( ( (RANDOM % n) + 1 )) #!/bin/sh #random_bash.sh for n in 1 2 3 4 5 6 7 8 9 10; do random=$(( (RANDOM % 10) + 1 )) echo -n "$random " d

【转】利用matlab生成随机数函数

原文地址:利用matlab生成随机数函数 rand(n):生成0到1之间的n阶随机数方阵  rand(m,n):生成0到1之间的m×n的随机数矩阵 (现成的函数) betarnd:贝塔分布的随机数生成器 binornd:二项分布的随机数生成器 chi2rnd:卡方分布的随机数生成器 exprnd:指数分布的随机数生成器 frnd:f分布的随机数生成器 gamrnd:伽玛分布的随机数生成器 geornd:几何分布的随机数生成器 hygernd:超几何分布的随机数生成器 lognrnd:对数正态分布

真的了解js生成随机数吗

由js生成一切随机数的基础都是Math.random(),这个方法比较特别,生成的随机数落在的区间是[0,1),进行一次操作的话,js只能生成一个类似于[n,m)这样,左闭右开的区间.所以当有一些特殊需求的时候,就势必要进行一些其它的操作,下面对各种需求进行简单的分析: 生成任意区间的整数 全闭区间[n,m] 这种的最常见,大家都知道的那一长串公式:Math.floor(Math.random()*(m-n+1))+n; 就是生成这个全闭区间的方法.说到这个公式很多人都知道,但真正想明白的人估计

Shell脚本学习三:生成随机数

Linux中生成随机数可以使用$RANDOM这个变量. man bash命令查看对RANDOM的解释. RANDOM Each time this parameter is referenced, a random integer between 0 and 32767 is generated. 可以看出,$RANDOM生成的随机数范围在0到32767之间. 如果想要生成0到9之间的随机数,就可以对10取模运算,这样就可以得到0到9之间的随机数. [[email protected] ~]# 

kettle过滤、生成随机数、改变开始复制数量

下面是一个用Kettle实现数据过滤.生成随机数.改变开始复制数量的连贯示意图. 首先,我们将控件一一建立,通过hop建立连接 下面对每一个控件进行设置 1.生成随机数控件(随机取一个数字与字符串) 2.过滤控件 3.文本文件输出 4.改变开始复制的数量 这个功能实际的含义是:设置多少份的拷贝,开多少线程 例如:开20个线程,拷贝20份,那么单击控件“生成随机数”-------“改变开始复制的数量” 出现如下窗口 点击“确定”后,截图如下: 此时,点击下图按钮,---“快速启动”,即可预览 预览

js生成随机数的方法小结

js生成随机数主要用到了内置的Math对象的random()方法.用法如:Math.random().它返回的是一个 0 ~ 1 之间的随机数.有了这么一个方法,那生成任意随机数就好理解了.比如实际中我们可能会有如下的需要: (1)生成一个 0 - 100 之间的随机整数,那么则可以: parseInt(100*Math.random()); 注意:因为Math.random()的返回值是包括0和1的,所以这里是有生成0和100的可能性的. (2)生成一个从 m - n 之间的随机整数,例如要生