1. js如何实现多次计算随机数
<scripttype="text/javascript">
vararr=newArray(4);
for(vari=0;i<arr.length;i++){
varrandomvalue=Math.round(Math.random()*10);
arr[i]="pic/Sky/"+randomvalue+".jpg";
}
$(document).ready(function(){
$('.demoo').bgStretcher({
images:arr,
slideDirection:'N',
slideShowSpeed:1000,
transitionEffect:'fade',
sequenceMode:'normal',
});
});
</script>
2. 请使用Javascript生成10个20~200之间的随机数,要确保生成的随机数不重复.
vararr=[];
functionrec(r,i){
for(varj=0;j<i;j++){
if(r==arr[j]){
r=Math.floor(Math.random()*(200-20+1)+20);
rec(r,i);
break;
}
}
if(j==i){
arr.push(r);
}
}
functionrandom(){
for(vari=0;i<10;i++){
varr=Math.floor(Math.random()*(200-20+1)+20);
i==0&&arr.push(r);
if(i>0){
rec(r,i);
}
}
console.log(arr);
}
random();
运用了递归排除重复复制的可能,10个数重复的可能性很小,你可以生成更多数测试,是不会出现重复数字的
生成的10个随机数
3. js 随机生成不同的数
建议先生成一个33的数组
var reds=setnum(33);//红球
var blues=setnum(16);//蓝球
var items=[];
while(items.length<6){
var index=rang(1,reds.length);
if(reds[index]!=0){
items.push(index);
reds[index]=0;
}
}
alert(items) // 这样就获取到了 随机的6个红球
//产生随机数
function rang(min,max){
var cur=max-min+1;
return Math.floor(Math.random()*cur+min);
}
//生成球
function setnum(n){
var numbs=[];
for(var i=1;i<=n;i++){
numbs.push(i);
}
return numbs;
}
//完全手敲 有错误请见谅 希望多你有所帮助
4. 使用js Math.random()函数生成n到m间的随机数字
摘要:
本文讲解如何使用js生成n到m间的随机数字,主要目的是为后期的js生成验证码做准备。
Math.random()函数返回0和1之间的伪随机数,可能为0,但总是小于1,[0,1)
生成n-m,包含n但不包含m的整数:
第一步算出
m-n的值,假设等于w
第二步Math.random()*w
第三步Math.random()*w+n
第四步parseInt(Math.random()*w+n,
10)
生成n-m,不包含n但包含m的整数:
第一步算出
m-n的值,假设等于w
第二步Math.random()*w
第三步Math.random()*w+n
第四步Math.floor(Math.random()*w+n)
+
1
生成n-m,不包含n和m的整数:
第一步算出
m-n-2的值,假设等于w
第二步Math.random()*w
第三步Math.random()*w+n
+1
第四步Math.round(Math.random()*w+n+1)
或者
Math.ceil(Math.random()*w+n+1)
生成n-m,包含n和m的随机数:
第一步算出
m-n的值,假设等于w
第二步Math.random()*w
第三步Math.random()*w+n
第四步Math.round(Math.random()*w+n)
或者
Math.ceil(Math.random()*w+n)
例子:
生成800-1500的随机整数,包含800但不包含1500
复制代码
代码如下:
1500-800
=
700
Math.random()*700
var
num
=
Math.random()*700
+
800;
num
=
parseInt(num,
10);
只需要简单的四步就可以完成。
补充:
Math.ceil()
返回大于等于数字参数的最小整数(取整函数),对数字进行上舍入
Math.floor()
返回小于等于数字参数的最大整数,对数字进行下舍入
Math.round()
返回数字最接近的整数,四舍五入
5. 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.length>0) {
//在数组中产生一个随机索引
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);
}
6. js中如何同时产生八个不同的随机数
js中的random()方法能够产生随机数,要产生8个就循环8次就行了,这没别的方法!
7. javascript如何产生60-100的随机数
var hehe = Math.floor(Math.random()*41)+60;
alert(hehe);
Math.random()产生的随机数范围为0~1的数字,但请注意随机数不含1,即范围为[0,1),所以这里内数字(Math.random()*41)应该容为41而不是40.
8. 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;i<n;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="http://libs..com/jquery/1.9.0/jquery.js"></script>
<title>挑战题</title>
</head>
<body>
<ul>
<li>0</li>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</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!=ran2&&ran1!=ran2&&ran2!=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]区间随机数,比较是否重复,如重复则返回,再次执行。
演示地址:http://jsbin.com/yupuyehuqa/edit?html,js,output
封装函数:
function my_ran(n,min,max){
var arr=[];
for(i=0;i<n;i++){
arr[i]=parseInt(Math.random()*(max-min+1)+min);
}
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
if(arr[i]==arr[j]){
my_ran(n,min,max);
return fault;
}
}
}
return arr;
}
思路二:生成第i个[min,max]区间的随机数,并与之前i-1个数比较,如有重复,令i=i-1;重复生成第i个随机数。
演示地址:http://jsbin.com/zorunotosi/edit?html,js,output
封装函数:
function my_ran2(n,min,max){
var arr=[];
for(i=0;i<n;i++){
arr[i]=parseInt(Math.random()*(max-min+1)+min);
for(j=0;j<i;j++){
if(arr[i]==arr[j]){
i=i-1;
break;
}
}
}
return arr;
}
思路三:生成[min,max]区间的一个顺序数组,打乱数组,输出前n个值。
演示地址:http://jsbin.com/zorunotosi/edit?html,js,output
封装函数:
function my_ran3(n,min,max){
var arr=[];
var arr2=[];
for(i=0;i<max-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;i<n;i++){
arr2[i]=arr[i];
}
return arr2;
}
思路四:生成[min,max]区间的一个顺序数组,从中随机选出一个值,然后在数组中删掉这个值,再选第二个随机值。
演示地址:http://jsbin.com/zorunotosi/edit?html,js,output
封装函数:
function my_ran4(n,min,max){
var arr=[];
var arr2=[];
for(i=0;i<max-min+1;i++){
arr[i]=i+min;
}
for(i=0;i<n;i++){
var x=parseInt(Math.random()*arr.length);
arr2[i]=arr[x];
for(j=x;j<arr.length;j++){
arr[j]=arr[j+1];
}
arr.length=arr.length-1;
}
return arr2;
}
9. js 取多个随机数
varbackgroundColorArray=["red","green","violet","peachy","brown","blue"];
varbackgroundColor="t-"+backgroundColorArray[Math.floor(Math.random()*5)];
varbackgroundPic="t-pattern-"+Math.floor(Math.random()*9+1);
document.body.className=backgroundColor+""+backgroundPic;
10. 怎么用JavaScript生成一个数组,数组里有十个随机数。并且不重复。数字
还有这种方式:
var arr = [];
var a = 0;
console.log(arr.length)
while(arr.length<10){
var count=0;
var integer = Math.ceil(Math.random()*10);
for(var i = 0; i<arr.length; i++){
if (integer==arr[i]) {
count++;
}
}
if (count==0) {
arr.push(integer);
}
a++;
}
console.log(arr);
性能不咋滴,自己想的,挺锻炼逻辑思维的