Skip to content

Посты

Код: Взвешенное случайное распределение

6 октября 2010 г. • 1 мин чтения

Код: Взвешенное случайное распределение

Это гениально; я мог бы использовать это пару лет назад. Публикую это здесь для сохранности. Обратите внимание, что я НЕ использую класс random. Класс random не является по-настоящему случайным. Он основан на времени. Время предсказуемо.

RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();

byte[] result = new byte[8];
rng.GetBytes(result);
double rand = (double)BitConverter.ToUInt64(result, 0) / ulong.MaxValue;

//40 процентов шанса быть выбранным.
if (rand > 0.40d )
{
 ...
}

Автор: Чак Конвей специализируется на разработке программного обеспечения и генеративном ИИ. Свяжитесь с ним в социальных сетях: X (@chuckconway) или посетите его на YouTube.

↑ Наверх

Вам также может понравиться