Здравствуйте 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%.