예제 #1
0
        public ICombination <int> CreateModel()
        {
            if (_model == null)
            {
                var total    = Enumerable.Range(1, TotalBalls).ToArray();
                var subTotal = Enumerable.Range(1, StarTotalBalls).ToArray();
                _model = new MultiCombination <int>(Balls, StarBalls, total, subTotal);
            }

            return(_model);
        }
예제 #2
0
        static void Main(string[] args)
        {
            string resultsPath = @"C:\VsProjs\lotalot\ej.csv";

            IMultiLottoManager       managerMain = new MultiLottoManager(resultsPath);
            IMultiLottoManager       specMain    = new FeaturesMultiLottoManager(managerMain);
            IList <IData>            dataSet     = specMain.Data;
            AvlTree <LottoAggregate> tree        = new AvlTree <LottoAggregate>();
            List <LottoAggregate>    aggregates  = new List <LottoAggregate>();

            string[] names = new string[3];
            for (int i = dataSet.Count - 1; i >= 0; i--)
            {
                LottoAggregate aggregate = new LottoAggregate();
                for (int j = 0; j < 3; j++)
                {
                    names[j] = GetName(dataSet, i, j);
                    aggregate.Add(names[j], GetData(dataSet, i, j));
                }
                tree.Insert(aggregate);
                aggregates.Add(aggregate);
                //tree.Print();
            }

            MultiCombination <int> mainModel     = (MultiCombination <int>)managerMain.Spec.CreateModel();
            LottoAggregate         findAggregate = new LottoAggregate();

            findAggregate.Add(names[0], GetIndex(dataSet, aggregates, 0));
            findAggregate.Add(names[1], GetIndex(dataSet, aggregates, 1));
            findAggregate.Add(names[2], GetIndex(dataSet, aggregates, 2));
            //tree.Print();
            var nearAggregate = tree.Find(aggregates[0]);

            Print(nearAggregate.left?.value, mainModel, names[0]);
            Print(nearAggregate.left?.value, mainModel.Main, names[1]);
            Print(nearAggregate.left?.value, mainModel.Sub, names[2]);

            Print(nearAggregate.right?.value, mainModel, names[0]);
            Print(nearAggregate.right?.value, mainModel.Main, names[1]);
            Print(nearAggregate.right?.value, mainModel.Sub, names[2]);

            Print(nearAggregate.parent?.value, mainModel, names[0]);
            Print(nearAggregate.parent?.value, mainModel.Main, names[1]);
            Print(nearAggregate.parent?.value, mainModel.Sub, names[2]);
            Console.Read();
        }