Страницы

Поиск по вопросам

понедельник, 29 апреля 2019 г.

random заполняет две матрицы одинаковыми значениями

Рандом работает не так как нужно: при каждом вызове функции Random, матрицы заполняются одинаково
public void Random() { Random random = new Random();
for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { matrix[i, j] = random.Next(0, 10); } } }


Ответ

По умолчанию, Random использует текущее время, в качестве начального значения в генераторе псевдослучайных чисел. Раз у Вас обе матрицы одинаковые, значит вызовы Random() функции происходят слишком близко по времени. В качестве решения, Вы можете использовать один объект класса Random в обоих вызовах, чтобы исключить подобную ситуацию; т.е. Вам нужно вынести Random в поле класса.

Комментариев нет:

Отправить комментарий