
Ŀ
                                                                    
                        
                                    
                           
                                          
Ĵ
                                  5                           
ٰ



                          
                               by DrMAD

    
    1. "騥"  "騥" 砩 ᫠
    2. ᯮ짮 ⥬ ⠩
    3.  ⠪ ""   ⠪ ""
    3.1. "砩" 
    3.2. ୮ ।
    3.3. 
    4.   稪
    5. 稥 稪
    5.1. 稪 
    5.2. ਬ⨢ 稪
    5.3. 稪 砩 ⮢
    6.   ਬ
    6.1. 樮 ஢
    6.2.  ஫
    6.3. 砩 ६訢
    
    ਯ

    ࠧ ।० -  쪠 誠 㤥 ᭠ ⥬,
 ⠥  ⮢ 楯,   뢠  ᯮ짮    
३      .       ⥬⨪  
⨫ "-   ⥩  襣  ᥫ쭮  ".    ⮢
楯   ⮦ ...

    

         砩 ᫠.  ᮯ⥫ ᯮ
  䨪  ࣠樨 "権".   ᯮ   
樨  ஫.  ਬ        ਯ⮫  ஢
ᮮ饭.  ஬  ⮣,    ᯮ짮  ⠪   ᥫ   ᫨
樮      ᫮  ꥪ⮢   ⥬ (ਬ,
 ࠭   让 ).

    1. ""  ""  

    "騥" 砩 ᫠     ⮫쪮    ꥪ  
 ॠ쭮 .
    筮  :
    1)  롨   ᯥ樠, ࠭ ⮢ ⠡;
    2)  ⭮ - ஢뢠 -  ᫠ ५஢
砩  (ਬ,  ᪨ ᨣ  室 "饣"
),     稯⠬  Intel,  稭    i810,   ⠪
 - RNG.
     ᫥⥫쭮  ⠪ ᥫ ᮫⭮ ।᪠㥬.
 ⠪ ᫥⥫쭮 (ਬ,  ⮣, ⮡ 
஢     ᠬ १) .

    "騥" 砩   ᫠         ।
 F ਬ୮ ⠪:
    1) 롨ࠥ ᠬ ࢮ ᫮ X(0);
    2)  ⠫ ᫠   X(i)=F(X(i-1)), i=1,2,3...

     騩,    ᠬ  ࢮ  ᫮  X(0)  (⠪  뢠
"ࠢ"  -᪨  "seed")      樨  F,  
᪮쪮 㣮 ࠧ ந  楯 ⠪ ᥫ, ..  -
⠪  砩.  룫  祭 宦  砩, ।
୮      ᮧ   祭   㤭,  ⮬    뢠
"ᥢ砩묨" ᫠.

    2.   

         "騥"  砩 ᫠  
⥬ ⠩.   ⮤ ४    /1/  
ਬ  䨪.     ᥣ ࠢ쭮.
     ⨯ ਬ 楤 樨 砩 ᥫ,   
 Arch.903:

    @1: mov  al, ah
        in   al, 40h
        cmp  al, ah
        jnc  @1
        xchg ah, al
        ret

     40h -        묨    㫥  
⥬  ⠩.    ⠩     ᨬ ࠡ
:     ⮬ 41h  ன    ⮬  42h.
⮬,  ,   in al,41h  in al,42h  ⮬ ⭮襭 祬
 㦥.
     㬮砭  १       㯭   祭   16-⮢
⠩୮  稪,    㬥蠥 ᢮ 祭  2  ⮩
1.19  (..   0.00000083 ᥪ.),     ⨦    
१㦠   室   ⠭.     㧪    BIOS
樠  㫥   ⠭ 祭  65535. ..
-      ⠭ ,    襬,  ।
ᯮ짮 ⠩  ਭ㤨⥫쭮   :

    mov al, 00111110h
    out 43h, al
    mov al, 0FFh
    out 43h, al
    out 43h, al

     㬮砭   ࠡ⠥ ᫥騬 ࠧ:   ⭮
⥭   頥 訩   16-⮢  稪  (
 ),    ⭮ - 訩  ( 
).  ࠧ,   横 (..  砩 
६!)  楤,  ⮩   Arch.903,   ᫠
⨯

       ... 12 34 10 34 8 34 ... 2 34 0 34 65534 33 65532 33 ...

     ..,   "砩묨"   ⮫쪮   㭠.
( ᠬ  ,        ᫥⥫쭮  㤥
룫拉  ਢ⥫쭮,   ).
      ⥩訩 ਬ.     (⨯ SPE,
RTFM,  TCE  ..) ᫮, 祭  , ""  祬-,
ᤢ -ࠢ,    .. 㤭 , 
᫥⥫쭮 ᥫ  ⮣   砩  ⠭.
    ᫨   ᮢᥬ    ᯮ짮  䬥⨪    
 ⠩஬,      ४   ஡   ⮤    Z0mbIE
(ᯮ짮 樨 祭  ࠧ ):

    ...
    in  al,40h
    xor bl,al
    in  al,40h
    add bh,al
    in  al,41h
    sub bl,al
    in  al,41h
    xor bh,al
    in  al,42h
    add bl,al
    in  al,42h
    sub bh,al
    mov rndword[ebp] bx
    ...

     ..  祬,  뢠,   "⨪"    ⮩ 
⮩    ⮣  .
    ⠪, 饥 "襥" 砩 ᫮,  ஥   
⠪ ⮤  -  ⮫쪮  ,  ᠬ ࢮ  祭.   
ᯮ짮  ⢥ "ࠢ",    ⮣.

    3.   ""    ""

    稪 ᥢ砩  ᥫ  ()  뢠  訬  娬.
ਧ 襣  :
    1) ᯮᮡ  ஢  ᫠,  騥  ᥡ   "宦"   
砩;
    2) ᯮᮡ   ஢   ।   ᥫ,     
ࠢ୮;
    3)   "横".

    3.1. ""  

     ᢮⢮  ᥣ ᭨ 來:

    1 2 3 4 5 6 7 8...  砩 ᫥⥫쭮;
    6 1 5 1 4 1 3 1... ⮦ 砩  ᫨誮 孥;
    1 2 1 3 4 2 1 5...  䨪,  㢨 ⥭;
    1 3 2 6 1 4 4 2... ⮫쪮  ᫠ 宦  砩.

    ଠ쭮 "砩"  ।,  ਬ,  ⠢ 
᫥⥫쭮  ᥫ ⮪५樮  㭪  ().  ᫨
 ᫠ "᪠" ᨬ   㣠,   - ५஢
砩  (⠪ 뢠 " "),     -  
-㭪 ("")  㫥.

     - ५஢  ():

     
     
           
    _____________________
     0       
          


     " 㬠" ():

     
     
     
    _______________________________
     0

    3.2.  

     砥,     祭  室   稪  -
ਬ୮ ࠢ⭮.
    ਬ "襣"   稪      ࠢ   ।    -
䠫訢 , ,  ⭮,     ૮
 誮  ࠢ ⭮.  ஭  100  ࠧ    ⠢
⢮    ⮩    ஭,    ⭮襭,
  "-".    48/52   55/45,  筮
 ⪫.
       ᫨ ⭮襭 ᨫ쭮 ᨬ筮 (ਬ,  20/80),  
 ,    ஭﫨   ,  ...  த,  ,  
⭮,    ᥣ    ᫮  .  :-) த - ਬ
"宣" 稪.
    ,   室    ࠢ୮  ।   
  㣮,   .
    ଠ쭮 "ࠢ୮"       ।,    ந    
᫥⥫쭮   祭  ᥫ  ⮣ࠬ  (業  ⭮
⭮)  ਬ -   ⥬᪨ ਩
(ਬ, "-"),     業  .

    ⮣ࠬ - 祭 ࠢ୮ । ().

             
           
          
    ___
    a        a

    ⮣ࠬ ࠢ୮  ࢠ [a,b] । ().

     
    __
    a        b

    3.3. 

     ⥭樠쭮  ᥣ   祭,    ॠ
稪  ⮫쪮,  ᪮쪮  ࠧ ᥫ    祩
.  祢,           65535  ࠧ
祭  16-⮢  楫  ᫠.    ᫥  ⮣      ᥫ
㥬   ,                    
᫥⥫쭮 ᥫ (  ⠥  ⪮ !).
       "横" 稪. ,  16-⮢ 稪 
  横  65  -  祭  祭 訩 १.  ᫨ 
।ਭ ᯥ樠 , 横 ந室  ࠭.

    ଠ쭮 㦨  横           ⮤   ,
㯮⮣  /2/.   ⮤  ⮬, ⮡ ࠫ쭮    ⮩
  ࠢ  X(0)=Y(0)      ⥬    ⬮  F  ஢
砩 ᫠

                  X(i)=F(X(i-1))  Y(i)=F(F(Y(i-1))).

    ᪮   ᫥⥫쭮  ""  2 ࠧ ३,  
࠭     X(i)=Y(i)=X(2*i),      砥
稥 横.

    4.   

    ४ ࠭ ,  ਤ㬠  㭪 F  
樨 ᥢ砩  ᥫ    ࠪ᪨ .
     ࠣ, ࠭  䭮  ULTIMUTE:

    Get_Rand:
            push cx
            push dx
            mov ax, cs:[rand_seed+bp]
            mov cx, 0DEADh
            mul cx
            xor ax, 0DADAh
            ror ax, 1
            mov cs: [rand_seed+bp], ax
            pop dx
            pop cx
            ret

    । ᥫ   ࠢ୮,    __ ࠢ
   横  ᥣ 532.
     ⡮쭮  몥   뢠 "४⨫ ".  :-) 쭮
訩 稪   뫮 ,  모  ⮣ ⥪ 
譨    ப  - ᪮४஢ ⠭.
       ⮬,    饯ਧ   "訬"   楯⮬   
" " ⮤:

    X(i) := (A*X(i-1) + B) mod C.

    樨 .    /2/  롮 ⠭ , B,  C:

     -  筮    16-⮢   2^16=65536,    32-⮢
2^32;
    A = 8t+5,  t - - 楫 ᫮, 祬 C/100 < A < C-SQRT(C);
    B - ⭮   ⭮ 5 ᫮.

    ⠭ ANSI-C  ॡ          몠  /++
    㭪権:

   #define RAND_MAX 32767

   static unsigned long next_rand = 1;

   /*    */
   int rand(void) {
     next_rand = next_rand * 1103515245 + 12345;
     return (unsigned int)(next_rand/65536)%32768;
   }

   /* ନ஢⥫  ࠢ */
   void srand( unsigned int seed ){
     next_rand = seed;
   }

   祢,       稪  32-⮢,    뤠  15-⮢
१.
     Watcom   C/C++    TopSpeed  C/C++  ॠ      (a  =
1103515245,  b = 12345),   ଠ Borland  ᢮ ஢ ᫥
஢  ⠭  (a = 22695477,  b=1).     ⮬   㣮
砥 ࠭஢  筮 訥   ᥬ ࠬࠬ
ᥢ砩 ᫥⥫쭮.
      ਬ 16-⮢   ⭮  稪
 ᥬ:

A    dw 32005
B    dw 1
SEED dw 12345
    ...
Rand:
     mov ax, SEED
     mul A
     add ax, B
     mov SEED, ax
     ret

       /3/      ᥬ஢ 稪  Borland
Pascal  Turbo C.

    5.  

    5.1.  

           祭  ⥮᪨   
쭮  訥      設⢠   ਫ   ᫥⥫쭮
ᥢ砩  ᥫ.       ⪨:  1)  横 
  ॢ  ⠭  A;  2)     ᯮ짮   鸞   祭
祭    ᪨   ⮢   -⠪      㦨
୮  ᣥ஢ ᫮ ᫥⥫쭮, .. 
筮 "砩".
    ᯮ짮 "稥  "  -      襭 ⢠
ᥢ砩 ᫥⥫쭮⥩.
    ਬ ⠪ 稪 (  ,    稥, 
⠬,    ,  뢠  ⠪) :

    1) 稪, 㯮  /2/:

                  X(i) = (X(i-1)+X(i-N)) mod C, N>15;

    2) 稪, 㯮  /5/:

                 Y1=X(i-N), Y2=X(i-M), N <> M
                 X(i) = Y1-Y2>0?Y1-Y2:Y2-Y1

     ⥮ਨ 稥 稪      ⢥,  ⮬
ᯮ짮   ⮫쪮  ᮡ⢥   .

    5.2.  

        ᯮ짮     ᫨誮  訬,    ࠩ
묨  ॠ樨 稪   /4/:
    1) X(i)={A*X(i-1)},   {.} 砥 뤥  ஡  ,  
⠭ A 롨ࠥ  8*t+3  8*t-3,  t -  楫 ᫮;
    2) X(i)={11*X(i-1)+3.1415926}, 祭  .

     ࠩ     ᪮쪮  ⪮  (      ⥭)  
ᥢ砩 ᥫ  ࢠ [0..1]  ᯥ稢.

    5.3.   

     ᠭ    稪  ਥ஢    砩
ᥫ.    ᫠ ࠧ  (㯯 ⮢)   ࠧ
⭮ ,  ⮬   ᥣ  ᯮ짮  ⠪
⢥⢥ , , ਬ, ਯ⮣.
      楫 ࠧࠡ⠭ 㣨 ⮤. , ਬ, 㯮
   /7/      -᫥⥫쭮⥩.    :    㦥
ᣥ஢ N ⮢,  ⮣    K<N  ᫥  ⮢ b(K-1),
b(K-2),...b(0),   N+1-   

      b(N+1) = a(K-1)*b(K-1) xor a(K-2)*b(K-2) xor... a(0)*b(0),

     a(K-1), a(K-2)... a(0) - 樥  ⮢ 
K-  浪.      ⢥  ⮣     -
K-ࠧ來 砩 ᫮  ࠢ୮ ।묨 ⠬.
    ਮ (横) -᫥⥫쭮   ࠢ  2^K-1,  ⮬
筮  室     "a".

    6.   

    ,  ਬ  砩  ᥫ    䨪    
⮨,     ନ "䨪"    ⮫쪮 ,
  ᫮ ࠨ    ணࠬ  "  ஭  ".
ᬮਬ ਬ稪 㣨 ਬ...

    6.1.  .

     樮   ஢   (simulation)   ᫮   ⥬,
ᮢ         筮         ࠢ묨
।ﬨ 砩 ᥫ.   ᥣ ॡ 砩 ᫠,
।   "ଠ쭮"    (    뢠  "
").
    ⮣ࠬ ⠪ । 宦  稪 - 祭 
᭮ 㯯      "業  殮"    宭
"뢠"   㤠  .

            
           
          
        
    __
    -oo       M       +oo

    ᫥⥫쭮 ଠ쭮    ।    砩   ᥫ
ࠪਧ  ࠬࠬ:
    1) M - ⥬᪨  (  "業 殮");
    2) D   -    ।᪨    ⪫    (    ᪮
"뢠").

     ⠪    砩    ᫠      ᭮   ࠢ୮
।  ࢠ [0..1] 稪. :

          Y(i) = M + D*( (X(i-N)+X(i-N+1)+...+X(i)) - N/2),

     筮 ਭ N=12,   砥 㦥  N=4.

    6.2.  

     ⭮,   ਤ뢠 ஫,   ।⠢﫨  
ᮡ ᫮,  ,  -   ..  ⮣, ᯮ짮
  ஫  ⮫쪮  訥  㪢  ⨭᪮  䠢      -
筮, ⥫쭮   ஫ 訥  쪨 㪢, 
  ᯥᨬ   ९.
    ஡ ᠬ⥫쭮  ਤ㬠      ⮪  _ࠧ_ 
_宦__砩_  ஫,      ,  祬    
樮   ⥬    ᯥ樠  ⥬  ⨫,
 㬥 ஢   ⢮  砩  ஫  
.
       ⠪ ⨫ ᠬ⥫쭮:

#include <iostream.h>
#include <stdlib.h>
#include <time.h>

#define NPAS 10
#define NSYM 8

char s[]=
{"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
~!@#$%^&(){}[]"};

main()
 {
  int i j; struct time t;
  gettime(&t); srand(t.ti_sec*100+t.ti_hund); // ᥣ 6000 ࠢ
  for (j=0;j<NPAS;j++)
   {
    for (i=0;i<NSYM;i++) cout << s[rand()|(RAND_MAX|(sizeof(s)-1))];
    cout << endl;
   }
 }

      ⨫ 뤠 ஫:  Z1TuA0Lp, MeXin(Xj, ruXv[esv  ..

    6.3.  

     ॡ  믮  砩  ६訢  -
ꥪ⮢ (ਬ,    " 祩"  IP-ᮢ 
। ).
     室 砥  ⮬,  ⮡ ஢  砩
ᮢ    ६訢  ᨢ        ⠬.  襢 
न,    ࠭⨨,         (  
 ᮢ)  믠 ᪮쪮 ࠧ.
     । 㣮 ⮤,  ᭮  "  ⭮"
稪  ᠭ   /6/.    ᨢ  N ⮢.
롨ࠥ:
    1) ᫮ 0.66*N<M<0.9*N, -⮥  N;
    2) ந ( 砩) 砫  K<N.
       砥  : K(i) = (K(i-1)+M) mod N.

    

    1. ஫ .,  ஫ .  ⭮ ᯥ祭 IBM PC.  2. -
: -, 1992. - 208 .
    2.   .  ⢮  ணࠬ஢    .   ᫥
. -.: , 1977.-724 .
    3.  砩 ᥫ // MoonBug #5.
    4. 类 ..  ࠢ筨  ⠬   ப.  -
.: 㪠, 1986.- 224 .
    5. Michael  Machin  aka  Ltwood.  :   稪 砩
ᥫ.// http://ltwood.hotbox.ru.
    6.   ᮭ . - .: , 1988. - 160 .
    7. 祢  ..,  ஢  ..,  ஢  ..  ᭮ ᮢ६
ਯ⮣䨨 / :  -, 2002. - 175 .

    ਯ.   ᫥  ᠭ        
 "Analysis of Common RNGs"    Feathered  Serpents    ࠭
"Natural  selection #1",   ன ᬠਢ  ⪠  
ࠧ ᮢ. 稪 ࠢ  ⭮  ⤥
⮢    砩  ᫠,  ⠪   ᫥  । 
 "-"   믮﫨    㣨  ᪨
.    ᫥ , 稪,  ᯮ짮 
 ,  뢠 訥 १,   ,   㯮
᪠஢   ⠩      ਥ஢    -  㬭
䬥⨪, 㤠  .  , ४!
    DrMAD

