Int random ( int N )

{

return rand() % N; // случайное число в интервале [0,N-1]

}

С ее помощью (вызывая ее много раз подряд) можно получать последовательность случайных чисел в интервале [0,N-1]с равномерным распределением.

Теперь попытаемся использовать эту функцию для интервала [a,b]. Очевидно, что формула

k = random(N) + a;

дает последовательность в интервале [a,a+N-1]. Поскольку нам нужно получить интервал

[a,b], сразу имеем b=a+N-1, откуда N=b-a+1. Поэтому

Для получения случайных целых чисел с равномерным распределением в интервале [a,b]

надо использовать формулу

k = random(b-a+1) + a;

Более сложным оказывается вопрос о случайных вещественных числах. Если разделить

результат функции rand()на RAND_MAX:

x = (float) rand() / RAND_MAX;

мы получим случайное вещественное число в интервале [0,1) (при этом надо не забыть привести одно из этих чисел к вещественному типу, иначе деление одного целого числа на большее целое число будет всегда давать ноль).

Длина интервала [0,1)такой последовательности равна 1, а нам надо получить интер-

вал длиной b-a. Если теперь это число умножить на b-aи добавить к результату a, мы получаем как раз нужный интервал.

Для получения случайных вещественных чисел с равномерным распределением в интервале

[a,b)надо использовать формулу

x = rand()*(b-a)/RAND_MAX + a;

До этого момента мы говорили только о получении случайных чисел с равномерным распределением. Как же получить неравномерное? На этот вопрос математика отвечает так: из равномерного распределения можно получить неравномерное, применив к этим данным некоторую математическую операцию. Например, чтобы основная часть чисел находилась в середине интервала, можно брать среднее арифметическое нескольких последовательных случайных чисел с равномерным распределением.








Дата добавления: 2015-10-05; просмотров: 636;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.002 сек.