BotSharp/BotSharp.Algorithm/HiddenMarkovModel/MathUtils/Statistics/Sample.cs
2018-09-17 07:31:54 -05:00

40 lines
1.2 KiB
C#

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<T> SampleWithoutReplacement<T>(IList<T> data, int sampleCount)
{
List<T> sample = new List<T>();
for (int i = 0; i < sampleCount; ++i)
{
T sampleVal = data[DistributionModel.NextInt(sampleCount)];
sample.Add(sampleVal);
}
return sample;
}
public static List<T> SampleWithReplacement<T>(IList<T> data, int sampleCount)
{
List<T> sample = new List<T>();
List<T> 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;
}
}
}