Я пытаюсь создать два случайных числа: один для строки и один для столбца.Правильная реализация генератора случайных чисел C#
В этом точном экземпляре это многомерный массив с 4 строками и 4 столбцами. Таким образом, генератор чисел может использовать значения от 0 до 3 для строк и столбцов.
Я также должен убедиться, что дублирующих точек нет, поэтому, если в первый раз выбран [0,0], [0,0] не может быть использован снова.
Когда я реализую свое решение и распечатываю результаты, требуется время для C# для генерации рабочего набора чисел: LONG.
Например, я ищу только на 10 номеров из 16 возможностей в этом случае, и это то, что выход был похож:
[1,1]
// {snip 26 times}
[3,3]
// {snip 76 times}
[0,0]
// {snip 83 times}
[2,2]
// {snip 69 times}
[0,0]
// {snip 84 times}
// {etc...}
[0,1] // which is a valid number
Почему это найти [0,0] в виде набора случайные числа 84 раза подряд? Не использует ли она локальную энтропию моей системы или что?
Вот соответствующий код:
private static void RandomlyAssignSeat(string name, string[,] seatingArray)
{
int row, col;
// loop until seat is not reserved, then reserve it
do
{
// generate random row
row = RandomNumber(0,seatingArray.GetLength(0));
// generate random column
col = RandomNumber(0,seatingArray.GetLength(1));
Console.WriteLine("[" + row + "," + col + "]");
} while (ReserveSeat(row, col, name, seatingArray) == false);
} // end method RandomlyAssignSeat
с RandomNumber глядя, как так:
private static int RandomNumber(int min, int max)
{
Random random = new Random();
return random.Next(min, max);
} // end method RandomNumber
Я считаю, что становится особенно задохнулся 90 записей с максимальным набором 16x6 (или 96 записей)
Надеюсь, что в 'ReserveSeat' нет условий гонки ... – icktoofay