private NormalDistributionDecisionTree(NormalDistributionDecisionTree tree1, NormalDistributionDecisionTree tree2)
        {
            decisions = new List <PercentageDecision>();

            foreach (PercentageDecision decision in tree1.decisions)
            {
                decisions.Add(decision);
            }

            foreach (PercentageDecision decision in tree2.decisions)
            {
                PercentageDecision foundDecision = decisions.FirstOrDefault(x => (int)x.DecisionObject == (int)decision.DecisionObject);
                if (foundDecision != null)
                {
                    foundDecision.Percentage += decision.Percentage;
                }
                else
                {
                    decisions.Add(decision);
                }
            }

            decisions.ForEach(x => x.Percentage /= 2);

            //Creates the decision tree
            decisionTree = new PercentageDecisionTree();
            decisionTree.AddDecisions(decisions);
        }
        private void CreateBalancedNormalDecisionTree(int[] decisionArray)
        {
            double currentChance = 50.0;

            for (int i = 0; i < decisionArray.Length / 2; i++)
            {
                int index1 = 0 + (decisionArray.Length / 2) - i - 1;
                int index2 = decisionArray.Length - (decisionArray.Length / 2) + i;

                currentChance /= 2;

                decisions.Add(new PercentageDecision(decisionArray[index1], currentChance));
                decisions.Add(new PercentageDecision(decisionArray[index2], currentChance));
            }

            //Check whats left and adds to main decisions
            double leftoverValue = 100.0 - decisions.Sum(x => x.Percentage);

            decisions.Where(x => x.Percentage == 25.0).ToList().ForEach(x => x.Percentage += leftoverValue / 2);

            //Creates the decision tree
            decisionTree = new PercentageDecisionTree();
            decisionTree.AddDecisions(decisions);
        }