MathGroup Archive 2011

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

Search the Archive

Re: average of the consecutive coin tosses

  • To: mathgroup at smc.vnet.net
  • Subject: [mg121957] Re: average of the consecutive coin tosses
  • From: michael partensky <partensky at gmail.com>
  • Date: Fri, 7 Oct 2011 04:47:57 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <201110060818.EAA22381@smc.vnet.net>

Interesting!
Thank a lot, Darren.
Best
MP
On Thu, Oct 6, 2011 at 10:48 AM, Darren Glosemeyer <darreng at wolfram.com>wrote:

> On 10/6/2011 3:18 AM, michael partensky wrote:
>
>> Hi.
>>
>> What are the better ways of doing what this guy does very inefficiently
>> for
>> the average of the consecutive coin tosses:
>>
>> tr = (flips = 1; (#/flips++)&  /@ Accumulate[Table[toss, {1000}]]) // N);
>>
>>
>> where
>>
>> toss= RandomInteger[];
>>
>> Thanks
>> Michael
>>
>
> When you want lots of random values, it is generally faster to get them all
> at once. In your example, we can also note that the denominators will just
> be a Range and take advantage of the listable nature of division, but we
> will want to make sure the values from Range are turned into floating point
> numbers to avoid exact arithmetic. Incorporating these ideas can make the
> computation much faster, as can be seen by timings for 1000 evaluations of
> each method:
>
> In[2]:= toss = RandomInteger[];
>
> In[3]:= Do[(flips = 1; (#/flips++) & /@ Accumulate[Table[toss, {1000}]]
> //N), {1000}]; // Timing
>
> Out[3]= {2.683, Null}
>
> In[4]:= Do[Accumulate[RandomInteger[1, 1000]]/N[Range[1000]], {1000}]; //
> Timing
>
> Out[4]= {0.062, Null}
>
>
> Darren Glosemeyer
> Wolfram Research
>



  • Prev by Date: Re: How to simplify a finite sum plus the next element?
  • Next by Date: Re: list equation
  • Previous by thread: Re: average of the consecutive coin tosses
  • Next by thread: Re: average of the consecutive coin tosses