void e161122(int dim, int trials, char* path) { LTQ ltq; ltq.SetDimension(dim); Results r; r.Add("SR"); r.Add("SR-C"); r.Add("SR-C2"); for (int i = 1; i <= trials; i++) { printf_s("\r%5d/%5d", i, trials); for (int faultRatio = 0; faultRatio < 10; faultRatio++) { ltq.GenerateFaults(faultRatio * 10); // 故障を発生させる uint32_t node1, node2; // 出発ノードと目的ノード do { node1 = ltq.GetNodeRandom(); node2 = ltq.GetConnectedNodeRandom(node1); } while (node2 == node1); // 連結な候補が見つかるまでループ r.Update(0, faultRatio, ltq.Routing_Simple(node1, node2)); Score* c = ltq.CalcCapability(); r.Update(1, faultRatio, ltq.Routing_SimpleCapability(node1, node2, c)); delete c; c = ltq.CalcCapability2(); r.Update(2, faultRatio, ltq.Routing_SimpleCapability2(node1, node2, c)); delete c; } } r.Save(path, trials); }