How To Generate Non Repeating floating Random Numbers from 1 to 10

2 views (last 30 days)
Hi,
Does anybody know how to generate a series of 100 non-repeating random floating numbers between 1 and 10?
Thanks

Accepted Answer

Star Strider
Star Strider on 26 Nov 2019
One option:
v = rand(1, 100)*9+1;
[L, H] = bounds(v) % Check
producing (in this run):
L =
1.0846
H =
9.9740
  6 Comments
Walter Roberson
Walter Roberson on 26 Nov 2019
With 2^53 possible rand() outputs, an estimation using The Birthday Paradox logic suggests that the probability of a duplicate rises to 1/2 at about 10^8
Star Strider
Star Strider on 26 Nov 2019
Noted.
I’d not thought to test this with the ‘Birthday Party’ problem.

Sign in to comment.

More Answers (1)

Andrei Bobrov
Andrei Bobrov on 26 Nov 2019
z = cumsum(rand(100,1));
mn = min(z);
Z = 9/(max(z) - mn)*(z - mn) + 1;
out = Z(randperm(100));

Categories

Find more on Birthdays 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!