Задача коммивояжера - нужен пример - C#

Узнай цену своей работы

Формулировка задачи:

Нужен алгоритм комивояжжера написанный на C#. Искал в гугле ничего не нашел

Решение задачи: «Задача коммивояжера - нужен пример»

textual
Листинг программы
 public class FakeMatrix
    {
        private List<Guid> _x = new List<Guid>();
        private List<Guid> _y = new List<Guid>();
        private Dictionary<Tuple<Guid, Guid>, object> _data = new Dictionary<Tuple<Guid, Guid>, object>();
 
        // соорудили
        public FakeMatrix(int x, int y)
        {
            for (int i = 0; i < x; i++)
                _x.Add(Guid.NewGuid());
            for (int j = 0; j < y; j++)
                _y.Add(Guid.NewGuid());
            for (int i = 0; i < x; i++)
                for (int j = 0; j < y; j++)
                    _data.Add(Tuple.Create(_x[i], _y[j]), null);
 
        }
        // брать и засовывать данные
        public object this[int x, int y]
        {
            get
            {
                if (x >= 0 && x < _x.Count && y >= 0 && y < _y.Count)
                    return _data[Tuple.Create(_x[x], _y[y])];
                else
                    return null;
            }
            set
            {
                if (x >= 0 && x < _x.Count && y >= 0 && y < _y.Count)
                    _data[Tuple.Create(_x[x], _y[y])] = value;
                else
                    throw new Exception("Хреновые координаты.");
            }
        }
        // удалять строку/столбец
        public void RemoveX(int i)
        {
            if (i >= 0 && i < _x.Count) {
                List<Tuple<Guid, Guid>> remove = _data.Keys.Where(k => k.Item1 == _x[i]).ToList<Tuple<Guid, Guid>>();
                foreach (var item in remove)
                    _data.Remove(item);
                _x.RemoveAt(i);
            }
        }
        public void RemoveY(int i)
        {
            if (i >= 0 && i < _y.Count) {
                List<Tuple<Guid, Guid>> remove = _data.Keys.Where(k => k.Item1 == _y[i]).ToList<Tuple<Guid, Guid>>();
                foreach (var item in remove)
                    _data.Remove(item);
                _y.RemoveAt(i);
            }
        }
 
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.667 из 5
Похожие ответы