JS生成不重复随机数

说明

我们可以用Math.random()的方法轻松的生成 一个随机的数字,但是这个数字可能是重复的。有时候,我们需要一个不重复的随机数,可以用很多的方法来实现这个要求,以下方法是效率最高的。

解释

不重复的随机数往往是规定范围的,我们先声明一个在这个范围之内的数组,然后用sort方法对数组进行排序。而排序的方法里使用一个随机数,这个随机数使这个排序方法是不确定的。因此可以得到一个不重复的随机数组。

代码

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>随机不重复</title>
 6 <script type="text/javascript">
 7     var count = 10;
 8     //原始数组
 9     var original = new Array;
10     //给原始数组original赋值
11     for (var i = 0; i < count; i++) {
12         original[i] = i + 1;
13     }
14
15     var d1 = new Date().getTime();
16     //排序
17     original.sort(function() {
18         return 0.5 - Math.random();
19     });
20     //输出
21     for (var i = 0; i < count; i++) {
22         document.write(original[i] + " , ");
23     }
24     var d2 = new Date().getTime();
25     document.write("<br />运算耗时" + (d2 - d1));
26 </script>
27 </head>
28 <body>
29 </body>
30 </html>
时间: 2024-08-01 22:24:03

JS生成不重复随机数的相关文章

Java编程:实现双色球彩票生成器,生成不重复随机数

public static void main(String[] args) {  System.out.print("红色的号码为:");  Set<Integer> set=new HashSet<Integer>();  while (true) {   int i=(int)(Math.random()*33+1);   set.add(i);   if (set.size()>=6) {    break;   }  }  for (Object

mysql生成不重复随机数(unique number generation)

转自:http://blog.csdn.net/dreamer2020/article/details/52049629 问题来源 业务中有时会遇到要生成不重复随机数的情况,例如,新生成一个商品编号.房间编号.或者其他物品编号等.不愿意采用表的自增索引 id,同时又希望新生成的编号是不重复的. 这就需要考验mysql的随机数功能了. Solution mysql的rand函数可以生成一个0到1之间的随机数,进行一定的放大即可得到一个随机数.再通过条件查询来限制新随机数没有在表中出现过.如下所示:

JS生成不重复的随机数

// 定义存放生成随机数的数组 var array=new Array(); // 循环N次生成随机数 for(var i = 0 ; ; i++){     // 只生成10个随机数     if(array.length<10){           generateRandom(10);     }else{       break;    } } // 循环遍历随机数数组 for(var i = 0 ; i < array.length; i++){      alert(array[

生成不重复随机数函数

// 生成随机数函数 function createRandom(num,from,to) { var arr=[]; // 随机数数组 var json={}; // 标记json对象 while(arr.length<num) { // 产生单个随机数 var ranNum=Math.round(Math.random()*(to-from))+from; // 通过判断json对象的索引值是否存在 来标记 是否重复 if(!json[ranNum]) { json[ranNum]=1; a

C# Random 生成不重复随机数

Random 类 命名空间:System 表示伪随机数生成器,一种能够产生满足某些随机性统计要求的数字序列的设备. 伪随机数是以相同的概率从一组有限的数字中选取的.所选数字并不具有完全的随机性,因为它们是用一种确定的数学算法选择的,但是从实用的角度而言,其随机程度已足够了. 伪随机数的生成是从种子值开始.如果反复使用同一个种子,就会生成相同的数字系列.产生不同序列的一种方法是使种子值与时间相关,从而对于 Random 的每个新实例,都会产生不同的系列.默认情况下,Random 类的无参数构造函数

如何更快的生成不重复随机数思路

最新接到一个需求,由于运营需要我们需要在原用户的信息上加入一个邀请码用于推广. 略为思考一下,我们可以将需要拆分为一下几点: 1.邀请码为数字和字母组成6位的随机数 2.随机数不能重复 3.将数据与用户关联,插入数据库 -------------------------------------------------------------------- 解决思路: 生成随机数不表,大家应该都会 不重复如何解决呢,有同学想到先到数据库中做一次查询,如果没有该随机数再进行插入,如果有重新生成,做一

js 生成m位随机数入门实例

1.根据时间生成m位随机数,最大13位随机数,并且不能保证首位不为0. 例子: function ran(m) { m = m > 13 ? 13 : m; var num = new Date().getTime(); return num.toString().substring(13 - m); } console.log(ran(5)); 2.根据Math的random函数生成的随机数截取m位,生成随机数最大不超过16位,能保证首位不为0. 例子 function rand(m) { m

生成不重复随机数

利用C++中的bitset来检查生成的随机数是否重复.这样可以将内存空间的消耗降低,并且在每次检查是否重复时不用搜索整个序列. #include <iostream> #include <ctime> #include <bitset> using namespace std; #define MAX 101 int main(void) { bitset <MAX> flag; srand((unsigned)time(NULL)); for (int i

java中生成不重复随机数(据HashSet特性)

import java.util.HashSet; public class RandomNumbers { /** * 随机指定范围内N个不重复的数 利用HashSet的特征,只能存放不同的值 * * @param min * 指定范围最小值 * @param max * 指定范围最大值 * @param n * 随机数个数 * @param HashSet<Integer> * set 随机数结果集 */ public static void randomSet(int min, int