Today we wrote our Nspire version of a dice roll simulation. Here’s an example of the function that simulated 1 or more trials of 6 dice.

Define dice(trials)=
Func
Local i,roll,counts,total_rolls
total_rolls:=6*trials
counts:={0,0,0,0,0,0}
For i,1,total_rolls
roll:=randInt(1,6)
counts[roll]:=counts[roll]+1
EndFor
Return counts
EndFunc

And here’s the program that ran multiple trials to determine the experimental probability of rollling 1,2,3,4,5,6 each the same number of times.

Define rollsim(trials,c)=
Prgm
Local i,counter,roll
counter:=0
For i,1,trials
roll:=dice(c)
If roll={1,1,1,1,1,1}*c Then
counter:=counter+1
EndIf
EndFor
Disp "all the same: "&string(counter)
Disp "EP:"&string(((counter)/(trials))*100.)&"%"
Return ((counter)/(trials))*1.
EndPrgm

*Related*