Re: now, while loops construct errors
- To: mathgroup at smc.vnet.net
- Subject: [mg44303] Re: now, while loops construct errors
- From: koopman at sfu.ca (Ray Koopman)
- Date: Wed, 5 Nov 2003 10:00:27 -0500 (EST)
- References: <bo5sfg$m9$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
sean kim <sean_incali at yahoo.com> wrote in message
news:<bo5sfg$m9$1 at smc.vnet.net>...
> part 1.
> [...]
> I'm trying to pick randome numbers for a pair such
> that the ratio of the two random numbers picked are
> between a range given.
>
> So with v1 and d1, the ratio has to be between 10^-8
> and 10^-4. I have implemented this as follows.
>
> In[395]:=
> dv:= Module[{v1n, d1n},
> While[
> (v1n=10^ Random[Real,{-12,-7}]);
> (d1n=10^ Random[Real,{-6,-4}]);
> 10^-8<= (v1n/d1n)<= 10^-4 ];
> {v1 -> v1n, d1 -> d1n, v1n/d1n//ScientificForm}]
Complement the "While" condition: change it to
Not[10^-8<= (v1n/d1n)<= 10^-4]
or something equivalent, so that you loop UNTIL
v1n/d1n is within the acceptable range.
> [...]
> part2.
>
> what exactly is the difference between the following
> three repesentation of a range? (Peter suggested that
> i use the first represntation, and i'm starting to see
> why but i don't understand it)
> In[90]:=
> {10^ Random[Real,{-12,-6}],
> Random[Real,10^{-12,-6}],
> Random[Real,{10^-12,10^-6}]}
>
> upon repeat evaluating, it's easy to see that the
> first representation gives number over wider range
> while the other two stays within very short range.( in
> the order of 10^-7)
As ranges, the three representations are equivalent. However,
if a random variable U is uniformly distributed over {a,b}
then 10^U will not be uniformly distributed over {10^a,10^b}
but will be concentrated toward the bottom end of the range,
which your comments suggest that you want.