# How to generate uniformly distributed random integers?

조회 수: 25(최근 30일)
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?

댓글을 달려면 로그인하십시오.

### 채택된 답변

the cyclist 25 Jul 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

Walter Roberson 25 Jul 2011

댓글을 달려면 로그인하십시오.

### 추가 답변(2개)

Thanks Cyclist and Walter Roberson. Sorry to have responded late.

#### 댓글 수: 1

the cyclist 29 Aug 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 28 Jul 2020
Num = 1000;
vec = randi([1 Num],1,Num);
This instruction generate a vector with random uniformly distributed integers between 1 and 1000

댓글을 달려면 로그인하십시오.

### Community Treasure Hunt

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

Start Hunting!

Translated by