使用Scala生成随机数的方法示例
程序员文章站
2024-02-14 15:09:46
一.使用scala生成随机数
1.简单版本:
/*
1.you can use scala.util.random.nextint(10) to produc...
一.使用scala生成随机数
1.简单版本:
/* 1.you can use scala.util.random.nextint(10) to produce a number between 1 and 10 2.at the same time,you nextint(100) to produce a number between 1 and 100 */ object test { def main(args: array[string]) { var i = 0 while(i < 10) var str = scala.util.random.nextint(100).tostring println(str) i = i+1 } } }
2.复杂版本:
object test{ def main(args: array[string]): unit = { val wordpermessage = 4 var i = 0 while(i<10){ /* 1.the (1 to 1) is meaning that only have one circulation. */ (1 to 1).foreach { messagenum => { //[there's only three cycle] val str: seq[string] = (1 to wordpermessage).map(x => scala.util.random.nextint(10).tostring) val str1 = str.mkstring(" ")//separate str1 with space println(str) } } i = i +1 } } }
ps:scala生成一组不重复的随机数
1、循环获取随机数,再到 list中找,如果没有则添加
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 }
这种只适合数量比较少的情况
2、每次生成一个随机数index,将index作为数组下标取相应的元素,然后去除该元素,下一次生成随机数的范围减1,
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 }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。