Re: Равномерное распределение
От: Bell Россия  
Дата: 26.06.02 06:12
Оценка:
Здравствуйте Flamer, Вы писали:

F>Добрый день, уважаемые!


F>Тут такая мысль нарисовалась


F>Мне необходимо с равновероятным разбросом получать случайные числа в диапазоне от 1 до 5. Очевидно, что rand(5) не даст такой равномерности. А что общественность скажет вот о таком псевдокоде:




F>

F>randomize();

F>int getRand(int seed) {

F>      int added = 1000;
F>      return ( (int) rand(seed*added)/added );

F>}

F>


F>Будет ли он давать более равномерное распределение (в частности, интересует интервал от 1 до 10)? И есть ли "магическое" значение переменной added, которое дает более равномерное распределение?


А что это за функция
rand(int)???


А такой вариант не устроит?
rand()%5;

На выборке в 10000 элементов дает отклонение от идеала до 5%.
На выборке в 100000 элементов — до 0.6%.
Любите книгу — источник знаний (с) М.Горький
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.