#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; Ну и так далее.
Комментариев нет:
Отправить комментарий