Re: average of the consecutive coin tosses
- To: mathgroup at smc.vnet.net
- Subject: [mg122004] Re: average of the consecutive coin tosses
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Sat, 8 Oct 2011 05:35:56 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201110060818.EAA22381@smc.vnet.net>
- Reply-to: drmajorbob at yahoo.com
Darren, With that code, every toss would be the same. Bobby On Fri, 07 Oct 2011 03:45:57 -0500, 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 > -- DrMajorBob at yahoo.com
- Follow-Ups:
- Re: average of the consecutive coin tosses
- From: Darren Glosemeyer <darreng@wolfram.com>
- Re: average of the consecutive coin tosses
- References:
- average of the consecutive coin tosses
- From: michael partensky <partensky@gmail.com>
- average of the consecutive coin tosses