public List<Distribution> ReadServerTimeDistributions() { string serversDirectory = Path.Combine(distributionsDirectory, "Servers"); string[] filesNames = Directory.GetFiles(serversDirectory); var distributions = new List<Distribution>(); foreach (var filePath in filesNames) { string[] entries = File.ReadAllLines(filePath); var dist = new Distribution(); foreach (var entry in entries) { int time = int.Parse(entry.Split(new char[] { ' ' })[0]); double probability = double.Parse(entry.Split(new char[] { ' ' })[1]); dist.Times.Add(time); dist.Probabilities.Add(probability); } distributions.Add(dist); } return distributions; }
public Distribution ReadIterarrivalDistribution() { string fileName = "IterarrivalDistribution.txt"; string interarrivalTimeFilePath = Path.Combine(distributionsDirectory, fileName); string[] entries = File.ReadAllLines(interarrivalTimeFilePath); var dist = new Distribution(); foreach (var entry in entries) { int time = int.Parse(entry.Split(new char[] { ' ' })[0]); double probability = double.Parse(entry.Split(new char[] { ' ' })[1]); dist.Times.Add(time); dist.Probabilities.Add(probability); } return dist; }
private void CalculateCumlativeDistributionAndRange(Distribution dist) { dist.CumulativeProbabilities.Add(dist.Probabilities[0]); dist.Ranges.Add(new KeyValuePair<int, int>(0, (int)(dist.CumulativeProbabilities[0] * 1000))); for (int i = 1; i < dist.Times.Count; i++) { dist.CumulativeProbabilities.Add(dist.CumulativeProbabilities[i - 1] + dist.Probabilities[i]); dist.Ranges.Add(new KeyValuePair<int, int>(dist.Ranges[i - 1].Value + 1, (int)(dist.CumulativeProbabilities[i] * 1000))); } }