示例#1
0
        private void RunSimulation()
        {
            int    coinFlipsCount = Convert.ToInt32(txtSimulationRuns.Text);
            double probability    = Convert.ToDouble(txtProbability.Text);

            Coin.FACE simulationface = GetFaceValueFromFormControl(cboSimulationFace);
            Coin.FACE weightedface   = GetFaceValueFromFormControl(cboCoinFace);

            Coin       coin       = new Coin(probability, weightedface);
            Simulation simulation = new Simulation(coin, coinFlipsCount, simulationface);
            Result     result     = simulation.Run();

            OutputResults(result);
        }
示例#2
0
        public Result Run()
        {
            Result      result      = new Result(coin, sample, face);
            FlipHistory flipHistory = new FlipHistory();

            int consecutiveCount = 0;

            for (int i = 0; i < sample; i++)
            {
                Coin.FACE face = coin.Flip();
                flipHistory.Log(face);
                consecutiveCount = (face == this.face) ? consecutiveCount + 1 : 0;
                result.IncrementCountsUpToValue(consecutiveCount);

                Result.ResultType type = (face == Coin.FACE.HEADS ? Result.ResultType.HEADS : Result.ResultType.TAILS);
                result.AddCount(type);
            }
            result.AddHistory(flipHistory);
            return(result);
        }
示例#3
0
 public void Log(Coin.FACE face)
 {
     if (history.Count == 0)
     {
         history.Add(new FaceCount(1, face));
     }
     else
     {
         int       index = history.Count - 1;
         FaceCount last  = history[index];
         if (last.GetFace().Equals(face))
         {
             last.IncrementCount();
             history[index] = last;
         }
         else
         {
             history.Add(new FaceCount(1, face));
         }
     }
 }
示例#4
0
 public Result(Coin coin, int sample, Coin.FACE face)
 {
     this.coin       = coin;
     this.sampleSize = sample;
     this.face       = face;
 }
示例#5
0
 public Simulation(Coin coin, int sample, Coin.FACE face)
 {
     this.coin   = coin;
     this.sample = sample;
     this.face   = face;
 }
示例#6
0
 public FaceCount(int count, Coin.FACE face)
 {
     this.count = count;
     this.face  = face;
 }