C# Случайный генерирует другое значение с тем же семенем - PullRequest
0 голосов
/ 29 апреля 2020

Я пишу генератор математических задач для своего проекта курсовой работы, и я столкнулся с проблемой, которую я могу безобразно обойти, но я хотел бы понять, почему это происходит.

У меня есть конструктор он берет целое число и присваивает его семени внутри Random (семя). Затем я go, чтобы сгенерировать все значения с использованием этого случайного.

Существует два возможных режима генерации. Я либо создаю блок из 100 проблем, а затем случайным образом выбираю пару из этих 100 и отображаю их в документе HTML. Работает нормально. Однако, сразу после генерации блока, если я пытаюсь сгенерировать эти проблемы, используя его номер, мой Random дает мне разные значения для тех же переменных.

Однако, когда я пытаюсь вручную выбрать проблему с этим номером, он работает хорошо со второй попытки, давая мне проблему, которую я хотел. То же самое, когда я запускаю программу и go прямо на руках выбираю конкретную проблему.

Вот конструктор

readonly Random rng = new Random(seed);

public Level2(int seedVal)    
{
    seed = seedVal;
    Key = GenerateKey(seedVal)+"2";
    GenerateXval(seedVal);
    GenerateValuesGeneral();
    this.htmlFormula = GenerateProblem(seedVal % 4);
}

Вот часть кода, которая генерирует блок проблем

private void GenerateTasksLevel2(int n)
{
    List<string> problems = new List<string>();
    for (int i = 0; i < n; i++)
    {
        Level2 task = new Level2(i);
        problems.Add(task.htmlFormula);
    }
    Problems = problems;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...