Re: sparsearray and random
- To: mathgroup at smc.vnet.net
- Subject: [mg71454] Re: sparsearray and random
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Sun, 19 Nov 2006 01:10:09 -0500 (EST)
- Organization: The Open University, Milton Keynes, UK
- References: <ejmlhi$gp1$1@smc.vnet.net>
Arkadiusz.Majka at gmail.com wrote: > Hi, > > Why this: > > a = Random[Integer, {3, 7}] > Normal[SparseArray[(i_ /; 3 â?¤ i â?¤ a) -> p, 10]] > > is not the same as this: > > Normal[SparseArray[(i_ /; 3 â?¤ i â?¤Random[Integer, {3, 7}] ) -> p, > 10]] Could you explain what you mean by "not the same"? For instance, in the following expressions, only In[4] is not the same as the three other inputs in term of behavior: In[4] checks i against a new random number every time, whereas the other expressions keep the same upper bound during the whole evaluation process. In[1]:= a = Random[Integer, {3, 7}] Normal[SparseArray[i_ /; 3 <= i <= a -> p, 10]] Out[1]= 6 Out[2]= {0, 0, p, p, p, p, 0, 0, 0, 0} In[3]:= Normal[SparseArray[i_ /; 3 <= i <= Random[Integer, {3, 7}] -> p, 10]] Out[3]= {0, 0, p, p, p, 0, 0, 0, 0, 0} In[4]:= a := Random[Integer, {3, 7}] Normal[SparseArray[i_ /; 3 <= i <= Evaluate[a] -> p, 10]] Out[5]= {0, 0, p, p, p, 0, p, 0, 0, 0} In[6]:= Normal[SparseArray[i_ /; 3 <= i <= Evaluate[Random[Integer, {3, 7}]] -> p, 10]] Out[6]= {0, 0, p, p, p, p, 0, 0, 0, 0} Regards, Jean-Marc