private void GetGraphPath(PathRegion pathRegion, int pEnd, int pStart) { List <Point3D> testFirstManipulator = new List <Point3D>(); int countGraphVerticesBeforeAdding = _graphVertices.Count; rbLog.AppendText("Добавляем вершины в граф..\n"); rbLog.ScrollToCaret(); rbLog.Refresh(); for (int i = 0; i < _iterations; i++) { Point3D currentPoint = new Point3D(TrueRandom.GetRandomInt(pathRegion.minX, pathRegion.maxX), TrueRandom.GetRandomInt(pathRegion.minY, pathRegion.maxY), TrueRandom.GetRandomInt(pathRegion.minZ, pathRegion.maxZ)); testFirstManipulator.Add(currentPoint); _graphVertices.Add(new GraphVertex(countGraphVerticesBeforeAdding + i, currentPoint, true)); } rbLog.AppendText("Удаление некорректных вершин..\n"); rbLog.ScrollToCaret(); rbLog.Refresh(); rbLog.AppendText("Расширяем матрицу весов..\n"); rbLog.ScrollToCaret(); rbLog.Refresh(); IsCorrectVertex(ref _graphVertices, _safeDistance, pEnd, pStart); _adjencyMatrixManipulator = ResizeAdjencyMatrixManipulator(_adjencyMatrixManipulator, _graphVertices.Count - _adjencyMatrixManipulator.GetLength(0)); int countLastAdjencyMatrix = _adjencyMatrixManipulator.GetLength(0); for (int i = countGraphVerticesBeforeAdding; i < _adjencyMatrixManipulator.GetLength(0); i++) { _graphVertices[i].Number = i; } rbLog.AppendText("Соединяем новые вершины..\n"); rbLog.ScrollToCaret(); rbLog.Refresh(); TryToConnect(_graphVertices, _distanceBetweenPoints, _adjencyMatrixManipulator, AlgoritmTryType.CleanDataWork); }
private void GetGraphPath(int pEnd, int pStart, PathRegion pathRegion) { List <Point3D> testFirstManipulator = new List <Point3D>(); rbLog.AppendText("Добавляем вершины..\n"); rbLog.ScrollToCaret(); rbLog.Refresh(); for (int i = 0; i < _iterations; i++) { Point3D currentPoint = new Point3D(TrueRandom.GetRandomInt(pathRegion.minX, pathRegion.maxX), TrueRandom.GetRandomInt(pathRegion.minY, pathRegion.maxY), TrueRandom.GetRandomInt(pathRegion.minZ, pathRegion.maxZ)); testFirstManipulator.Add(currentPoint); _graphVertices.Add(new GraphVertex(i, currentPoint, true)); } rbLog.AppendText("Удаление некорректных вершин..\n"); rbLog.ScrollToCaret(); rbLog.Refresh(); IsCorrectVertex(ref _graphVertices, _safeDistance, pEnd, pStart); _adjencyMatrixManipulator = new int[_graphVertices.Count, _graphVertices.Count]; for (int i = 0; i < _graphVertices.Count; i++) { _graphVertices[i].Number = i; } rbLog.AppendText("Составление матрицы смежности..\n"); rbLog.ScrollToCaret(); rbLog.Refresh(); TryToConnect(_graphVertices, _distanceBetweenPoints, _adjencyMatrixManipulator, AlgoritmTryType.CleanDataWork); }
public Neuron() { this.Synapses = new List <Synapse>(); //Initialize Synaptic Weights Randomly, on [0,1.0] TrueRandom n = new TrueRandom(); this.Bias = n.RandomValue; }
private IEnumerable <ScheduleView> GenerateOddTeamRoundRobin(List <string> teamNames) { var seasonInfo = _rosterService.GetSeasonInfoView().Result; var views = new List <ScheduleView>(); var startDate = seasonInfo.SeasonInfo.SeasonStartDate; for (var week = 0; week < teamNames.Count; week++) { var date = startDate.AddDays(7 * week); var weeklyMatches = new List <ScheduleView>(); if (teamNames.Count == 5) { weeklyMatches.AddRange(CreateFor5TeamWeek(week, teamNames, date)); } else if (teamNames.Count == 7) { weeklyMatches.AddRange(CreateFor7TeamWeek(week, teamNames, date)); } foreach (var match in weeklyMatches) { var swap = TrueRandom.TrueRandomGenerator(); if (!swap) { var temp = match.HomeTeam; match.HomeTeam = match.AwayTeam; match.AwayTeam = temp; } } views.AddRange(weeklyMatches); } return(views); }
/// <summary> /// Get random float between min and max /// </summary> /// <param name="trueRandom">ToDo</param> /// <param name="min">Min</param> /// <param name="max">Max</param> /// <returns>Float</returns> public static float GetRandomFloat(bool trueRandom, float min, float max) { float formula = (max - min) + min; return(trueRandom ? (float)TrueRandom.NextDouble() * formula : (float)FakeRandom.NextDouble() * formula); }
/// <summary> /// Get random int /// </summary> /// <param name="trueRandom">ToDo</param> /// <param name="max">Maximum</param> /// <returns>Int</returns> public static int GetRandomInt(bool trueRandom, int max) { return(trueRandom ? TrueRandom.Next(max) : FakeRandom.Next(max)); }
public Synapse() { TrueRandom n = new TrueRandom(); this.Weight = n.RandomValue; }
private IEnumerable <ScheduleView> GenerateRoundRobin(List <string> teamNames, string divisionName) { var seasonInfo = _rosterService.GetSeasonInfoView().Result; var views = new List <ScheduleView>(); if (teamNames.Count % 2 == 1) { return(GenerateOddTeamRoundRobin(teamNames)); } var teamSize = teamNames.Count; var weeks = Math.Min(teamSize - 1, 7); var halfSize = teamSize / 2; var teams = new List <string>(); teams.AddRange(teamNames); teams.RemoveAt(0); teamSize--; var startDate = seasonInfo.SeasonInfo.SeasonStartDate; for (var week = 0; week < weeks; week++) { var date = startDate.AddDays(7 * week); var teamIndex = week % teamSize; var firstTeam = teams[teamIndex]; var secondTeam = teamNames[0]; views.Add(new ScheduleView { ScheduleId = Guid.NewGuid(), HomeTeam = firstTeam, AwayTeam = secondTeam, HomeTeamScore = 0, AwayTeamScore = 0, WeekOf = date }); for (var index = 1; index < halfSize; index++) { firstTeam = teams[(week + index) % teamSize]; secondTeam = teams[(week + teamSize - index) % teamSize]; var swap = TrueRandom.TrueRandomGenerator(); if (!swap) { var temp = firstTeam; firstTeam = secondTeam; secondTeam = temp; } views.Add(new ScheduleView { ScheduleId = Guid.NewGuid(), HomeTeam = firstTeam, AwayTeam = secondTeam, HomeTeamScore = 0, AwayTeamScore = 0, WeekOf = date }); } } if (weeks < 4) { var tempViews = new List <ScheduleView>(views); foreach (var view in views) { var round2 = new ScheduleView { ScheduleId = Guid.NewGuid(), HomeTeam = view.AwayTeam, AwayTeam = view.HomeTeam, HomeTeamScore = 0, AwayTeamScore = 0, WeekOf = view.WeekOf.AddDays(21) }; tempViews.Add(round2); } views = tempViews; } return(views); }