private void SetRandom() { random = new Random(); // Choose erdosRenyiModelProbabilityEnum if (erdosRenyiModelProbabilityEnum == ErdosRenyiModelProbabilityEnum.notAssigned) { erdosRenyiModelProbabilityEnum = (ErdosRenyiModelProbabilityEnum)random.Next(Enum.GetNames(typeof(ErdosRenyiModelProbabilityEnum)).Length - 1); } switch (erdosRenyiModelProbabilityEnum) { case ErdosRenyiModelProbabilityEnum.cDividedByNLessThanOne: probability = random.Next(10000, 99999) / countVertices; break; case ErdosRenyiModelProbabilityEnum.cDividedByNMoreThanOne: probability = random.Next(100000, 300000) / countVertices; break; case ErdosRenyiModelProbabilityEnum.cLogNDividedByN: probability = (int)(random.Next(100000, 600000) * Math.Log(countVertices) / countVertices); break; default: throw new MyException.GenerateGraphException.ErdosReneiModelProbabilityEnumMissing(erdosRenyiModelProbabilityEnum.ToString()); } }
/// <summary> /// If count of vertices is less than 1 throws GraphInvalidCountVerticesException /// </summary> /// <param name="countVertices">count of vertices</param> /// <param name="erdosRenyiModelProbabilityEnum">probability attribute - deafult = notAssigned</param> public ErdosRenyiModel(int countVertices, ErdosRenyiModelProbabilityEnum erdosRenyiModelProbabilityEnum = ErdosRenyiModelProbabilityEnum.notAssigned) { SetCountVertices(countVertices); this.erdosRenyiModelProbabilityEnum = erdosRenyiModelProbabilityEnum; usedVerticesHashSet = new HashSet <Graph.IVertexInterface>(); // Create graph graph = new Graph.GraphEdgeList(countVertices); graph.SetName(GRAPHNAME); graph.FullGenerateVertices(); graph.InitializeGraph(); // Set random SetRandom(); }