ГОСТ Р ИСО 28640 - 2012
END FUNCTION
LET b = SR32U(Xor32(SL32U(s3, 3). s3>, I !b = («s3 « 3) A s3) »11);
LET s3 = Xor32<SL32U(And32(s3 . MskP.O),s3 = (((s3 &4294967280) «17) л b);
17). b)
LET iaus8S_31 = SR32U(Xor32(Xor32(sl. s2).return (long)((.sI As2 As3) »1):
s3), I)
B.4 Текст программы для метода Мсрсенна Тв истера
Ниже приведен текст программы для метода Мерсенна Твнстера на ятыке Си. Функция
genrand () генерирует псевдослучайные числа в виде целого 32-битового числа бет знака из
интервала от 0 до (2 *- 1) включительно. Функция genrand_31 () генерирует псевдослучайные
числа в виде целого 31-битового числа без знака из интервала от 0 до (2й - 1) включительно.
Функция init_genrand (s) инициализирует начальное число в виде 32-битового целого числа без
знака [целое число из интервала от 0 до (232- 1) включительно]. Перед обращением к genrand ()
или genrand_31 () необходимо один раз выполнить инициализацию init_genrand (s). Различные
начальные числа
s
приводят к генерации разных последовательностей случайных чисел.
Параметры в этой программе необходимо сохранять.
Если необходимо получить независимый набор случайных чисел в каждом из
многократных повторений при моделировании, к функции инициализации init_genrand (х)
следует обращаться только один раз перед началом моделирования. После каждого повторения
содержимое таблицы mtfP) размера Р и значение переменной mti должны быть сохранены и
использованы как начальные значения при следующем повторении.
Пример - В данном примере использовано р • 624 слова с параметрами (624, 397, 31, 32,
0x9908b0df 11, 7, 15, 18, 0x9d2c5680, 0xefc60000). Здесь числи из 10 знаков, начинающиеся с Ох,
являются 32-битовыми целыми без знака, представленными в шестнадцатеричном коде. Период
равен (2’**i7 - 1), и числа распределены равномерно в 623 риз.черном гиперкубе с 32-битовой
точностью. Кроме того последовательность соответствует равномерному распределению в 3 115-
мерном пространстве с 6-битовой точностью.
В данной программе длина «беззнакового длинного целого» составляет нс менее 32 бит.
Текст программы метода Мсрсенна Твнстера на языке Си
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 * 4 4 < » 4 44 ¥ 4 4 * 4 4 4 * 4 4 4 4 4 4 4 4 4 » 4 4 4 * 4 Ь4 4/
/* Параметры периода*/
/¥ постоянный вектор а ¥/
/* наиболее значимые (w-r) бит */
#dcfinc Р 624
Adeline Q 397
#dcfinc MATRIX_A Ox9908bOdfUL
#dcfinc L’PPER_MASK 0x80000000UL
#dcfinc LOWER_MASK 0x7ffft’fffUL
/• последние значимые г бит */
30