MathGroup Archive 2009

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

Search the Archive

Re: RandomReal gets stuck

  • To: mathgroup at smc.vnet.net
  • Subject: [mg100382] Re: RandomReal gets stuck
  • From: Bas Straatman <bastraat at ucalgary.ca>
  • Date: Tue, 2 Jun 2009 06:44:46 -0400 (EDT)
  • Organization: The University of Calgary
  • References: <h00d18$pis$1@smc.vnet.net>

By the way, Bill, there is nothing wrong with the use of square brackets 
  to index a variable. Check out the array function:

In[1]:= Array[y, 3]

Out[1]= {y[1], y[2], y[3]}

In[2]:= Do[y[i] = 3 - i, {i, 3}]

In[3]:= ?y

Global`y

y[1]=2

y[2]=1

y[3]=0

In[4]:= Head[y]

Out[4]= Symbol

In[5]:= Head[y[1]]

Out[5]= Integer


Bas


Bill Rowe wrote:
> On 5/31/09 at 6:34 AM, sjoerd.c.devries at gmail.com (Sjoerd C. de
> Vries) wrote:
> 
>> I can confirm this bug.
> 
>> Executing an even simpler version, namely
> 
>> Maximize[Plus @@ Table[y[i], {i, 31}], Table[y[i], {i, 31}]];
> 
>> will also set the random generator to a fixed starting point. The
>> number 31 is crucial, as lower values do not appear to cause the
>> bug, while higher values do. Changing Plus to Times appears to
>> prevent the bug.
> 
>> In[394]:= Table[
>> Maximize[Plus @@ Table[y[i], {i, 31}], Table[y[i], {i, 31}]];
>> RandomReal[], {20}
>> ]
> 
> When I execute the code above, I do get the same result as you
> report. Clearly, there is a problem here somewhere. But it isn't
> clear the issue is with RandomReal.
> 
> The code above uses Maximize in a non-sensical way, particularly
> when the function y hasn't been defined. This usage asks
> Mathematica to find the maximize the sum of n things with
> respect to each of the n things. It appears there is an attempt
> to use the notation y[n] to mean an array indexed by n rather
> than a function of n. So, Maximize correctly generates error
> messages. What is unexpected is poor input to Maximize appears
> to cause a problem for RandomReal.
> 
> On my system, changing Plus to Times eliminates the effect on
> RandomReal even though there is still a non-sensical input to
> Maximize. Alternatively, defining y then executing the code does
> 
> In[5]:= y[n_] := n^2 - n
> 
> In[6]:= Table[
>   Maximize[Plus @@ Table[y[i], {i, 31}], Table[y[i], {i, 31}]];
>   RandomReal[], {20}]
> 
> During evaluation of In[6]:= Maximize::ivar: 0 is not a valid
> variable. >>
> 
> During evaluation of In[6]:= Maximize::ivar: 0 is not a valid
> variable. >>
> 
> During evaluation of In[6]:= Maximize::ivar: 0 is not a valid
> variable. >>
> 
> During evaluation of In[6]:= General::stop: Further output of
> Maximize::ivar will be suppressed during this calculation. >>
> 
> Out[6]= {0.877054,0.833103,0.703786,0.0482118,0.226066,0.230746,0.0738072=
> ,0.680963,0.53264,0.989333,0.418793,0.951114,0.963168,0.870439,0.926361,0.267113,0.195084,0.810066,0.875896,0.579076}
> 
>> This is very nasty, as a lot of people critically depend on random
>> functions to be random. I would urge you to report this to wolfram
>> support.
> 
> I agree many people including myself depend on the random
> functions to be random. And I would also like Mathematica to
> fail gracefully when given non-sensical input and provide useful
> error messages. But I am never surprised when software does
> something other than fail gracefully given non-sensical input or
> provides less than useful error messages.
> 
> Entering
> 
> Table[
>   Maximize[Plus @@ Table[y[i], {i, 31}], Table[y[i], {i, 31}]];
>   RandomReal[],
>   {20}
>   ]
> 
> into a new session and expecting useful output simply isn't a
> reasonable expectation.
> 
> Note, this in no way says what the original poster was doing is
> unreasonable or non-sensical. The rest of the information needed
> to determine whether what the original poster was attempting is
> sensible hasn't been provided. I would also note, that sending a
> bug report to Wolfram without the additional information is
> probably pointless.
> 
> 


  • Prev by Date: Re: Image[], Graphics[Raster[]]
  • Next by Date: Re: 100,000 posts!
  • Previous by thread: Re: RandomReal gets stuck
  • Next by thread: Re: RandomReal gets stuck