Azzera filtri
Azzera filtri

How to generate uniformly distributed random integers?

3 visualizzazioni (ultimi 30 giorni)
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?

Risposta accettata

the cyclist
the cyclist il 25 Lug 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 Commento
Walter Roberson
Walter Roberson il 25 Lug 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

Accedi per commentare.

Più risposte (2)

Pannir Selvam Elamvazhuthi
Thanks Cyclist and Walter Roberson. Sorry to have responded late.
  1 Commento
the cyclist
the cyclist il 29 Ago 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.

Accedi per commentare.


Sergio Enrique Pinto Castillo
Modificato: Sergio Enrique Pinto Castillo il 28 Lug 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

Categorie

Scopri di più su Random Number Generation in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by