MathGroup Archive 2001

[Date Index] [Thread Index] [Author Index]

Search the Archive

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/
>
>
>
>
>
>



  • Prev by Date: Re: Solutions that are not solutions
  • Next by Date: Re: Solutions that are not solutions
  • Previous by thread: Re: Is this a bug?
  • Next by thread: Re: Is this a bug?