js生成一组随机数,找出最大数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js生成一组随机数,找出最大数相关的知识,希望对你有一定的参考价值。
var randomInt=function(min,max)//生成某个区间内的整数return min+Math.floor(Math.random()*(max-min+1))
;
var a=[];//临时数组
for(var i=0;i<=50;i++)//随机生成50个
a.push(randomInt(0,1000));
;
console.log(a);//显示这50个数字
console.log(Math.max.apply(Math,a));//从数组中找出最大的
关于Math.random:
Math.random()生成的随机数区间是[0-1);也就是生成的随机数包括0但不包括1
所以像我上面写的randomInt,如果取10-100之间的数,则流程是
10+Math.floor(Math.random()*91);
Math.floor(Math.random()*91)的结果最大是90,并不是91
所以那地方的代码是max-min+1,这就是加1的原因
参考技术A var test = function(sNum,eNum,count)var numArr = new Array();
for(var i=0;i<count;i++)
var num = Math.random() * (eNum - sNum) + sNum;
numArr.push(num);
var arr = bubbleSort(numArr);
return arr[0];
var bubbleSort = function(numArr)
var temp;
for(var i=0;i<numArr.length;i++)
for(var j=0;j<i;j++)
if(numArr[j]<numArr[i])
temp = numArr[i];
numArr[i] = numArr[j];
numArr[j] = temp;
return numArr;
var result = test(1,100,10);//1-100中随机生成10个数,找出最大的
result;
编程:如何生成一组随机数字?
向各位朋友请教这个问题,分数少了些,不好意思,望各位能给予解答。十分感谢,谢谢 谢谢。
可选数字:1-45
要求随机生成一组数字,6个或者7个数字,不重复。
就好像 35选7 的彩票那样,用VB、ASP编写都可以,或者HTML里面写代码也可以。
============================
公司的同事帮忙写出了该代码.HTML的.思路不一样,写法不一样,我决定贴出来,不知是否涉及版权问题......
当然了,我个人十分感谢阳光、狗狗乖和koubuntei,谢谢几位花时间留意这个帖子。谢谢!
我是沈阳何氏眼科的一名网络管理员,简单对代码加了一点注释。下面我就把我们程序员写的代码贴出来,希望大家以后有好东西要分享哦。
=======================================================
代码地址: http://zhidao.baidu.com/question/50348072.html
<script language=javascript>
for (i=1;i<=6;i++) document.write(parseInt(Math.random()*45)+1,'<br>');
</script>
以上程序存为ASP或者HTML代码,每次打开页面会生成6个1~45的数字。
补充:
下面的代码可以解决重复的问题,我把1~46存放到数组a[0]~a[45]中,每次产生的随机数只是数组的下标,并且取过的数字移动到数组最后。
<script language=javascript>
var a=new Array();
for (i=0;i<46;i++) a[i]=i+1;
for (i=0;i<6;i++)
k=a.length-i;
j=parseInt(Math.random()*k);
x=a[j];
a[k]=a[j];
a[j]=x;
document.write(a[k],'<br>');
</script> 参考技术B 阳光虽然我很敬佩你 但是你的答案是错的 因为会重复 为了重复的问题我多写了几分钟 然后你就答了
我用ASP实现:
<%
dim t,a,i,k
t="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45"
t1=split(t,",")
for i=1 to 20 '放大循环
Randomize
a=int(rnd()*45+1)
if instr(num,a) then a=46 '设为不可能值
for j=0 to UBound(t1)
if j=a then
num=num& " " & j
k=k+1
if k=7 then
response.write num '输出
response.end
end if
end if
next
next
%>本回答被提问者采纳 参考技术C <%
dim t,a,i,k
t="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45"
t1=split(t,",")
for i=1 to 20 '放大循环
Randomize
a=int(rnd()*45+1)
if instr(num,a) then a=46 '设为不可能值
for j=0 to UBound(t1)
if j=a then
num=num& " " & j
k=k+1
if k=7 then
response.write num '输出
response.end
end if
end if
next
next
%> 参考技术D dim arr(7)
function getRandom
Randomize
getRandom = Int((45 * Rnd) + 1)
end function
function verifyRan(arr,rand)
dim flag
flag=true
for j=0 to ubound(arr)
if arr(j) = rand and arr(j) <> "" then
flag = false
end if
next
verifyRan = flag
end function
for i=0 to 6
random = getRandom
if verifyRan(arr,random) then
arr(i) = random
else
i = i-1
end if
next
for i=0 to 6
response.Write(arr(i)&"<br>")
next
以上是关于js生成一组随机数,找出最大数的主要内容,如果未能解决你的问题,请参考以下文章