js 随机数

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5     <title></title>
 6     <meta charset="utf-8" />
 7     <script>
 8         //取值范围min-max;
 9         //能随机到min和max[min,max]
10         function rnd(min, max) {
11             var tmp = min;
12             if (max < min) { min = max; max = tmp; }//交换值
13             return Math.floor(Math.random() * (max - min + 1) + min); //向下取整
14         }
15         for (i = 0; i < 10; i++) {
16              document.write(rnd(5, 7)+"<br/>");
17         }
18 
19     </script>
20     <script>
21         //取值范围min-max;
22         //能随机到min 不能随机到max   [min,max)
23         function rnd(min, max) {
24             var tmp = min;
25             if (max < min) { min = max; max = tmp; }//交换值
26             return Math.floor(Math.random() * (max - min) + min); //向下取整
27         }
28         for (i = 0; i < 10; i++) {
29              document.write(rnd(1,5) + "<br/>");
30         }
31     </script>
32     <script>
33         //取值范围min-max;
34         //能随机到max 不能随机到min   (min,max]
35         function rnd(min, max) {
36             var tmp = min;
37             if (max < min) { min = max; max = tmp; }//交换值
38             return Math.ceil(Math.random() * (max - min) + min); //向上取整
39         }
40         for (i = 0; i < 10; i++) {
41             document.write(rnd(1, 5) + "<br/>");
42         }
43     </script>
44 
45     <script>
46         //取值范围min-max;
47         //不能随机到min和max(min,max)
48         function rnd(min, max) {
49             var tmp = min;
50             var temp;
51             if (max < min) { min = max; max = tmp; }//交换值
52             temp = Math.floor(Math.random() * (max - min + 1) + min); //向下取整
53             if (min == temp) {
54                 return min + 1;
55             } else {
56                 return temp;
57             }
58         }
59     </script> 
60     <!-- 
61         var a = max/min;              a = 7;
62         var xs = (a - 1);             xs = 7/1 - 1 = 6; 
63         var x=(max-1.0001)/min-1      x ((7-1.0001)/1)-1 = 5.9995;     x/xs = 5.9995/6 = 0.99991
64         (7 - 1) * (0.999 *(x/xs)))  = 6.9999   向上取整   ==6
65          1 + 6 * (0.1 *(x/xs))  = 1.09991   向上取整      ==2
66         原理是 最小数 + 最小数{(a-1)(随机数)(缩小比例x/xs)}
67         1(1+6)(0.999*0.9999) =       
68                 当min=1时候; a= max;
69         -->
70     <script>
71         function rnd(min,max){
72             var a = max / min;
73             var xs = (a - 1);
74             var x = (max - 1.0001) / min - 1;
75             return Math.ceil(min * (1 + (a - 1) * (Math.random() *(x/xs))));
76         }
77         for (i = 0; i < 100; i++) {
78             document.write("xxx开区间" + rnd(1,7) + "<br/>");
79         }
80 
81     </script>
82     <script>
83         function rnd() {
84 
85             return parseInt(Math.random()*5); //取整     随机最大取5; 取值范围 5*(99%到0%)的数 (同上类似)
86         }
87         for (i = 0; i < 10; i++) {
88             document.write(rnd() + "<br />");
89         }
90     </script></head>
91 <body>
92 
93 </body>
94 </html>

 

posted @ 2017-10-10 12:04  enych  阅读(238)  评论(0编辑  收藏  举报