(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之內的隨機數(給隨機數設置範圍)隨機數