If a large number of fair N-sided dice are rolled, the average of the simulated rolls is likely to be close to the mean of 1,2,...N i.e. the expected value of one die. For example, the expected value of a 6-sided die is 3.5.
Given N, simulate 1e8 N-sided dice rolls by creating a vector of 1e8 uniformly distributed random integers. Return the difference between the mean of this vector and the mean of integers from 1 to N.
The solution quits because it's taking too long. 1e8 is too many?
The difference should essentially be zero i.e. the two averages equal. I wrote a successful script; run in my desktop environment but the tool won't accept my answer as valid.
Note that using rand() with round() will not produce the correct answer. There is another function that must be used instead.
1e8 is too big for the Matlab website. It crashes every time I try it. I managed to find a solution on the full version so I put it in comments and cheated to pass it.
I discovered using a for loop doesn't work - too slow. Then I realised that randi can generate the required vector, doh!
Can anyone do that in a size smaller than 22? That was the smallest size I could get.