В задаче необходимо будет строить случайную последовательность v[0],v[1],...,члены которой принадлежат конечному множеству, состоящему из элементов x[1],x[2],...,x[n]. Элементы x[1],...,x[n] повторяются в последовательности v[0],v[1],... с заданными частотами, соответственно равными p[1],...,p[n] (т. е. относительно последовательности v[0],v[1],... можно считать, что x[i] встречается с ней с вероятностью p[i] (i=1,...,n),p[1]+p[2]+...+p[n]=1).
Контроль солнечной энергии и ультрафиолетового излучения гарантирован, если http://www.a-form.ru/ на окна.
Для построения v[0],v[1],... используется следующий прием. Интервал (0,1) разбиваем на n интервалов, длины которых равны p[1],...,p[n]. Координатами точек разбиения будут p[1],p[1]+p[2],p[1]+p[2]+p[3],..., p[1]+p[2]+...+p[n-1]. Полученные интервалы обозначим через I[1],...,I[n]. Пусть r[0],r[1],... - случайная числовая последовательность, члены которой равномерно распределены в интервале (0,1). Перебираем числа r[0],r[1],..., и если очередное число r[k] попадает в интервал I[j] (1<=j<=n), то в качестве v[k] берем x[j] (вероят-ность попадания r[k] в некоторый интервал равна длине этого интервала). Если вдруг окажется, что r[k] совпадает с точкой разбиения (концом интервала), то можно условно считать, что число r[k] попало в интервал, лежащий справа от него.
Литература для ссылок на постановку задачи:
Уэзерелл Ч. Этюды для программистов. М.: Мир, 1982, стр. 46-54. |