Scala random numbers in Jupyter
In this example, we simulate a rolling dice and count how many times each combination appears. We then present a simple histogram for illustrative purposes.
The script is as follows:
val r = new scala.util.Random r.setSeed(113L) val samples = 1000 var dice = new Array[Int](12) for( i <- 1 to samples){ var total = r.nextInt(6) + r.nextInt(6) dice(total) = dice(total) + 1 } val max = dice.reduceLeft(_ max _) for( i <- 0 to 11) { var str = "" for( j <- 1 to dice(i)/3) { str = str + "X" } print(i+1, str, "\n") }
We first pull in the Scala random library. We set the seed (in order to have repeatable results). We are drawing 1,000 rolls. For each roll, we increment a counter of how many times the total of pips on die 1 and die 2 appear. Then we present an abbreviated histogram of the results.
Scala has a number of shortcut methods for quick scanning through a list/collection, as seen in the reduceLeft(_ max _)
statement. We...