(new util.Random).nextInt(n)
返回一个0-n(不包括n) 的随机数
好比:数组
scala> (new util.Random).nextInt(3) res7: Int = 1
返回一个[0, 2]的随机数dom
scala生成一组不重复的随机数
一、循环获取随机数,再到 list中找,若是没有则添加scala
def randomNew(n:Int)={ var resultList:List[Int]=Nil while(resultList.length<n){ val randomNum=(new Random).nextInt(20) if(!resultList.exists(s=>s==randomNum)){ resultList=resultList:::List(randomNum) } } resultList }
这种只适合数量比较少的状况
二、每次生成一个随机数index,将index做为数组下标取相应的元素,而后去除该元素,下一次生成随机数的范围减1code
def randomNew2(n:Int)={ var arr= 0 to 20 toArray var outList:List[Int]=Nil var border=arr.length//随机数范围 for(i<-0 to n-1){//生成n个数 val index=(new Random).nextInt(border) println(index) outList=outList:::List(arr(index)) arr(index)=arr.last//将最后一个元素换到刚取走的位置 arr=arr.dropRight(1)//去除最后一个元素 border-=1 } outList }
scala>val r = scala.util.Randomast
scala>r.nextInt //生成随机数es7
scala>r.nextInt(100) //生成100之内的随机数(给随机数设置范围)随机数