private void DoProcessing(object sender, EventArgs e)
        {
            startButton.Enabled = false;
            DateTime start = DateTime.Now;
            Random rand = new Random();

            ++totalNumbers;

            ConcatText("Total numbers: " + totalNumbers);

            double [] selectedNumbers = new double[totalNumbers];
            for (int i = 0; i < selectedNumbers.Length; ++i)
            {
                selectedNumbers[i] = rand.Next(1, 100);
            }

            ConcatText("Numbers: " + String.Join(", ", selectedNumbers));

            NCNode ncNode = new NCNode(0, selectedNumbers, null);

            ncNode.Process();

            ConcatText("Total Nodes: " + ncNode.TotalNodes);
            ConcatText("Total Time: " + (DateTime.Now - start).TotalMilliseconds.ToString());
            ConcatText("\n\n");
            startButton.Enabled = true;
        }
예제 #2
0
        public void Process()
        {
            if (_selectedNumbers == null)
                return;

            for (int i = 0; i < _selectedNumbers.Length; ++i)
            {
                double [] newNumbers = null;
                if (_selectedNumbers.Length > 0)
                {
                    newNumbers = new double[_selectedNumbers.Length - 1];
                    Array.Copy(_selectedNumbers, newNumbers, i);
                    Array.Copy(_selectedNumbers, i + 1, newNumbers, i, _selectedNumbers.Length - i - 1);
                }
                NCNode addNode = new NCNode(_currentNumber + _selectedNumbers[i], newNumbers, this);
                NCNode subNode = new NCNode(_currentNumber - _selectedNumbers[i], newNumbers, this);
                NCNode mulNode = new NCNode(_currentNumber * _selectedNumbers[i], newNumbers, this);
                NCNode divNode = new NCNode(_currentNumber / _selectedNumbers[i], newNumbers, this);

                _nodes.Add(addNode);
                _nodes.Add(subNode);
                _nodes.Add(mulNode);
                _nodes.Add(divNode);
            }

            foreach (NCNode node in _nodes)
            {
                node.Process();
            }
        }
예제 #3
0
        public void Process()
        {
            if (_selectedNumbers == null)
            {
                return;
            }

            for (int i = 0; i < _selectedNumbers.Length; ++i)
            {
                double [] newNumbers = null;
                if (_selectedNumbers.Length > 0)
                {
                    newNumbers = new double[_selectedNumbers.Length - 1];
                    Array.Copy(_selectedNumbers, newNumbers, i);
                    Array.Copy(_selectedNumbers, i + 1, newNumbers, i, _selectedNumbers.Length - i - 1);
                }
                NCNode addNode = new NCNode(_currentNumber + _selectedNumbers[i], newNumbers, this);
                NCNode subNode = new NCNode(_currentNumber - _selectedNumbers[i], newNumbers, this);
                NCNode mulNode = new NCNode(_currentNumber * _selectedNumbers[i], newNumbers, this);
                NCNode divNode = new NCNode(_currentNumber / _selectedNumbers[i], newNumbers, this);

                _nodes.Add(addNode);
                _nodes.Add(subNode);
                _nodes.Add(mulNode);
                _nodes.Add(divNode);
            }

            foreach (NCNode node in _nodes)
            {
                node.Process();
            }
        }
        private void DoProcessing(object sender, EventArgs e)
        {
            startButton.Enabled = false;
            DateTime start = DateTime.Now;
            Random   rand  = new Random();

            ++totalNumbers;

            ConcatText("Total numbers: " + totalNumbers);

            double [] selectedNumbers = new double[totalNumbers];
            for (int i = 0; i < selectedNumbers.Length; ++i)
            {
                selectedNumbers[i] = rand.Next(1, 100);
            }

            ConcatText("Numbers: " + String.Join(", ", selectedNumbers));


            NCNode ncNode = new NCNode(0, selectedNumbers, null);

            ncNode.Process();

            ConcatText("Total Nodes: " + ncNode.TotalNodes);
            ConcatText("Total Time: " + (DateTime.Now - start).TotalMilliseconds.ToString());
            ConcatText("\n\n");
            startButton.Enabled = true;
        }
예제 #5
0
        public NCNode(double currentNumber, double [] selectedNumbers, NCNode parentNode)
        {
            if (parentNode == null)
                _totalNodes = 0;

            _currentNumber = currentNumber;
            _selectedNumbers = selectedNumbers;
            _parentNode = parentNode;
            ++_totalNodes;
        }
예제 #6
0
        public NCNode(double currentNumber, double [] selectedNumbers, NCNode parentNode)
        {
            if (parentNode == null)
            {
                _totalNodes = 0;
            }

            _currentNumber   = currentNumber;
            _selectedNumbers = selectedNumbers;
            _parentNode      = parentNode;
            ++_totalNodes;
        }