Random distribution with specific total amount

9 views (last 30 days)
How can I generate the 10 random number with total summation value of 1. The random number should be anything between 0 and 1. Thanks.

Accepted Answer

Walter Roberson
Walter Roberson on 14 May 2018
Look in the File Exchange for Roger's randfixedsum()
  2 Comments
htet wai
htet wai on 14 May 2018
Thank you for your answer. I tried that function and that generate random number to too many decimal point. I would like to generate random number with only 2 decimal point such 0.28, 0.36 and so on. Thanks again for your support.
Walter Roberson
Walter Roberson on 14 May 2018
The only 2 digit decimal numbers that are exactly representable in binary floating point are 0.25, 0.50, and 0.75 . The smallest of these is 0.25, and if you add 10 of those then you would get 2.5, which would exceed your required total of 1.0 . Your task is not possible.
The closest that IEEE 754 double representation gets to 0.28 is 0.2800000000000000266453525910037569701671600341796875
1/100 is not exactly representable in finite binary, exactly the same way that 1/7 is not exactly representable in finite decimal.
You will not be able to do what you want.

Sign in to comment.

More Answers (0)

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!