Problem 44951. Verify Law of Large Numbers

Even on 27 Apr 2020
Latest activity Reply by Shuaixian on 23 Jul 2023

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.
function dice_diff = loln(N)
A=randi([1,N],1e8,1)
M=mean(A)
B=1:N
m=mean(B)
dice_diff =abs(M-m);
end
Here is my code, but it can't work out as it needs too long time to creat A.
Shuaixian
Shuaixian on 23 Jul 2023
后面都加分号就可以解决
Ameer Hamza
Ameer Hamza on 27 Apr 2020
It works as expected
N = 6;
A = randi([1,N],1e8,1);
M = mean(A);
B = 1:N;
m = mean(B);
dice_diff = abs(M-m);
Result:
>> dice_diff
dice_diff =
1.7416e-04
The difference is 0.000174 which is the expected result. If it take a long time, you can try to use fewer random numbers.
Giuseppe Degan Di Dieco
Giuseppe Degan Di Dieco on 27 Aug 2021
Thanks Ameer for the help, easy and straightforward.
Best.
Ameer Hamza
Ameer Hamza on 27 Apr 2020
I am glad to be of help.
Even
1
Post
2
Replies

Tags