Я пишу генератор математических задач для своего проекта курсовой работы, и я столкнулся с проблемой, которую я могу безобразно обойти, но я хотел бы понять, почему это происходит.
У меня есть конструктор он берет целое число и присваивает его семени внутри 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;
}