Random Numbers within specified range in specific ratio

Hi i want generate random numbers in this ratio
between
0-0.1 once........
0.1-0.2 twice........
0.2-0.3 thrice.......
0.3-0.4 4 times........
0.4-0.5 5 times........
0.5-0.6 6 times........
0.6-0.7 7 times........
0.7-0.8 8 times........
0.8-0.9 9 times........
0.9-1 10 times
out of total number of samples.... same ratio should be thr for any number of samples i change...
thank you

댓글 수: 2

To check: 0 to 0.1 should be generated in the ratio of 1/55, 0.1-0.2 should be generated in the ratio 2/55, up to 0.9-1 should be generated in the ratio 10/55 ? Since 1+2+3+4+5+6+7+8+9+10 = 55 ?
sp
sp 2012년 12월 18일
yes.. i want random numbers in tht ratio.....

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

답변 (2개)

Roger Stafford
Roger Stafford 2012년 12월 18일
You haven't specified whether you want the density to be constant within each of these subintervals or be a continuous function throughout the entire interval from 0 to 1. If you want the latter, you can get n such random values with this:
r = (sqrt(440*rand(n,1)+1)-1)/20;
Note that the probability of being between 0 and .1 is 1/55, between .1 and .2 it is 2/55, between .2 and .3 it is 3/55, etc.
Roger Stafford

댓글 수: 5

sp
sp 2012년 12월 18일
i want any random number between .1 and .2 twice...2/55 ratio.... the above formula doesn't satisfy the condition.... :-( Out of 55 random numbers only 2 should between 0.1 and 0.2..... 6 numbers should be 0.5-0.6 ......
Roger shared this link with us some time ago: http://en.wikipedia.org/wiki/Inverse_transform_sampling
Does that apply to each sub-interval of the output? So that if location #20 is the one that has the 0-0.1, then location #75 exactly would also have to be 0-0.1 because otherwise the subinterval 20:74 would have too many 0-0.1 (if the second 0-0.1 was before #75) or the subinterval 21:75 would have too few 0.01 (if the second 0-0.1 was after #75) ?
If I correctly interpret what you are saying, Praveen, then you are mistaken. The probability that an element of rand(n,1) will fall between 1/55 and 3/55 is their difference, 3/55-1/55=2/55. The corresponding values of r at these two limits are
r1 = (sqrt(440*1/55+1)-1)/20 = .1
r2 = (sqrt(440*3/55+1)-1)/20 = .2
Thus, the probability that r will fall between .1 and .2 is 2/55, which is just what you are asking for. The same applies to all other nine intervals.
Roger Stafford
I think Praveen is looking for exactly 2, exactly 6, and so on, in an interval of 55, rather than "2 as a statistical average", "6 as a statistical average", and so on.

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

Image Analyst
Image Analyst 2012년 12월 18일
See if this is what you want:
r = rand(100000, 1);
binEdges = [0 1, 3, 6, 10, 15, 21, 28, 36, 45, 55] / 55
counts = histc(r, binEdges);
bar(counts);
grid on;

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

질문:

sp
2012년 12월 18일

Community Treasure Hunt

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

Start Hunting!

Translated by