欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用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
  }
 }
}

使用Scala生成随机数的方法示例 

使用Scala生成随机数的方法示例 

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
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。