function myRand(start, end) {
return start + Math.round((Math.random() * (end - start)))
}
这个函数可以得到start到end之间(包括start和end)的随机数,然后根据随机数去点名
<script language="javascript">var num=13//假设有13个同学
var name=new array( )
var aaa=new array( )//定义两个数组
for(var i=0i<numi++){
name[i]=“姓名"+i
}//把同学名字放进name数组
for(var i = 0i<numi++)
{
var j = Math.floor((num-i)*Math.random())//获取小于13的随机数
aaa.push(name[j])//往aaa数组添加name数组的数据
name.splice(j,1)//把name数组里的数据删掉
}
document.write(aaa.join("<br>"))数组里每个元素增加一个换行。
</script>
不懂可追问。
可以给你一个思路在php有一个随机函数rand(min,max),min和max分表是设定的随机范围,当然可以不给他们值,那么php会在0-rand_max之间随机取值,在某些平台下(例如 Windows)RAND_MAX 只有 32768。
你可以先定义一个数组,然后循环取出随机的值,保存到数组里面,这么多数据,相信重复的概率是很小了。然后在取出的时候,先获取数组的长度,然后以0为min,数组长度-1为max进行随机获取数据,打印出数组中下标元素为该数的数据,这就是你想要的了。
JS中同上,不过JS随机是用Math.random(),它只会随机0-1之间的数据,所以你要获取多的,最好在后面*10000等你想要的数据,EG:Manth.random()*1000000,其它的原理同PHP
如果需要知道详细代码,请追问,谢谢。
建议自己先试试!