Страницы

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

воскресенье, 15 декабря 2019 г.

Как задать определенное количество символов используя C# Random

#c_sharp #winforms


Добрый день. Я новичок в программировании. Столкнулся с проблемой.
Как можно задать определенный объём символов при использовании функции Рандом.
Вот пример кода в котором массив чисел заполняется в случайном порядке 0 или 1.

Хотелось бы сделать возможность задать параметры распределения. Как пример, чтобы
80% массива были 0. При этом чтобы остался случайным порядок заполнения

for (int i = 0; i < newArray.Length; i++)
{
    newArray[i] = randomGen.Next(0, 2)
    if (newArray[i] == 0)
    {
        newArray[i] = black;
    }
    else
    {
        newArray[i] = white;                    
    }
}

    


Ответы

Ответ 1



К сожалению, «из коробки» такого решения нет. Но можно легко смоделировать. Например, если мы хотим вероятность нуля 80%: var percent = randomGen.Next(0, 100); // от 0 до 99 if (percent < 80) newArray[i] = black; else newArray[i] = white; Для большего количества альтернатив, например, 60% чёрного, 30% красного, 6% зелёного и 4% белого: var percent = randomGen.Next(0, 100); // от 0 до 99 if (percent < 60) // [0..60) => black newArray[i] = black; else if (percent < 60 + 30) // [60..90) => red newArray[i] = red; else if (percent < 60 + 30 + 6) // [90..96) => green newArray[i] = green; else // [96..100) => white newArray[i] = white; Ну и так далее.

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

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