Re: Re: Is this a bug?

*To*: mathgroup at smc.vnet.net*Subject*: [mg32078] Re: [mg32061] Re: [mg32047] Is this a bug?*From*: Andrzej Kozlowski <andrzej at tuins.ac.jp>*Date*: Sat, 22 Dec 2001 04:22:52 -0500 (EST)*Sender*: owner-wri-mathgroup at wolfram.com

I must confess I did not read the second half of the original message, assuming that it was basically the same thing as the first. Now that I have read it I would like just to observe that my "dynamic" programming solution to the first part can also be applied to the second (providing an alternative to Rob Pratt's approach): In[1]:= r[k_]:=r[k]=Random[Integer,{0,1}] In[2]:= tst[n_] := Module[{a}, a[0] = a[1] = 0; Do[a[r[k]]++,{k,n}]; {a[0],a[1]}] In[3]:= tst[50] Out[3]= {28,22} Andrzej Kozlowski Toyama International University JAPAN http://platon.c.u-tokyo.ac.jp/andrzej/ On Friday, December 21, 2001, at 05:57 PM, Rob Pratt wrote: > On Thu, 20 Dec 2001, Paul van Wamelen wrote: > >> Is the following a bug? >> >> Mathematica 4.1 for Sun Solaris >> Copyright 1988-2000 Wolfram Research, Inc. >> -- Motif graphics initialized -- >> >> In[1]:= k[x_] := Module[{},Print["hallo world"];x]; >> >> In[2]:= a[5] = 0; >> >> In[3]:= a[k[5]]++ >> hallo world >> hallo world >> >> Out[3]= 0 >> >> >> I would have expected only one "hallo world" and it would seem to be >> more efficient to only evaluate the k[5] once... >> >> The above example is not important but in the form below it had me >> baffled for a while: >> >> In[4]:= tst[n_] := Module[{a}, >> a[0] = a[1] = 0; >> Do[a[Random[Integer,{0,1}]]++,{n}]; >> {a[0],a[1]}] >> >> In[5]:= tst[50] >> >> Out[5]= {24, 24} >> >> (Does not add up to 50!) >> >> Thanks! > > I encountered the second form just two days ago. I'll leave it to > somebody else to explain the above behavior, but I ended up using a > workaround like the following. > > tst[n_] := Module[{a, r}, > a[0] = a[1] = 0; > Do[(r = Random[Integer,{0,1}]; a[r]++), {n}]; > {a[0],a[1]}] > > Rob Pratt > Department of Operations Research > The University of North Carolina at Chapel Hill > > rpratt at email.unc.edu > > http://www.unc.edu/~rpratt/ > > > > > >