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...