How to generate uniformly distributed random integers?
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Pannir Selvam Elamvazhuthi
le 25 Juil 2011
Modifié(e) : Sergio Enrique Pinto Castillo
le 28 Juil 2020
I've been using "ceil(4*rand)" to generate random integers from 1 to 4. But when I tried to check the uniformity, I found that I do not get a probability of 0.25 and instead have p(1)=0.24997, p(2)=0.25102, p(3)=0.24949 and p(4)=0.24951 after generating 10,00,000 values. Is it good enough to say that it's uniform?
0 commentaires
Réponse acceptée
the cyclist
le 25 Juil 2011
Yes. You should not expect to get exactly 25% of each, every time. That is expected behavior of random numbers.
FYI, it may be more convenient for you to use the randi() function to do what you are doing.
1 commentaire
Walter Roberson
le 25 Juil 2011
the cyclist is correct. Please see also the description in http://www.mathworks.com/matlabcentral/answers/12307-how-to-generate-a-uniform-random-variable-in-the-interval-1-1-with-mean-zero
Plus de réponses (2)
Pannir Selvam Elamvazhuthi
le 28 Août 2011
1 commentaire
the cyclist
le 29 Août 2011
No problem on the late response. However, you should consider deleting this "answer" (because it is not answer), and making it a comment on my answer.
Sergio Enrique Pinto Castillo
le 28 Juil 2020
Modifié(e) : Sergio Enrique Pinto Castillo
le 28 Juil 2020
I think the answer is:
Num = 1000;
vec = randi([1 Num],1,Num);
This instruction generate a vector with random uniformly distributed integers between 1 and 1000
0 commentaires
Voir également
Catégories
En savoir plus sur Random Number Generation dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!