private SortedDictionary<double, double> AnalyzeAvgHierarchic(double mu) { Int16 p = Int16.Parse(this.branchIndexCmb.Text); Int16 maxLevel = Int16.Parse(this.maxLevelCmb.Text); int realizationCount = (Int32)this.realizationCountNum.Value; SortedDictionary<double, double> result = new SortedDictionary<double, double>(); for (Int16 i = 1; i <= maxLevel; ++i) { result.Add(i, 0); } Dictionary<GenerationParam, object> genParameters = new Dictionary<GenerationParam, object>(); genParameters.Add(GenerationParam.BranchIndex, p); genParameters.Add(GenerationParam.Level, maxLevel); genParameters.Add(GenerationParam.Mu, mu); HierarchicGenerator hGenerator = new HierarchicGenerator(); HierarchicAnalyzer hAnalyzer; for (int r = 0; r < realizationCount; ++r) { hGenerator.Generation(genParameters); hAnalyzer = new HierarchicAnalyzer((HierarchicContainer)hGenerator.Container); for (Int16 i = 1; i <= maxLevel; ++i) { double maxOrder = hAnalyzer.GetAvgConnSubGraphPerLevel(i); double normMaxOrder = maxOrder / (Math.Pow(p, i)); result[i] += normMaxOrder; } } for (Int16 i = 1; i <= maxLevel; ++i) { result[i] /= realizationCount; } return result; }