using BotSharp.Algorithm.HiddenMarkovModel.MathUtils.Distribution; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace BotSharp.Algorithm.HiddenMarkovModel.MathUtils.Statistics { public class Sample { public static List SampleWithoutReplacement(IList data, int sampleCount) { List sample = new List(); for (int i = 0; i < sampleCount; ++i) { T sampleVal = data[DistributionModel.NextInt(sampleCount)]; sample.Add(sampleVal); } return sample; } public static List SampleWithReplacement(IList data, int sampleCount) { List sample = new List(); List temp = data.ToList(); T sampleValue; int sampleIndex; for (int i = 0; i < sampleCount; ++i) { sampleIndex = DistributionModel.NextInt(temp.Count); sampleValue = temp[sampleIndex]; sample.Add(sampleValue); temp.RemoveAt(sampleIndex); } return sample; } } }