Генератор случайных чисел
СОЮЗ СОВЕТСКИХ
СОЦИАЛИСТИЧЕСКИХ
РЕСПУБЛИК (19) (11) (.511 4 G 06 F 7/58 .
ОПИСАНИЕ ИЗОБРЕТЕНИЯ
М А BTOPCHOMY СВИДЕТЕЛЬСТВУ
) ГОСУДАРСТВЕННЫЙ КОМИТЕТ СССР
ПО ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТКРЫТИЙ (21) 4018788/24-24 (22) 29.01.86 (46) 15.08.88. Бюл. 1(- 30 (71) Специальное проектно-конструкторское бюро средств автоматизации нефтедобычи и нефтехимии "Нефтехимпромавтоматика" (72) Е.В.Кузнецов и IO.Ë.Ìóçàôàðîâà (53) 681.3(088.8) (56) Авторское свидетельство СССР
11 - 378854, кл. r, 06 F 7/58, 1970.
Авторское свидетельство СССР
У 1012252, кл. 0 06 F 7/58, 1983. (54) ГЕНЕРАТОР СЛУЧАЙНЫХ ЧИСЕЛ (57 ) Изо брет ение относится к области вычислительной техники и может быть использовано при построении устройств, предназначенных для статистического моделирования. Цель изобретения — повьппение точности.
Генератор содержит генератор тактовых импульсов, триггер, генератор равномерно распределенных случайных чисел, два блока возведения в куб, четыре квадратора, девять блоков умножения, два блока деления, два сумматора, два элемента И, два распределителя импульсов и два регистра. Поставленная цель достигается за счет введения новых связей и блоков. 2 ил.
141700
Изобретение относится к вычислительной технике и может быть использовано при статистическом моделировании выборок случайной наработки
5 до отказа иэделия.
Цель изобретения — повышение точности генератора.
На фиг. 1 приведена блок-схема генератора случайных чисел", на фиг.2- 1О временные диаграммы, поясняющие работу генератора.
Генератор случайных чисел содержит генератор 1 тактовых импульсов, триггер 2, генератор 3 равномерно распре- !5 деленных случайных чисел (ГРРСЧ), блоки 4 и 5 возведения в куб, квадраторы 6-10, блоки 11-19 умножения, блоки 20-22 вычитания, блоки 23 и 24 деления, сумматоры 25 и 26, элементы И
27 и 28, распреДелители 29 и 30 импульсов, регистр 31 и регистр 32 памяти.
Генератор случайных чисел работает следующим образом. 25
На первый вход обнуления триггера
2 поступает импульс (фиг. 2а), который устанавливает триггер 2 в состояние "О". На прямом выходе триггера
2 формируется сигнал постоянного уров-30 ня "О" (фиг. 2б), а на инверсном выtt tt ходе — сигнал постоянного уров н я 1 (фиг . 2в ), которые по ступ ают на входы элементов И 2 7 и 2 8 соо т вет ст венно закрывая тем самым элемент И 2 7
35 и подготавливая к открытию элемент
И 28.
Затем на вход "Пуск- генератора поступает импульс (фиг. 2г ), который запускает генератор 1. Импульсы с @ выхода генератора 1 (фиг. 2д) поступают через элемент И 28 на вход распределителя 30 импульсов (фиг. 2е, t, с1, ), а так как элемент И 27 закрыт,, то на тактовые импульсы на вход
45 распределителя 29 импульсов не поступают (фиго 2жу t (t, ) Сигнал с первого выхода распределителя 30 (фиг. 2з) поступает на первые входы синхронизации блока 14 умножения, квадратора 7 и блока 5 возведения в куб, на информационные входы которых с выхода регистра 32 поступает код (9 =(р l(l . Блок 14 умножения формирует код !Сtlt y9), а
55 квадратор 7 и блок 5 возведения в куб формируют коды j9 и (9 ) соответственно. б 2
Сигнал "1" с третьего выхода распределителя 30 поступает на вторые входы синхронизации хвадратора 7, блока 5 возведения в куб, блоков 15 и 16 умножения и на первый вход синхронизации блока 15 умножения и квадратора 10, Код (9 $ с выхода квадратора 7 поступает на информационные входы блока 15 умножения и квадратора 10, которые формируют коды (C ) к (9 и (9 ) соответственно, Код (0$ с выхода блока возведения в куб поступает на информационный вход блока
l6 умножения, который формирует код
jc,) (6 ).
Сигнал "1" с четвертого выхода распределителя 30 импульсов поступает на вторые входы синхронизации квадратора 10 и блока 17 умножения. Код (94) с выхода квадратора 10 поступает на информационный вход блока 17 умножения, в котором формируется код (С 4 (9
Сигнал "1" с второго выхода распределителя 30 импульсов поступает на первые входы синхронизации блоков
15-17, сумматора 26 и на второй вход синхронизации блока 14. Коды (С,) "
«Е9>, (С f ° C9 ), (С,) (ф и С„) х (9 с выходов блоков 14-17 умножения поступают на первый, третий, четвертый и второй информационные входы сумматора 26 соответственно, который осуществляет сложение кодов величин, поданных на его информационные входы, и кода числа 1, постоянно поданного на его пятый информационный вход (не показан), т.е. формирует код А =
=j1/+(C,I (6 +(С,) )e ll+(C, .I g +
+(С, (Е4$°.
Сигнал "1" с пятого выхода распределителя 30 импульсов поступает на второй вход синхронизации сумматора
26 и первый вход синхронизации квадратора 8. Код (All с выхода. сумматора
26 поступает на информационный вход квадратора 8, который формирует код (р
Сигнал "1" с шестого выхода распределителя 30 импульсов поступает на второй вход синхронизации квадратора 8 и первыи вход синхронизации квадратора 9. Код jA I с выхода квадратора 8 поступает на информационный вход квадратора 9, в котором формируется код IA j .
Сигнал "1" с седьмого выхода распределителя 30 импульса поступает на!
11 I I !
Сигнал 1 с шестого выхода распределителя 29 импульсов поступает
1417006
4 второй вход синхронизации квадратора подан код числа ),. ), таким образом. го 57
9 и первый вход синхронизации блока блок 22 вычитания формирует код jZ, 24 деления. Код )A i c выхода квадра- =)О 5 -Я Д7 С
-(, - () Я. игнал I с третье1.; тора 9 поступает на первый информа- выхода распределит 29
5 еля импульсов ционный вход блока 24 деления на поступает н
f пает на второи вход синхрониэавторой информационный вход которого ции блока 22 вычитания и на первые постоянно подан код числа 0 д сла 0,5, таким входы синхронизации квадраторов блока образом, блок 24 деления формирует 11 умножения, блока 4 и квадратора 6, 7
Ið Код, с выхода блока 22 вычитания
Сигнал 1" с восьмого выхода рас- поступает на информационные входы пределителя 30 импульсов поступает блок II ока умножения в котором формина вторью входы синхронизации блока руется код j K,lõ.(21, где К =2,506628
{ ) 1А) д квадратора 6, в котором формируется, ) (А ) с выхода блока 24 деления 1 код 7 код,, и блока ч возведения в куб поступает на вход вычитаемого блока г ъ в котором формируется код (Z
2l вычитания, на вход уменьшаемого С игнал I с четвертого выхода аскоторого постоянно подан код числа р
1 а пределителя 29 импульсов поступает на таким образом, блок 2! вычитания ф„„„„„д(ж = 11 0,5 ГА
С игнал 1 с девятого выхо а аск д — (, > А ° 20 6 и блока 4 возведения в куб и первые о выхода рас- входы синхронизации блоков 12, 13 и пределителя импульсов 30 (фиг. 2и) )8 н г 71 умножения. Код (7, ) с выхода ква— поступает на вход установки в "1" н (,) д дв ратора 6 поступает на информационный триггера 2, переводя его в состояние б
t1 I II при котором на первом (прямом) 25 формац.юнный вход блока 18 умножения выходе триггера 2 формируется сигнал а код 1 1 с выхода блока 4 воэведепостоянного уровня "1" (фиг. 2б ф, ния в куб поступает на информационный
1;,, а на втором (инверсном) вы- . вход блока !2 умножения и первый ин"0" 2 ходе — сигнал постоянного уровня формационнь "
m вход лоха о умножения. б 18 °
0 (фиг. 2в t t ). .Т
0 (фи . 2, < ) . актовые им- 30 Блоки 12 и 3 умножения формируют, копульсы с выходя генератора ) прекра- ды rK шают поступать на вход распределите- но, где К =2,624935, С =3,1 а пе вый ля 30 импульсов (фиг. 2е t > t ) е, >,, а начинают поступать через элемент И
27 на вход первого распределителя 29
° ° импульсов (фиг. 2ж, t > t ) .
35 восьмого выхода распределителя 29 импульсов поступает на
Сигнал 1 с девятого выхода аср — вторые входы синхронизации блока )3 пределителя 29 (фиг. 2к) поступает
l l 1! умножения и блока 20 вычитания. Код на вход Пуск ГРРСЧ 3, который Аор- С" мирует код первого случайного числа
) с выхода блока 13 ножен (4О поступает на вход вычитаемого блока
1 равномерно распределенного в интервале 0,1).
I:,3.
20 вычитания, на вход уменьшаемого
tl II которого постоянно подан код числа
Сигнал с первого выхода аср так что блок 20 вычитания формипределителя 29 импульсов поступа ет рует код 11 — (С ) 1(Х на первые входы синхронизации блока
21 вычита иг а с седьмого выхода расвычитания и блока 19 умножения
1 пределителя 29 импульсов поступает на на первый и второй ин рмационные р формационные первый вход синхронизации блока 20 входы которого поступают коды Гф и
1 у
Ц вычитания, на второй вход синхрониэа с выходов блока 21 вычитания и ции б 18 ции лока умножения и блока 23 генератора 3. Блок )9 умножения фор- деления. Код f)" — Г"
50 я. од -1 . ) . с выхода мирует <Р 1, блока 20 вычитания поступает на вход
Сигнал ")" с второго выхода рас- делит л б 23 е я лоха деления, на вход пределителя 29 импульсов поступает на делимого которого поступает код K » второй вход синхронизации блока )9 «(к $ с выхода блока 18 умножения.
31 умножения и первый вхо синх д рониза- Ьлок 23 деления формирует код ) ции блока 22 вычитания. Код (P j < f () «j Z j /(f)) -(C I Z )). с выхода блока 19 умножения поступает на вход 22 блока вычитания, на вход уменьшаемого которого постоянно
1417006 на вторые входы синхронизации сумматора 25, блоков 11 и 12 умножения и на первый вход синхронизации блока
23 деления. Коды (K,1»р (31, (K,1»в(Е » и j K I ч (Е $ /((2 - (C ) р (Zq $ ) с выходов блоков 11 и 12 умножения и блока
23 деления соответственно поступают на третий, первый и второй информационные входы сумматора 25, в котором 10 формируется код первого случайного числа (Х .
Сигнал "l" с пятого выхода рас" пределителя 29 импульсов (фиг. 2л) поступает на первый вход синхрониза- 15 ции сумматора 25 и вход синхронизации блока 31 в котором фиксируется код первого случайного числа jX), Процесс получения кодов последующих случайных чисел (Х) происходит 20 аналогично описанному.
Сущность изобретения основывается на схемной реализации метода обратных. функций в сочетании с разложением в ряд функции распределения.
Известно, что согласно методу об.ратных функций значение t случайной величины с функцией распределения F(t ot, P ) является решением уравнения 3() @ (-- — ) — 1+ (—,) Р(1 p р )тл р-ООс цсоа
Ь (-) 45
Г Ор (2), p i2 тле Р (о)=(2р) 1 е dI — норннро0 ванная HOpMBJIbHBH функция у» распределения.
Подставляя (2) в (1), получаем
q (— )-1+Ф(- )-P(— )= О, (3) откуда следует (<-I" )=l e(> )(l Г (4) Z(t,к, p)-(=0, (l) где - значение случайной величины, имеющей равномерное распределение на интервале j0,1J; " параметры функции распределения.
Известно также, что усеченная нормальная функция распределения с параметрами р и 5 записывается в ви- 40 де:
Так как случайные числа l имеют такое же равномерное распределение, что и числа р то равенство (4) перепишем в виде:
Ч (- -й) 1 ()$ (4) Из (4 ) следует, что значение t случайной величиныр имеющей усеченное нормальное распределение с параметрами р и о, определяется выражением = +И (1 e()(), (5) где 9 () — функция, обратная нормированной нормальной функции распределения, Таким образом, для формирования значений t случайной величины с усеченным нормальным распределением с параметрами и о необходимо формировать значения
Х=Ф (1-Ф(†) )
Т (e) z=i ð(— )у (7) случайной величины, равномерно раслренеленной в интервале (I I,— ),I).
fll
Так как в прототипе случайное число Х генерируется по зависимости х=к,к+к,2, +к,z /(1-с 2 ), (8) где K К рк», С вЂ” заданные константы;
Z — - значение случайной величины, равномерно распределенной в интеРвале»-1/2, +1/2)р то для приведения Z в выражении (7) к интервалу (-1/2, +1/2 выражение (7 ) необходимо записать в виде:
Z=0,5-9(— )$. (7 ) Для вычисления значения У (— ) вос Т пользуемся известной аппроксимацией:
Ю (8)-1 <Р,, (9) (1+ C;Е )"
»сI где С; - заданные константы; С, =
0,196854; С =0,115194; С =
0,000344; С =0,019537. нормально распределенной случайной величины с нулевым математическим ожи.данием и единичной дисперсией по значениям
7 41700б 8
Следовательно, для формирования рого соединен с информационными вхозначений t случайной величины с усе- дами первого квадратора и первого ченным нормальным распределением с блока возведения в куб, о т л и ч апараметрами р и Р необходимо:l) по от- ю шийся тем что с целью повы5
Э 7 ношению параметров p/ Р вычислить эна- щения точности, в него введены втсчение Ф (р/Р) по формуле (9}; 2) ис- рой блок возведения в куб, четыре у () квадратора, пять блоков умножения п ь я значение - и первое слу- два блока вычитания, второй б ок дечайное число (, вычислить значение Z tp ления, второй сумматор, второй эле/ по формуле (7 ); 3) используя значение мент И, первый и второй распределиЕ, вь.числить значение Х по формуле тели импульсов и регистр памяти, вы(8); 4) используя значение Х и пара- ход которого соединен с информационметры р и Е, вычислить первое случай- ными входами пятого блока умножения
Э ное число С по формуле (5) ° 15 второго квадратора и второго блока
Для получения следующих случайных возведения в куб, выход пятого блока чисел повторяются п.2, 3 и 4 с ис- умножения соединен с первым информапользованием следун1щих случайных чи- ционным входом второго сумматора, вы"1 ° ход которого соединен с информацион20 ным входом третьего квадратора, выход которого соединен с информационФормула и з о б р е т е н и я ным входом четвертого квадратора,вы— ход которого соединен с первым инфорГенератор случайных чисел со е— лв OÀeÐ мационным входом второго блока дележащий генератор тактовых импульсов, 25 ния, выход которого соединен с пертриггер, генератор равномерно распре- вым информационным входом второго деленных случайных чисел, первый блока вычитания, выход которого сое1 блок возведения в куб, первыи квадра" динен с первым информационным выходом тор, четыре блока умножения, первый шестого блока умножения, выход котоблок вычитания, первый блок деления, ЗО рого соединен с информационным входом первыи сумматор, первый элемент И и третьего блока вычитания, выход которегистр, выход которого является вы- рого соединен с информационным входом ходом генератора, причем прямой вы- первого квадратора, выход второго ход триггера соединен с первым вхо- квадратора соединен с информационным дом первого элемента И, выход перво- входом седь о б дом седьмого лока умножения и го блока возведения в к б сое инеи д у соединен с подключен к информационному входу пяпервым информационным входом первого того квадратора, выход которого соедиблока умножения выхо д которого сое- нен с информационным входом восьмого динен с первым инфо ма онным в о ф P ци Hb>M входом блока умножения, выход котороГо соеперзого сумматора, выход пе вого блопервого бло 4р динен с вторым информационным входом ка возведения в куб соединен с пе—
У д с пер второго сумматора, третий информационвым информационным входом вто ого х Дом второго ный вход которого соединен с выходом блока умножения вто ой инфо ма ионР информацион седьмого блока умножения, выход втоный вход которого соединен с выхо ом
Р д с вь одом рого блока возведения в куб соединен квадратора, выход второго блока ум- 45 с информационным входом девятого блоножения соединен с пе вым инфо мад п р м информа ка умножения, выход которого соедиционным входом первого блока деле- нен с четвертым информационным входом ния, второй информационный вход ко- второго суммато а мм тора, вход апуск ге"3 торого соединен с выходом первого нератора тактовых импульсов является блока вычитания, информационный вход входом "Пуск" генератора выход ret которого соединен с выходом третье- нератора тактовых импульсов соединен го блока умножения, информационный с вторым входом первого элемента И, вход которого соединен с выходом пер- выход которого соединен с входом первого квадратора, выход первого блока .вого распределителя импульсов, первый деления соединен с вторым информа- выход которого соединен с первь и
55 п выми ционным входом первого сумматора, входами синхронизации шестого блока третий информационный вход которого . .умножения и второго блока вычитания, соединен с выходом четвертого блока второй выход первого распределителя умножения, информационный вход кото- импульсов подключен к второму входу
15
45
9 14 синхронизации шестого блока умножения и к первому входу синхронизации третьего блока вычитания, второй вход синхронизации которого соединен с первыми входами синхронизации четвертого блока умножения, первого квадратора, первого блока возведения в куб и подключен к третьему выходу первого распределителя импульсов, четвертый выход которого соединен с первыми входами синхронизации первого, второго и третьего блоков умножения и подключен к вторым входам синхронизации первого квадратора и первого блока возведения в куб, пятый выход первого распределителя импульсов соединен с входом "Запись" регистра и первым входом синхронизации первого сумматора, второй вход синхронизации которого соединен с вторыми входами синхронизации первого и четвертого блоков умножения, подключен к первому входу синхронизации первого блока деления и соединен с шестым выходом первого распредеЛителя импульсов, .седьмой выход которого соединен с вторыми входами синхронизации второго блока умножения и первого блока деления и подключен к первому входу синхронизации первого блока вычитания, второй вход синхронизации которого соединен с вторым входом синхронизации третьего блока умножения и подключен к восьмому выходу первого
1 распределителя импульсов, выход генератора тактовых импульсов соединен с первым входом второго элемента
И, второй вход которого соединен с инверсным выходом триггера, вход установки в "О" которого является вхор. дом "Останов" генератора, выход второго элемента И соединен с входом второго распределителя импульсов, первый выход которого соединен с первыми входами синхронизации второго
17006 10 блока возведения в куб, второго квадратора и пятого блока умножения, ВТо рой вход синхронизации которого соединен с первым входом синхронизации второго сумматора, подключен к первым входам синхронизации седьмого, восьмого и девятого блоков умножения и соединен с вторым выходом второго распределителя импульсов, третий выход которого соединен с вторыми входами синхронизации второго квадратора, седьмого и девятого блоков умножения, второго блока возведения в куб и подключен к первому входу синхроннэации пятого квадратора, второй вход синхронизации которого соединен с вторым входом синхронизации восьмого блока умножения и подключен к четвертому выходу второго распределителя, пятый выход которого соединен с вторым входом синхронизации второго сумматора и первым входом синхронизации третьего квадратора, шестой выход второго распределителя соединен с вторым входом синхронизации третьего квадратора и первым входом синхронизации четвертого квадратора, второй вход синхронизации которого соединен с первым входом синхронизации второго блока деления и подключен к седьмому выходу второго распределителя импульсов, восьмой выход которого соединен с вторыми входами синхронизации второго блока деления и второго блока вычитания, выход генератора равномерно распределенных случайных чисел соединен с вторым информационным входом шестого блока умножения, девятый выход второго распределителя импульсов соединен с входом установки в "1" триггера, девятый выход первого распределителя импульсов соединен с входом "Пуск" генератора равномерно распределенных случайных чисел.
ia>sou
17
1З
1417006
Составитель И.Столяров
Редактор Е,Конча Техред Л.Олийнык Корректор M.Демчик
Заказ 40б7/48
Тираж 704 Подписное
ВНИИПИ Государственного комитета СССР по делам изобретений и открытий
113035, Москва, Ж-35, Раушская наб., д. 4/5
Производственно-полиграфическое предприятие, r. Ужгород, ул. 11риектная, 4







