Страницы

28 мая 2012 г.

pgScript. Генераторы случайных последовательностей. Числовые данные

Здравствуйте. Добро пожаловать в мой скромный блог.

       Сегодня я опишу генераторы случайных последовательностей числовых значений, которые используются в pgScript.

Целочисленные последовательности.

Следующая строка присвоит переменной "@Rec" значение генератора:

set @Rec = INTEGER ( Min, Max, [Sequence], [Seed] );
где,
Min - Минимальная граница генерации чисел.
Max - Максимальная граница генерации.
Sequence - Не обязательный параметр назначающий последовательность генерации чисел. (реакция генератора различна только на нулевое и ненулевое значение данного параметра).
Seed - Не обязательный параметр обозначающий индекс числа в последовательности. Т.е. если данный параметр установлен, то генератор будет возвращать не произвольное число, а число с указанным в данном параметре индексом, не зависимо от количества обращений.


Пример использования генератора:
declare @Rec1;
declare @Rec2;
declare @Rec3;
begin
/*генератор с диапазоном генерации от 5 до 15*/
     set @Rec1 = integer(5, 15);
     print @Rec1;
/*генератор с диапазоном генерации от 5 до 15. Возвращает 10-й по счету элемент генерируемой последовательности. (всегда статичен)*/
    set @Rec2 = integer(5, 15, 0,10);
    print @Rec2;
/*генератор с диапазоном генерации от 5 до 15 с измененной последовательностью генерации*/
    set @Rec3 = integer(5, 15, 1);
    print @Rec3;
end

Результат выполнения скрипта:
[PGSCRIPT ] 5
[PGSCRIPT ] 14
[PGSCRIPT ] 6


Числа с плавающей точкой.

       Формат инициализации генератора чисел с плавающей точкой немного отличается от предыдущего (целочисленного), типа. Ко всему что было ранее добавился параметр "precision", который задает точность (кол-во знаков после запятой) возвращаемого значения:

REAL(min, max, precision, [sequence], [seed]);

где,
precision - точность возвращаемого значения,
все остальные параметры аналогичны целочисленному генератору.

Пример:
declare @Rec1;
begin
/*генератор с диапазоном генерации от 5 до 15 c точностью 2...*/
    set @Rec1 = real(5, 15, 2);
    print @Rec1;
end

Результат:
[PGSCRIPT ] 7.47E+0

Пример №2:
Разница лишь в точности возвращаемого значения...

declare @Rec1;
begin
/*генератор с диапазоном генерации от 5 до 15 c точностью 5...*/
    set @Rec1 = real(5, 15, 5);
    print @Rec1;
end

Результат:
[PGSCRIPT ] 9.0827E+0\

Вот собственно и все. Мне пока больше нечего добавить по числовым генераторам. Буду пополнять пост по мере поступления новой информации.

Комментариев нет:

Отправить комментарий