Re: Noob evaluation question
- To: mathgroup at smc.vnet.net
- Subject: [mg74192] Re: Noob evaluation question
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Wed, 14 Mar 2007 03:44:03 -0500 (EST)
- Organization: The Open University, Milton Keynes, UK
- References: <et54tf$b7m$1@smc.vnet.net>
heycarnut wrote: > Hi - > > Helping a buddy out with a small application, and I'm drawing a blank > on the following. > > Given : > > Position[{1, 2, 3, 4, 5, 6, 7, 8, 9}, _?(# <= Random[Integer, {1, > 9}] &)] > > How can we make the generated random number 'fixed' for the evaluation > of Position, instead of a new number getting generated at each element > of the list (the above is a simplified and contrived example.) > > Thanks > Rob > > One must evaluate the random number outside the iterative expression (the function Position in this case). One way of doing this is, In[1]:= With[{rnd = Random[Integer, {1, 9}]}, Print["Generated Random Number : ", rnd]; Position[{1, 2, 3, 4, 5, 6, 7, 8, 9}, _?(#1 <= rnd & )]] From In[1]:= Generated Random Number : 7 Out[1]= {{1}, {2}, {3}, {4}, {5}, {6}, {7}} Regards, Jean-Marc