Подтвердить что ты не робот

Случайное число: 0 или 1

Я слишком далеко смотрю, чтобы увидеть что-то такое же простое, как выбрать номер: 0 или 1?

        Random rand = new Random();

        if (rand.NextDouble() == 0)
        {
            lnkEvents.CssClass = "selected";
        }
        else
        {
            lnkNews.CssClass = "selected";
        }
4b9b3361

Ответ 1

Random rand = new Random();

if (rand.Next(0, 2) == 0)
    lnkEvents.CssClass = "selected";
else
    lnkNews.CssClass = "selected";

Random.Next выбирает случайное целое число между нижней границей (включительно) и верхней границей (исключительной).

Ответ 2

Если вы хотите 50/50 вероятность, я предлагаю:

Random rand = new Random();

if (rand.NextDouble() >= 0.5)
    lnkEvents.CssClass = "selected";
else
    lnkNews.CssClass = "selected";

Ответ 3

Кажется, что то, что вы хотите сделать (выберите между двумя значениями), более четко выражено с помощью метода Next, вместо метода NextDouble.

const int ExclusiveUpperBound = 2;
if (new Random().Next(ExclusiveUpperBound) == 0)

Полученное значение "больше или равно нулю и меньше" ExclusiveUpperBound.

Ответ 4

Random.NextDouble() будет выбирать любое двойное число от 0, но меньше 1,0. Большинство из этих чисел не равны нулю, поэтому ваше распределение будет не таким, как вы ожидаете.