How can I generate a random real number between -3 and 3 that is exclusive on both sides?
rand()*(3.0 - (-3.0)) + (-3.0)
That doesn’t exclude
rand() is uniform in
See this answer: How to create a random Uniform Distribution between (but excluding) 0 and 10? - #21 by Elrod, which leads to the analogous solution:
prevfloat(6.0) * (1 - rand()) - 3
for generating random numbers uniformly for floating-point values in the open interval
Thank you, Marc!
That would have taken me at least forever to figure out.
Gonna go with Steven’s solution; thank you nonetheless!
Thank you, Steven.
I didn’t see your answer before thanking Marc for a solution, lol.
I’m going to go with your solution on faith for now, until I am more adept with Julia.
EDIT: Actually, I recall reading about prevfloat() somewhere and your solution makes clear sense now.
How to get random number between
small < x < large
julia> small=-3.0 -3.0 julia> large=3.0 3.0 julia> prevfloat(large - small) * (1 - rand()) + small -0.10856055483983429
Thank you, StevenSiew.
From stevengj’s answer, my perspective was: excluding the minimum via (1-rand()) and excluding the maximum via prevfloat(6.0) and then adjusting the final output by subtracting the midway value.
However I do appreciate your formulaic presentation for it’s clarity, so I will mark your response as the solution for future seekers…