Ðåãèñòðîâîå ïðåäñòàâëåíèå ÷èñåë â ÝÂÌ è ìîäåëèðîâàíèå ðàâíîìåðíî ðàñïðåäåëåííûõ ÷èñåë ñ áîëüøèì ïåðèîäîì Â. Á. Õðèñòèíè÷, Î. Â. Õðèñòèíè÷ Ñàíêò-Ïåòåðáóðãñêèé ãîñóäàðñòâåííûé óíèâåðñèòåò1  ðàáîòå ââîäèòñÿ óäîáíîå ïðåäñòàâëåíèå áîëüøèõ ÷èñåë â ÝÂÌ ñ ó÷åòîì àðõèòåêòóðû ïðîöåññîðîâ òèïà Intel P6. Èñõîäÿ èç ââåäåííîãî ïðåäñòàâëåíèÿ ðàññìàòðèâàåòñÿ âîïðîñ î ìîäåëèðîâàíèè ðàâíîìåðíûõ ïñåâäîñëó÷àéíûõ ÷èñåë ñ áîëüøèì ïåðèîäîì. Îñíîâàíèå ñèñòåìû ñ÷èñëåíèÿ è ôîðìà ïðåäñòàâëåíèÿ ñëó÷àéíîãî ÷èñëà ñâÿçûâàþòñÿ ñ èíôîðìàòèâíîñòüþ ñèñòåìû ñ÷èñëåíèÿ. 1. Ââåäåíèå Âîïðîñ î ìîäåëèðîâàíèè ñëó÷àéíûõ ÷èñåë â ïðîèçâîëüíîé ñèñòåìå ñ÷èñëåíèÿ ðàññìàòðèâàëñÿ â [1], ãäå îñíîâíîå âíèìàíèå óäåëÿëîñü ñèñòåìàì ñ÷èñëåíèÿ ñ îñíîâàíèåì p = 2; 5; 10, ÷òî áûëî ñâÿçàíî ñ àëãîðèòìîì ìîäåëèðîâàíèÿ ÷èñåë â äåñÿòè÷íîé ñèñòåìå ñ÷èñëåíèÿ. Òàì æå áûëî ââåäåíî ïîíÿòèå ýôôåêòèâíîñòè ìåòîäà, ñâÿçàííîå òîëüêî ñ ÷èñëîì ðàçðÿäîâ äâîè÷íûõ ÷èñåë è ñ ÷èñëîì ðàçðÿäîâ, çàíèìàåìûõ ÷èñëîì â äðóãîé ñèñòåìå ñ÷èñëåíèÿ. Òàêîå ïðåäñòàâëåíèå ýôôåêòèâíîñòè ìåòîäà íå ñâÿçàíî íà ïðÿìóþ ñ ïåðèîäîì äàò÷èêà, íå îòðàæàåò òðóäîåìêîñòü àëãîðèòìà è èíôîðìàòèâíîñòü èñïîëüçóåìîé ñèñòåìû ñ÷èñëåíèÿ.  äàííîé ðàáîòå ââîäèòñÿ óäîáíîå ïðåäñòàâëåíèå áîëüøèõ ÷èñåë â ÝÂÌ ñ ó÷åòîì àðõèòåêòóðû ñîâðåìåííûõ ïðîöåññîðîâ òèïà Intel P6, ÷òî ïîçâîëÿåò ïðåäëîæèòü àëãîðèòìû äëÿ èñïîëüçîâàíèÿ äîïîëíèòåëüíûõ ðåãèñòðîâ ïðîöåññîðà ïðè ïðîâåäåíèè àðèôìåòè÷åñêèõ îïåðàöèé. Èñõîäÿ èç ââåäåííîãî ïðåäñòàâëåíèÿ ðàññìàòðèâàåòñÿ âîïðîñ î ìîäåëèðîâàíèè ðàâíîìåðíûõ ïñåâäîñëó÷àéíûõ ÷èñåë. Äëÿ óâåëè÷åíèÿ ïåðèîäà ïñåâäîñëó÷àéíûõ ÷èñåë îñíîâàíèå ñèñòåìû ñ÷èñëåíèÿ è ôîðìà ïðåäñòàâëåíèÿ ñëó÷àéíîãî ÷èñëà ñâÿçûâàþòñÿ ñ èíôîðìàòèâíîñòüþ ñèñòåìû ñ÷èñëåíèÿ. 2. Ðåãèñòðîâîå ïðåäñòàâëåíèå äëèííûõ ÷èñåë â ÝÂÌ Äëèíà ïåðèîäà äàò÷èêà ðàâíîìåðíûõ ÷èñåë çàâèñèò îò ÷èñëà èñïîëüçóåìûõ ðàçðÿäîâ ÝÂÌ ïðè åãî ìîäåëèðîâàíèè. Íàèáîëåå ÷àñòî èñïîëüçóåòñÿ ìóëüòèïëèêàòèâíûé, êîíãðóýíòíûé äàò÷èê ñëó÷àéíûõ ÷èñåë ñ ðàâíîìåðíûì ðàñïðåäåëåíèåì èç [0; 1] 1 Zn+1 = A Zn [mod(2L )]; n = 1; 2:::; (1) c Â. Á. Õðèñòèíè÷, Î. Â. Õðèñòèíè÷, 2005 274 ãäå Zn ïîñëåäîâàòåëüíîñòü ñëó÷àéíûõ ÷èñåë, A ìóëüòèïëèêàòîð, L ÷èñëî ðàçðÿäîâ äëÿ ñðàâíåíèÿ. Ïåðèîä ïñåâäîñëó÷àéíûõ ÷èñåë äëÿ äàò÷èêà (1) ðàâåí 2L 2 ; L 3 è äîñòèãàåòñÿ ïðè A 3(mod 8) èëè A 5(mod 8) äëÿ âñåõ íå÷åòíûõ Z0 [3].  íàèáîëåå ðàñïðîñòðàíåííûõ ñèñòåìàõ ïðîãðàììèðîâàíèÿ öåëûå ÷èñëà Zn çàíèìàþò: integer 2 áàéòà è long integer 4 áàéòà. Ïðè ýòîì ìîäåëèðîâàíèå ïñåâäîñëó÷àéíûõ ÷èñåë îáû÷íûìè ñðåäñòâàìè ïðîãðàììèðîâàíèÿ íå ïðåäñòàâëÿåò ñëîæíîñòè. Ïåðèîä çàâèñèò îò ðàçðÿäíîñòè äâîè÷íîãî ÷èñëà è âîçíèêàåò íåîáõîäèìîñòü èñïîëüçîâàíèÿ áîëüøåãî ÷èñëà ðàçðÿäîâ (ðåãèñòðîâ ïðîöåññîðà). Àëãîðèòì äëÿ èñïîëüçîâàíèÿ äîïîëíèòåëüíûõ ðåãèñòðîâ ïðîöåññîðà ñ öåëüþ óâåëè÷åíèÿ ðàçðÿäíîñòè öåëîãî ÷èñëà ïðè óìíîæåíèè áûë ïðåäëîæåí Àáåëåì [2]. Äëÿ ïðåäñòàâëåíèÿ áîëüøèõ ÷èñåë â ÝÂÌ èñïîëüçóåòñÿ ðåãèñòðîâàÿ ïàìÿòü ïðîöåññîðà, ãäå ÷èñëà, áîëüøå ÷åì 2p 1, p = 8; 16; 32; 64; ::: çàíèìàþò ðÿä äîïîëíèòåëüíûõ ðåãèñòðîâ. Åñëè ÷èñëî áîëüøå ÷åì 2p 1, òî åãî âåðõíÿÿ ÷àñòü õðàíèòñÿ íà äâóõ, òðåõ è ò. ä. äîïîëíèòåëüíûõ ðåãèñòðàõ. Ñóùåñòâóåò õîðîøî èçâåñòíûé ïðèåì [2] êàê ïðîèçâåñòè óìíîæåíèå äâóõ áîëüøèõ ÷èñåë, åñëè îíè ðàçáèòû íà äâå ãðóïïû. Ê ïðèìåðó, óìíîæèì äâà ÷èñëà, íàõîäÿùèåñÿ â ïàðàõ ðåãèñòðîâ DX : AX â âèäå ïàðû (d; a) è BX : CX â âèäå ïàðû (b; c). Ðåçóëüòàò ïðîèçâåäåíèÿ ðàçìåñòèì íà ðåãèñòðàõ DX : AX . Ïðîèçâåäåíèå ñòðîèòñÿ â âèäå: d b b*d b*d a c c*d b*a c*d+b*a (2) c*a c*a . Ñëåäîâàòåëüíî, äëÿ ïîëó÷åíèÿ 32-õ ðàçðÿäíîãî ÷èñëà íóæíî ñîâåðøèòü ÷åòûðå óìíîæåíèÿ è îäíî ñëîæåíèå ìåæäó äâóìÿ 16-òè ðàçðÿäíûìè ÷èñëàìè. Ýòîò æå àëãîðèòì èñïîëüçóåòñÿ äëÿ ãåíåðèðîâàíèÿ 64-õ áèòîâûõ ñëó÷àéíûõ ÷èñåë ñ 32-õ ðàçðÿäíûìè ðåãèñòðàìè. Ïðè ýòîì èñïîëüçîâàòü íå ïîëíîñòüþ çàíÿòûå áèòû ðåãèñòðîâ íåýôôåêòèâíî ñ òî÷êè çðåíèÿ çàãðóçêè ïðîöåññîðà. Àëãîðèòì (2) ëåãêî îáîáùàåòñÿ, åñëè ðàñïîëîæèòü öåëîå ÷èñëî íà ãðóïïå èç òðåõ ðåãèñòðîâ DX : AX : EX â âèäå òðîéêè (e; d; a) è (f; b; c) e f d b f e f e b e f d f d + b e a c c e b d f a f a + c e + b d c d b a c a c d + b a c a . (3) 275  àëãîðèòìàõ òàêîãî òèïà âîçíèêàåò âîïðîñ, íà êàêèõ ðåãèñòðàõ íóæíî õðàíèòü ïðîìåæóòî÷íóþ ãðóïïó óìíîæåíèÿ. Òàêæå íåîáõîäèìî ïðåäóñìîòðåòü ñëó÷àé, êîãäà â ðåçóëüòàòå ñëîæåíèÿ ïîëó÷àåòñÿ ÷èñëî áîëüøåå, ÷åì ìàêñèìàëüíîå ÷èñëî íà ðåãèñòðå ïðîöåññîðà. Ïðè ìîäåëèðîâàíèè ïñåâäîñëó÷àéíûõ ÷èñåë âîçíèêàþò äîïîëíèòåëüíûå çàäà÷è, ñâÿçàííûå ñ èñïîëüçîâàíèåì äîïîëíèòåëüíûõ ðåãèñòðîâ ïðîöåññîðà. Ïåðå÷èñëèì èõ: 1) Ìóëüòèïëèêàòîð ïðè ìîäåëèðîâàíèè ïñåâäîñëó÷àéíûõ ÷èñåë ïî àëãîðèòìó (1) ìîæåò èìåòü ìåíüøåå ÷èñëî ðàçðÿäîâ, ÷òî ìîæåò íåçíà÷èòåëüíî ñêàçàòüñÿ íà êà÷åñòâå ïñåâäîñëó÷àéíûõ ÷èñåë, íî óâåëè÷èò ïðîèçâîäèòåëüíîñòü. 2) Ãåíåðèðóåìûå ïñåâäîñëó÷àéíûå ÷èñëà áîëüøîé äëèíû äîëæíû áûòü óäîáíûì îáðàçîì îïðåäåëåíû â ñèñòåìàõ ïðîãðàììèðîâàíèÿ, è ñîñòîÿòü èç ëåãêî ïðåäñòàâèìûõ êîìïîíåíò (ìàññèâîâ, ñòðóêòóð, êëàññîâ). 3) Êðîìå óìíîæåíèÿ íàä ïñåâäîñëó÷àéíûìè ÷èñëàìè áîëüøîé äëèíû íåîáõîäèìî âûïîëíÿòü äîïîëíèòåëüíûå äåéñòâèÿ: àääèòèâíûå è ìóëüòèïëèêàòèâíûå îïåðàöèè, à òàêæå ïåðåâîäû â äðóãèå ñèñòåìû ñ÷èñëåíèÿ ñ èñïîëüçîâàíèåì äîïîëíèòåëüíûõ ðåãèñòðîâ. Èç ñôîðìóëèðîâàííûõ çàäà÷ âèäíî, ÷òî âîçíèêàåò íåîáõîäèìîñòü îáùåãî ïðåäñòàâëåíèÿ áîëüøèõ ÷èñåë ñ èñïîëüçîâàíèåì äîïîëíèòåëüíûõ ðåãèñòðîâ. Îáùèå àëãîðèòìû äåéñòâèé ñ áîëüøèìè ÷èñëàìè ñ èñïîëüçîâàíèåì äîïîëíèòåëüíûõ ðåãèñòðîâ îòñóòñòâóþò â ëèòåðàòóðå, ÷òî ïðèâîäèò ê íåîáõîäèìîñòè äëÿ êàæäîãî êîíêðåòíîãî äåéñòâèÿ ðàçðàáàòûâàòü àëãîðèòìû ïîäîáíûå àëãîðèòìó Àáåëÿ [2]. Äëÿ ðàáîòû ñ äëèííûìè ÷èñëàìè è èñïîëüçîâàíèÿ äîïîëíèòåëüíûõ ðåãèñòðîâ, ðàññìîòðèì ñèñòåìó ñ÷èñëåíèÿ ñ îñíîâàíèåì p = 2i , ãäå i = 8 8; 16; 32 ÷èñëî áèòîâ ðåãèñòðà. Äëÿ p = 2 : AL; BL; CL; DL ìëàäøèå áàéòû (ðàçðÿäû 7-0) è AH , BH , CH , DH ñòàðøèå áàéòû (ðàçðÿäû 15-8) ðåãèñòðîâ AX; BX; CX; DX . Äëÿ p = 216 : AX; BX; CX; DX; SI; DI; BP; SP . Äëÿ p = 232 : EAX; EBX; ECX; EDX; ESI; EDI; EBP; ESP ðåãèñòðû îáùåãî íàçíà÷åíèÿ, ïðåäíàçíà÷åííûå äëÿ õðàíåíèÿ äàííûõ è àäðåñîâ. Ýòè ðåãèñòðû ïðîöåññîðîâ òèïà Intel P6 (Pentium 3, 4 è äð.). Ïðè ââåäåíèè òàêîé ñèñòåìû ñ÷èñëåíèÿ çàäà÷è 1 è 3, ïåðå÷èñëåííûå âûøå, ìîæíî ðåøèòü ñ ïîìîùüþ çàïèñè ðàçëè÷íûõ äåéñòâèé â ñèñòåìàõ ñ÷èñëåíèÿ ñ îñíîâàíèåì p = 2i , à àëãîðèòìû (2), (3) ìîæíî ïðåäñòàâèòü êàê óìíîæåíèå ÷èñåë â ñèñòåìå ñ÷èñëåíèÿ ñ îñíîâàíèåì p = 216 . Êàê èçâåñòíî, ëþáîå ÷èñëî ïðåäñòàâëÿåòñÿ â ïîçèöèîííîé ñèñòåìå ñ÷èñëåíèÿ ñ îñíîâàíèåì p â âèäå: an pn + ::: + a1 p1 + a0 p0 + b1 p 1 + b2 p 2 + ::: + bm p m ; (4) 276 ãäå êîýôôèöèåíòû ai (i = 0:::n) è bj (j = 1:::m) òàêèå, ÷òî 0 ai ; bj < p. Êîýôôèöèåíòû ai (i = 0:::n) îïðåäåëÿþò öåëóþ ÷àñòü ÷èñëà, à bj (j = 1:::m) îïðåäåëÿþò äðîáíóþ ÷àñòü ÷èñëà. Âñå äåéñòâèÿ: ñëîæåíèå, âû÷èòàíèå, óìíîæåíèå è äåëåíèå îïðåäåëåíû äëÿ ÷èñåë (4). Î ï ð å ä å ë å í è å 1 Íàçîâåì ïðåäñòàâëåíèå (4) ðåãèñòðîâûì ïðåäñòàâëåíèåì áîëüøèõ ÷èñåë â ÝÂÌ, ãäå p 1 ìàêñèìàëüíîå ÷èñëî íà ðåãèñòðå.  ñèñòåìàõ ïðîãðàììèðîâàíèÿ ðåãèñòðîâîå ïðåäñòàâëåíèå áîëüøèõ ÷èñåë ââåäåì êàê ïîñëåäîâàòåëüíîñòü [an an 1 :::a1 a0 b1 b2 :::bm ]p ; (5) ãäå ai (i = 0:::n) è bj (j = 1:::m) ýëåìåíòû ìàññèâà öåëûõ ÷èñåë èëè öåëûå ïîëÿ ñòðóêòóð, êëàññîâ.  ïðåäëîæåííîé ñèñòåìå ñ÷èñëåíèÿ àëãîðèòìû (2), (3) áóäóò çàïèñàíû â âèäå ep2 + dp1 + ap0 fp2 + bp1 + cp0 : (6) Ýòî îáû÷íûå ïðàâèëà äåéñòâèÿ ñ êîýôôèöèåíòàìè ai è bj â ñèñòåìå ñ÷èñëåíèÿ p = 216 . Ïðîèçâåäåíèå ÷èñåë ðàçëè÷íîé äëèíû, ò. å. èñïîëüçóþùèõ ðàçëè÷íîå ÷èñëî ðåãèñòðîâ çàïèñûâàåòñÿ â âèäå epn + ::: + dp1 + ap0 fpm + ::: + bp1 + cp0 ; êîòîðûé äàåò âîçìîæíîñòü ëåãêî èçìåíÿòü ýòè àëãîðèòìû ïðè ëþáîé äëèíå ìóëüòèïëèêàòîðà. Äðóãèå àääèòèâíûå è ìóëüòèïëèêàòèíûå îïåðàöèè íàä äëèííûìè ÷èñëàìè (ïîäîáíûå ñäâèãó, âçÿòèþ ïî ìîäóëþ ÷èñëà (1), ñâÿçàííûå ñ ïðåäñòàâëåíèåì öèêëè÷åñêèõ äðîáåé) ñ èñïîëüçîâàíèåì äîïîëíèòåëüíûõ ðåãèñòðîâ ïðîöåññîðà ìîãóò òàêæå áûòü çàïèñàíû â îáùåì âèäå ïðè ðàçëè÷íîé äëèíå îïåðàíäîâ. Äëÿ ïðîèçâîëüíûõ ñèñòåì ñ÷èñëåíèÿ îíè ïðèâåäåíû â [4]. Èçâåñòíî òàêæå áîëüøîå ÷èñëî îïðåäåëåííûõ ñâîéñòâ ÷èñåë â ïðåäñòàâëåíèè (4) òàêèå, êàê ïðèçíàêè äåëèìîñòè è ïîñòðîåíèå ðàçëè÷íûõ ìíîæåñòâ. Îòìåòèì îñîáåííîñòü ââåäåííîé ñèñòåìû ñ÷èñëåíèÿ: íåîáõîäèìî îïðåäåëèòü çíàêè ai è bj . Ïîä çíàêàìè áóäåì ïîíèìàòü èõ ÷èñëîâûå çíà÷åíèÿ. Íàïðèìåð, ÷èñëî [a0 = 3; b1 = 9279; b2 = 27272] áóäåì çàïèñûâàòü â âèäå [3; (9272); (27272)]p=216 : ×èñëî a0 íà ðåãèñòðå 1, b1 íà ðåãèñòðå 2, b2 íà ðåãèñòðå 3. 277 Ïîëüçóÿñü îáû÷íûì ïðàâèëîì ïåðåâîäà ÷èñåë, ïåðåâåäåì äàííîå ÷èñëî â äåñÿòè÷íóþ ñèñòåìó ñ÷èñëåíèÿ a0 20 + b1 2 16 + b2 2 32 = 3; 141592654: Îòñþäà âèäíî óäîáñòâî ðåãèñòðîâîãî ïðåäñòàâëåíèÿ äëèííûõ ÷èñåë â ÝÂÌ. Äîñòàòî÷íî çàíåñòè òðè ÷èñëà íà ðåãèñòðû, ÷òîáû ïîëó÷èòü ñ òî÷íîñòüþ äî 9 çíàêîâ. Îáðàòíûé ïåðåâîä îñóùåñòâëÿåòñÿ ïî èçâåñòíîé ñõåìå 0; 141592654 16 2 9279; 416146 16 2 27272; 52328 Ïåðâîå öåëîå ÷èñëî 9279 âîçüìåì â êà÷åñòâå b1 , à âòîðîå öåëîå ÷èñëî 27272 b2 . Ìû ïîòðàòèëè äëÿ ïåðåâîäà ÷èñëà â ðåãèñòðîâîå ïðåäñòàâëåíèå ñ îñíîâàíèåì p = 216 âñåãî äâà óìíîæåíèÿ íà ÷èñëî 216 , ÷òî íàìíîãî áûñòðåå, ÷åì ïðè äðóãèõ ñïîñîáàõ ïåðåâîäà ÷èñëà â äâîè÷íóþ èëè â øåñòíàäöàòåðè÷íóþ ñèñòåìó ñ÷èñëåíèÿ. Óäîáñòâî ñîñòîèò åùå è â òîì, ÷òî ìû ïîëó÷èëè ñðàçó ÷èñëà íåîáõîäèìûå äëÿ çàíåñåíèÿ íà ðåãèñòðû ïðîöåññîðà, à óìíîæåíèå íà ñòåïåíü äâîéêè ìîæíî çàìåíèòü ñäâèãîì, ÷òî åùå óáûñòðÿåò ýòè äåéñòâèÿ. 3. Àðõèòåêòóðà ðåãèñòðîâ è èíôîðìàòèâíîñòü ðåãèñòðîâîãî ïðåäñòàâëåíèÿ äëèííûõ ÷èñåë â ÝÂÌ Ðàññìîòðèì îáùèå ñâîéñòâà ââåäåííîé ñèñòåìû ñ÷èñëåíèÿ. Âîïðîñ î êîíêðåòíîì âûáîðå îñíîâàíèÿ p ðåãèñòðîâîãî ïðåäñòàâëåíèÿ áîëüøèõ ÷èñëå â ÝÂÌ íåîáõîäèìî ðåøàòü ñ òî÷êè çðåíèÿ èíôîðìàòèâíîñòè ñèñòåìû ñ÷èñëåíèÿ è àðõèòåêòóðû ðåãèñòðîâ. Êàê èçâåñòíî, èíôîðìàòèâíîñòüþ ñèñòåìû ñ÷èñëåíèÿ ñ îñíîâàíèåì p íàçûâàåòñÿ åå ñâîéñòâî ïîñòðîåíèÿ êîëè÷åñòâà ÷èñåë ïðè ôèêñèðîâàííîì ÷èñëå çíàêîâ ÷èñëà [4]. Åñëè âçÿòü n çíàêîâ, òî ïîëó÷èòñÿ n=p ðàçðÿäîâ, è êîëè÷åñòâî ÷èñåë, êîòîðîå ìîæíî çàïèñàòü, áóäåò ðàâíî n I (p) = p p : Ìàêñèìóì ýòîé ôóíêöèè äîñòèãàåòñÿ ïðè p = e, ãäå e îñíîâàíèå íàòóðàëüíîãî ëîãàðèôìà.  ñèëó ïîñëåäíåãî, íàèáîëåå èíôîðìàòèâíîé ÿâëÿåòñÿ òðîè÷íàÿ ñèñòåìà ñ÷èñëåíèÿ. Ðàññìîòðèì ñèñòåìó ñ÷èñëåíèÿ ñ îñíîâàíèåì p = 2i , ãäå i ÷èñëî áèòîâ ðåãèñòðà. Òîãäà èíôîðìàòèâíîñòü ðåãèñòðîâîãî ïðåäñòàâëåíèÿ 278 äëèííûõ ÷èñåë â ÝÂÌ áóäåò i I (p) = I (2i ) = I (i) = 2in2 ; i 1: Ïóñòü â íàøåì ðàñïîðÿæåíèè èìååòñÿ 32 áèòà. 32 áèòà ñîäåðæàò 64 çíàêà è â íèõ ìîæíî çàïèñàòü 232 öåëûõ ÷èñåë. Ìàêñèìàëüíîå ÷èñëî íà ðåãèñòðå áóäåò 232 1. Åñëè ðàçáèòü 32 áèòà íà äâå ãðóïïû ïî 16 áèòîâ, òî â êàæäîé èç ïîäãðóïï ìîæíî çàïèñàòü 216 öåëûõ ÷èñåë. Ðàçáèâ íà ÷åòûðå ãðóïïû ïî 8 áèò ïî 16 çíàêîâ, ìîæíî çàïèñàòü 28 öåëûõ ÷èñåë â êàæäîé ãðóïïå. Îòñþäà âèäíî, ÷òî åñëè ðàçáèâàòü ðåãèñòðû íà ãðóïïû ñòåïåíè 2, òî èíôîðìàòèâíîñòü ñèñòåìû äëÿ êàæäîãî ðàçáèåíèÿ íå ìåíÿåòñÿ. Ò å î ð å ì à 1 Èíôîðìàòèâíîñòü äëÿ ñèñòåìû ñ÷èñëåíèÿ ñ îñíîâàíèåì p = 2i íå ìåíÿåòñÿ ïðè ðàçáèåíèè ðåãèñòðîâ íà ãðóïïû, åñëè ÷èñëî çíàêîâ íà ðåãèñòðå n = 2i k, ãäå k ÷èñëî ðåãèñòðîâ. Äîêàçàòåëüñòâî òåîðåìû 1 íåïîñðåäñòâåííî ïîëó÷àåòñÿ ïîäñòàíîâêîé â ôîðìóëó äëÿ èíôîðìàòèâíîñòè ñèñòåìû ñ÷èñëåíèÿ. Èç óòâåðæäåíèÿ òåîðåìû 1 ñëåäóåò, ÷òî ââåäåííîå ïðåäñòàâëåíèå áîëüøèõ ÷èñåë (4) íå óõóäøàåò èíôîðìàòèâíîñòü äâîè÷íîé ñèñòåìû ñ÷èñëåíèÿ è íå âëèÿåò íà äëèíó ïåðèîäà äàò÷èêà ñëó÷àéíûõ ÷èñåë. Ïðè äðóãîì ðàçáèåíèè ðåãèñòðîâ íà ãðóïïû ïîñëåäíåå íå âûïîëíÿåòñÿ. Ïðè ðåãèñòðîâîì ïðåäñòàâëåíèè áîëüøèõ ÷èñåë â ÝÂÌ óäîáíî, ÷òîáû ÷èñëî áèòîâ íà ðåãèñòðå ñîâïàäàëî ñ ÷èñëîì ðåãèñòðîâ. Ýòî òðåáîâàíèå ëåãêî âûïîëíÿåòñÿ íà ïðîöåññîðàõ Intel 8086, Intel 80386. Îäíàêî ñîâðåìåííûå ïîêîëåíèÿ ïðîöåññîðîâ, òèïà Intel P6, ñîäåðæàò íåäåëèìóþ âåðõíþþ ÷àñòü ðåãèñòðîâ ïðîöåññîðà òèïà EAX , ÷òî ñ íàøåé òî÷êè çðåíèÿ ÿâëÿåòñÿ íåäîñòàòêîì èõ àðõèòåêòóðû, ò. ê. ðåãèñòðîâîå ïðåäñòàâëåíèå áîëüøèõ ÷èñåë ÿâëÿåòñÿ îáùåé ïðîáëåìîé àðõèòåêòóðû ïðîöåññîðîâ. Ýòî âûíóæäàåò íàñ èñïîëüçîâàòü p = 2i , i = 16; k = 16, à â êà÷åñòâå ai è bj ÷èñëà òèïà integer â ñèñòåìàõ ïðîãðàììèðîâàíèÿ. Îòìåòèì, ÷òî èìåííî ñ ýòèìè ÷èñëàìè íàèáîëåå áûñòðî îñóùåñòâëÿåòñÿ ðàáîòà ïðîöåññîðà òèïà Intel P6. 4. Äàò÷èêè ïñåâäîñëó÷àéíûõ âåëè÷èí Äëÿ ïðèìåðà ðàññìîòðèì äàò÷èê ãåíåðèðîâàíèÿ ïñåâäîñëó÷àéíûõ ÷èñåë ñ äëèíîé ìóëüòèïëèêàòîðà â äâà ðàçà ìåíüøå. Ïðèìåíèì ðåãèñòðîâîå ïðåäñòàâëåíèå áîëüøèõ ÷èñåë â ÝÂÌ äëÿ àëãîðèòìà ìóëüòèïëèêàòèâíîãî äàò÷èêà ñ ïåðèîäîì i 2 ; ãäå i = 16; 32::: 2 279 Ìóëüòèïëèêàòîð A ìîæåò áûòü ïðåäñòàâëåí ìåíüøèì ÷èñëîì ðåãèñòðîâ ïðîöåññîðà. (ak ak 1 :::a1 )p ; ãäå k n: Äëÿ çàïîìèíàíèÿ ñëó÷àéíîãî ÷èñëà íóæíî n ðåãèñòðîâ, à äëÿ ìóëüòèïëèêàòîðà k n ðåãèñòðîâ. Âíîâü ïîëó÷èì ÷èñëî ïî àëãîðèòìó (1), ãäå n ÷èñëî êîýôôèöèåíòîâ â ðåãèñòðîâîì ïðåäñòàâëåíèè ñëó÷àéíîãî ÷èñëà [ak ak 1 :::a1 a0 ]p , p = 2i , i ÷èñëî áèòîâ ðåãèñòðà. Ïðîâåðèì ñâîéñòâà íîâîãî äàò÷èêà ñ áîëüøèì ïåðèîäîì, ñðàâíèâàÿ äàò÷èêè ñ ðåãèñòðîâîé ïàìÿòüþ i = 16 è i = 32 äëÿ îòâåòà íà âîïðîñ î çàòðàòàõ è èõ ïðîèçâîäèòåëüíîñòè. Äàò÷èê ïåðâûé: Zn+1 = Zn A mod (216 ), ãäå Zn öåëûå ÷èñëà ñ îñíîâàíèåì ñèñòåìû ñ÷èñëåíèÿ p = 216 . Äàò÷èê âòîðîé: Zn+1 = Zn A mod (232 ), ãäå Zn ÷èñëà (a; b)p (a; b öåëûå).  ðåãèñòðîâîì ïðåäñòàâëåíèè îïåðàòîð óìíîæåíèÿ âî âòîðîì äàò÷èêå îïðåäåëåí ïðåäñòàâëåíèåì: (d; a)p (b; c)p ïî àëãîðèòìó (2). Äëÿ óáûñòðåíèÿ äåéñòâèé ìîæíî ðàññìîòðåòü ìóëüòèïëèêàòîð A â âèäå (e; f )p èëè (0; f )p (0 a0 < p). Ñâîéñòâà ïñåâäîñëó÷àéíûõ ÷èñåë íåçíà÷èòåëüíî óõóäøàþòñÿ â ýòîì ñëó÷àå ïðè âûáîðå ìóëüòèïëèêàòîðà, ê ïðèìåðó 24357, à âðåìÿ ìîäåëèðîâàíèÿ îäíîãî ïñåâäîñëó÷àéíîãî ÷èñëà ñîêðàùàåòñÿ ñ 0,22 0,24 ìèêðîñåêóíä, äî 0,1 0,17 ìèêðîñåêóíä äëÿ ïðîöåññîðà Intel Pentium 4. Ñïèñîê ëèòåðàòóðû [1] Ìàíäæãàëàäçå Ï. Â., Ìîðîçîâ À. Ì., Ñóäàêîâ Ä. Ì. Ôîðìèðîâàíèå ñëó÷àéíûõ öèôð â ïðîèçâîëüíîé ñèñòåìå ñ÷èñëåíèÿ // Òðóäû Âû÷èñëèòåëüíîãî öåíòðà (èì. Ìóñõåëèæâèëè Í. Í.) ÀÍ Ãðóç. ÑÑÑÐ. Ò. 21. 2. 1981. Ñ. 74104. [2] Àáåëü Ï. ßçûê Àññåìáëåðà äëÿ IBM PC è ïðîãðàììèðîâàíèÿ. Ì.:Âûñø. øê. 1992. 447 ñ. [3] Åðìàêîâ Ñ. Ì., Ìèõàéëîâ Ã. À., Ñòàòèñòè÷åñêîå ìîäåëèðîâàíèå. Ì. Íàóêà. 1982. 294 ñ. [4] Ôîìèí Ñ. Â. Ñèñòåìû ñ÷èñëåíèÿ. Ì. Íàóêà. 1987. 40 ñ. 280