Scala random numbers in Jupyter
In this example, we simulate rolling dice and counting 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 1000
rolls. For each roll, we increment a counter of how many times the total number of pips on die one and die two appear. We then present an abbreviated histogram of the results.
Scala has a number of shortcut methods for quickly scanning through a list/collection, as seen in the reduceLeft...