MathGroup Archive 2011

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

Search the Archive

Re: Coin Toss Sim

  • To: mathgroup at smc.vnet.net
  • Subject: [mg122409] Re: Coin Toss Sim
  • From: Heike Gramberg <heike.gramberg at gmail.com>
  • Date: Thu, 27 Oct 2011 06:34:13 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <201110262139.RAA00063@smc.vnet.net>

You get a bad count because you're  using SetDelayed (:=) to define 
which has the effect that the r.h.s. of g is reevaluated every time you 
call g. In this case that means that you generate a new list of coin 
tosses whenever you call g. So when you call {g,s} you are in fact using 
a different list to count the heads from the one you output. To solve 
this you should use Set (=) for defining g instead, e.g.

y[n_] := Block[{g, s},
  g = RandomChoice[{"head", "tail"}, n];
  s = Count[g, "head"];
  {g, s}]

Heike.

On 26 Oct 2011, at 23:39, pooleman133 wrote:

> I am new to mathematica and am trying to make a coin flipping 
simulation however mo code isn't working. When I tell it to count the 
number of head it gives me a bad count. The code I am using is listed 
below any help would be greatly appreciated.
>
> y[n_] := Block[{g, s},
>
>
>  g := RandomChoice[{"head", "tail"}, n];
>  s := Count[g, "head"];
>  {g, s}
>  ]
>




  • References:
  • Prev by Date: Re: Conditional Import
  • Next by Date: Re: simple question about removing elements from a table
  • Previous by thread: Re: Coin Toss Sim
  • Next by thread: Re: Coin Toss Sim