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; }
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(); } }
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(); } }
public NCNode(double currentNumber, double [] selectedNumbers, NCNode parentNode) { if (parentNode == null) _totalNodes = 0; _currentNumber = currentNumber; _selectedNumbers = selectedNumbers; _parentNode = parentNode; ++_totalNodes; }
public NCNode(double currentNumber, double [] selectedNumbers, NCNode parentNode) { if (parentNode == null) { _totalNodes = 0; } _currentNumber = currentNumber; _selectedNumbers = selectedNumbers; _parentNode = parentNode; ++_totalNodes; }