Как мне создать случайные числа в диапазоне?
268
Можешь попробовать
Random r = new Random();
int rInt = r.Next(0, 100); //for ints
int range = 100;
double rDouble = r.NextDouble()* range; //for doubles
Посмотри на
Случайный класс , метод Random.Next (Int32, Int32) и метод Random.NextDouble
double rDouble = (r.NextDouble()*2)-1.0;
Random()
использует зависящее от времени начальное число, но запись этого явно лучше для удобочитаемости.Попробуйте код ниже.
источник
Что-то вроде:
источник
DateTime.Now.Millisecond
?Random
уже заполнен системным значением иMillisecond
представляет собой число от 0 до 999. Если бы эта пара строк всегда была вместе в коде, было бы только 1000 возможных значений из-rnd.Next
за того, что начальное число сбрасывалось каждый раз. То же начальное число, то же самое случайное число. Я бы оставил ручное семя.Environment.TickCount
.Использование:
источник
Для будущих читателей, если вы хотите случайное число в диапазоне, используйте следующий код:
C # Случайный двойной между мин и макс
Пример кода
источник
return new Random().NextDouble() * (maxNumber - minNumber) + minNumber;
Помимо Случайного класса , который генерирует целые и двойные числа, рассмотрим:
Вопрос переполнения стека Генерация (псевдо) случайных ограниченных значений (U) Int64 и Decimal
Класс C # RandomProvider
источник
Вот обновленная версия от Darrelk ответа . Это реализовано с использованием методов расширения C # . Он не выделяет память ( new Random () ) каждый раз, когда вызывается этот метод.
Использование (обязательно импортируйте пространство имен, которое содержит класс RandomExtensionMethods):
источник