public void GenerateMap(OligoMeta list, string first) { foreach (var l in list.min) { foreach (var k in list.max) { List <int> eval = new List <int>(); eval = Evaluate(l.Key, k.Key); if (!map.ContainsKey(l.Key)) { map[l.Key] = new Dictionary <string, List <int> >() { { k.Key, eval } } } ; else { map[l.Key].Add(k.Key, eval); } } } list.min.Remove(first); list.max.Remove(first); }
public Kontener(OligoMeta meta, CrossOligos cr) { cross = cr; wartosci = new List <string>(); sprawdzone = new List <string>(); foreach (var x in meta.max) { wartosci.Add(String.Copy(x.Key)); } wartosci = wartosci.OrderBy(a => Guid.NewGuid()).ToList(); }
public static string Prepare(string path, OligoMeta meta) { StreamReader reader = new StreamReader(path); reader.ReadLine(); string first = reader.ReadLine(); while (!reader.EndOfStream) { List <string> temp = reader.ReadLine().Split(' ').ToList(); int type; int.TryParse(temp[1], out type); switch (type) { case 1: meta.min.Add(temp[0], 1); meta.max.Add(temp[0], 1); break; case 2: meta.min.Add(temp[0], 2); meta.max.Add(temp[0], 3); break; case 3: meta.min.Add(temp[0], 4); meta.max.Add(temp[0], 5); break; case 4: meta.min.Add(temp[0], 6); meta.max.Add(temp[0], 9); break; } } return(first); }
static void Main() { CrossOligos ol = new CrossOligos(); OligoMeta meta = new OligoMeta(); string first = Prepare("10.in", meta); ol.GenerateMap(meta, first); Kontener kon = new Kontener(meta, ol); kon.first = first; kon.LiczWartosci(); Algorytm alg = new Algorytm(kon); alg.Run(); }