前几天在淘宝上买双色球,发现上面有个自动选号的功能,用着不错,做起来感觉也应该是比较简单的,于是就打算自己做一个。由于没有考虑周全,第一个程序虽然做出来了,却发现有很多bug,第一个是生成的结果有相同的数字,第二个生成的结果不能自动排列。
实际上它是一个很简单的问题,在一定的范围内,随机取出几个数字就行了,最重要的是取出结果之后,对相同数字的判断和排序。
首先是相同数字的判断,可以这样做,生成一个数组,每次从这个数组中随机拿出一个结果,然后删除数组的这个元素,去除的数字就不会重复;排序方面的话,可以把取出的数字组合成数组,然后利用Javascript数组的sort()进行排序,就OK了。
<script> function getrand1(min,max,size){ var len=max-min+1; var arr=new Array(); for (var i=0;i<len;i++){ arr[i]=min+i; } var res=new Array(); for (var i=0;i<size;i++){ var randkey=Math.floor(Math.random()*arr.length); res[i]=arr[randkey]; arr.splice(randkey,1) } function sortnum(a,b){ return a - b; } return res.sort(sortnum); } document.write("红球 "+getrand1(1,33,6)+"<br/>"); document.write("篮球 "+getrand1(1,16,1)+"<br/>"); </script>