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>

 

转载于:https://www.cnblogs.com/fishyao/p/RandomNumber.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值