js随机数,js随机数生成

http://www.itjxue.com  2023-01-22 09:37  来源:未知  点击次数: 

用javascript做一个产生0-10的随机数

产生0-10的随机数主要有两种方法

用Math.random函数来实现

parseInt(10*Math.random())

写一个方法,通过传值来实现,这样方便扩展

/**

* 产生一个数组,数组的值是min到max之间的数,随机排列

function RandomArr(Min, Max) {

var array = new Array();

var cha=Max-Min;

for (var i = 0; ; i++) {

if (array.length cha) {

//产生随机数 0到count不包含count的随机数

var randomNub = Min+(Math.floor(Math.random() * cha));

//Jquery判断数组array中是否包含元素randomNub

if (-1 == $.inArray(randomNub, array)) {

array.push(randomNub);

}

}else{

break;

}

}

return array;

}

//这里是0-10之间的数,不包含10

var array=RandomArr(0,10);

js如何生成指定范围内的随机数

function getarrayitems(arr, num) {

//新建一个数组,将传入的数组复制过来,用于运算,而不要直接操作传入的数组;

var temp_array = new array();

for (var index in arr) {

temp_array.push(arr[index]);

}

//剔除一些数字

//取出的数值项,保存在此数组

var return_array = new array();

for (var i = 0; i

//判断如果数组还有可以取出的元素,以防下标越界

if (temp_array.length0) {

//在数组中产生一个随机索引

var arrindex = math.floor(math.random()*temp_array.length);

//将此随机索引的对应的数组元素值复制出来

return_array[i] = temp_array[arrindex];

//然后删掉此索引的数组元素,这时候temp_array变为新的数组

temp_array.splice(arrindex, 1);

} else {

//数组中数据项取完后,退出循环,比如数组本来只有10项,但要求取出20项.

break;

}

}

return return_array;

}

var my_array = new array();

for (i = min; i max; i++) //max,min指定范围

{

my_array[i] = i;

}

my_array = getarrayitems(my_array,1000); //得到数组

function rand(u,d){

++d;

return parseint(math.random()*(u-d)+d);

}

js生成随机数之random函数随机示例

js生成随机数可以使用JavaScript

Math.random()内置函数,下面有个不错的示例,大家可以尝试操作下

JavaScript

Math.random()内置函数

random函数返回值

返回0和1之间的伪随机数,可能为0,但总是小于1,[0,1)

random函数示例

//返回随机数

document.write(Math.random());

//返回10-20的随机数

document.write(Math.random()*(20-10)+10);

//返回指定范围的随机数(m-n之间)的公式

document.write(Math.random()*(n-m)+m);

基于时间,亦可以产生随机数

代码如下:

var

now=new

Date();

var

number

=

now.getSeconds();

//这将产生一个基于目前时间的0到59的整数。

var

now=new

Date();

var

number

=

now.getSeconds()%43;

//这将产生一个基于目前时间的0到42的整数。

Js怎么产生随机数?

js可以用Math.random()函数产生随机数,这里以产生1到5之间的随机数为例。

1、产生最小到最大之间的函数,包括最小值和最大值,即“min ≤ r ≤ max”:

2、产生最小到最大之间的函数,包括最小值但不包括最大值,即“min ≤ r max”:

3、产生最小到最大之间的函数,不包括最小值但包括最大值,即“min r ≤ max”:

4、产生最小到最大之间的函数,不包括最小值和最大值,即“min r max”:

js生成固定数量的随机数,如果已经存在几个,则生成剩余数量的数

js生成随机数主要用到了内置的Math对象的random()方法。用法如:Math.random()。它返回的是一个 0 ~ 1

之间的随机数。有了这么一个方法,那生成任意随机数就好理解了。比如实际中我们可能会有如下的需要:

(1)生成一个 0 - 100 之间的随机整数,那么则可以:

parseInt(100*Math.random());

注意:因为Math.random()的返回值是包括0和1的,所以这里是有生成0和100的可能性的。

(2)生成一个从 m - n 之间的随机整数,例如要生成一个 5 - 15

之间的随机数,则可以:

parseInt(Math.random()*(15-5+1) + 5);

概括即为:

parseInt(Math.random()*(n-m+1)+m);//生成一个从 m - n 之间的随机整数

另外根据需要总结了另外两种常用到的方法,如下:

(3)生成指定位数的随机整数

function randomNum(n){

var t='';

for(var i=0;in;i++){

t+=Math.floor(Math.random()*10);

}

return t;

}

(4)生成指定范围内的随机整数

function randomNum(minNum,maxNum){

switch(arguments.length){

case 1:

return parseInt(Math.random()*minNum+1);

break;

case 2:

return parseInt(Math.random()*(maxNum-minNum+1)+minNum);

break;

default:

return 0;

break;

}

}

例如生成 2 - 9之间的随机整数,则:randomNum(2,9),生成 1 - 22之间随机整数,则:randomNum(22)

①从0~6中生成3个随机数。

②判断3个随机数是否相等,不相等则执行隐藏操作。

③3随机数有重复,则重新执行函数。

实现:生成0~6的一个随机数

复制代码

代码如下:

var ran1=parseInt(Math.random()*7);

//Math.random()生成[0,1)的一个随机数

完整代码:

!DOCTYPE html

html

head

meta http-equiv="Content-Type" content="text/html; charset=utf-8" /

script language="javascript" type="text/javascript" src=""/script

title挑战题/title

/head

body

ul

li0/li

li1/li

li2/li

li3/li

li4/li

li5/li

li6/li

li7/li

/ul

a id="btn" onclick="cli()"简化/a

/body

script

$(function cli(){

$("#btn").css("cursor","pointer");

if($("#btn").html()=="简化"){

var ran1=parseInt(Math.random()*7);

var ran2=parseInt(Math.random()*7);

var ran3=parseInt(Math.random()*7); //①从0~6中生成3个随机数完成

if(ran1!=ran2ran1!=ran2ran2!=ran3){ //②判断3个随机数是否相等,不相等则执行操作。

$('li:eq('+ran1+')').css('display','none');

$('li:eq('+ran2+')').css('display','none');

$('li:eq('+ran3+')').css('display','none');

$("#btn").html("更多");

}else{//③3随机数有重复,则重新执行函数。

cli();

}

}

else{

$("li:hidden").css('display','list-item');

$("a:contains('更多')").html("简化");

}

});

/script

/html

收获一:

复制代码

代码如下:

var

ran=parseInt(Math.random()*(max-min+1)+min); //生成一个[min,max]区间的一个随机数

收获二:

反思了下,决定写个在一定[min,max]区间,生成n个不重复的随机数的封装函数。

思路一:先生成n个[min,max]区间随机数,比较是否重复,如重复则返回,再次执行。

演示地址:

封装函数:

function my_ran(n,min,max){

var arr=[];

for(i=0;in;i++){

arr[i]=parseInt(Math.random()*(max-min+1)+min);

}

for(i=0;in;i++){

for(j=i+1;jn;j++){

if(arr[i]==arr[j]){

my_ran(n,min,max);

return fault;

}

}

}

return arr;

}

思路二:生成第i个[min,max]区间的随机数,并与之前i-1个数比较,如有重复,令i=i-1;重复生成第i个随机数。

演示地址:

封装函数:

function my_ran2(n,min,max){

var arr=[];

for(i=0;in;i++){

arr[i]=parseInt(Math.random()*(max-min+1)+min);

for(j=0;ji;j++){

if(arr[i]==arr[j]){

i=i-1;

break;

}

}

}

return arr;

}

思路三:生成[min,max]区间的一个顺序数组,打乱数组,输出前n个值。

演示地址:

封装函数:

function my_ran3(n,min,max){

var arr=[];

var arr2=[];

for(i=0;imax-min+1;i++){

arr[i]=i+min;

}

for(var j,x,i=arr.length;i;j=parseInt(Math.random()*i),x=arr[--i],arr[i]=arr[j],arr[j]=x);

for(i=0;in;i++){

arr2[i]=arr[i];

}

return arr2;

}

思路四:生成[min,max]区间的一个顺序数组,从中随机选出一个值,然后在数组中删掉这个值,再选第二个随机值。

演示地址:

封装函数:

function my_ran4(n,min,max){

var arr=[];

var arr2=[];

for(i=0;imax-min+1;i++){

arr[i]=i+min;

}

for(i=0;in;i++){

var x=parseInt(Math.random()*arr.length);

arr2[i]=arr[x];

for(j=x;jarr.length;j++){

arr[j]=arr[j+1];

}

arr.length=arr.length-1;

}

return arr2;

}

(责任编辑:IT教学网)

更多