-













































: ,

: ,

???

:

. .

: . ??????

????

???????

: ????

????

???

1999

.




1 :

1.1


1.2


1.3

1.4


2 :

2.1

2.2

3 - :

3.1


3.2


3.3


3.4


4 -

5








:


ߠ , , , , ܠ .

, , .

, . , , .

. . , .

38 , 11 , 8 ,

4 , 1 .

6

1
1.1 7
1.2 7

1.3 ..9

1.4 󅅅13

2

2.1 14
2.2 14

2.3 16

2.4   󅅅 20

3
3.1 21
3.2 21

3.3 26

3.4 󅅅 31

. 32

33

34

( ) ( ), .

, , : . , : , .

. . , , , , . D - .

: , .

1

1.1 

,

(1.1.1)

, (1.1.2)

gi, zi 0 15 ,

:

) F1 F2 .

) ( ) F1

, F2 -.

) F1 , F2 , F1 F2 .

gi zi :

(1.1.3)

(1.1.4)

g0 = A, z0 = B . 1 , 9 gi zi.

1.2  .

S A, B, C, ( (+) (∙)) ( ()). :

) A, B, C S

1)   , ();

2)   ( );

3)   ( );

4)   ( );

5)   ( );

6)   ,

( );

7)   S 1 0 ,

;

8)   A S Ã ( A, Ā 1- A ) ,

, .

( ),

( ),

(, ).

n X1, X2,, Xn, ,

(1.2.1)

n .

(), .

() .

.

n , , n- , n . : n , n-1 , n-2 .. n- , s , s-.

K(y) y=ƒ(x1,x2,,xn) Ks(y) . x.

1.3  .

gi zi:

i

gi

zi

0

5

0

1

1

6

2

8

2

3

5

9

4

13

6

5

11

14

6

4

12

7

3

5

8

13

4

9

13

14

10

8

14

11

9

9

12

5

10

13

7

6

gi: 5, 1, 8, 13, 11, 4, 3, 9, 7. zi: 0, 6, 2, 9, 14, 12, 5, 4, 10. , F1

, (1.3.1)

F2:

. (1.3.2)

.

2n , n ().

, . :

x3x4

00 01 11 10

00 1 1

01 1 1 1

x1x2

11 1

10 1 1 1

1.2.1 

F1:

. (1.3.3)

-.

K0- , :


0 0 0 0 0 1 1 1 1

0 0 1 1 1 0 0 1 1

K0 = 0 1 0 0 1 0 1 0 1 (1.3.4)

0 0 0 1 0 1 0 0 0 .

. . . x. , , . , . K1-, :

 


0 0 0 x 0 0 x x 1 1

0 x x 0 1 1 1 1 x 1

K1 = x 0 1 1 0 x 0 1 1 x (1.3.5)

0 0 0 0 x 0 0 0 0 0 .

K1-, K2- :

0 0 x x x x 0 x x

x x x x 1 1 x x 1

K2 = x x 1 1 x x = x 1 x (1.3.6)

0 0 0 0 0 0 0 0 0

, , , . K0-. K0-, x, .


K0

z

0

0

0

0

0

0

1

0

0

1

0

0

0

1

0

1

0

1

1

0

1

0

0

1

1

0

1

0

1

1

0

0

1

1

1

0

1001

+

010x

+ +

0xx0

+ + + +

xx10

+ + + +

x1x0

+ + + +

1.3.1 K0-

, , , 砠 K0-.

, . , :

. (1.3.7)

, tm :

yj(tm) = ƒ ( x1(tm), x2(tm),,xn(tm)) , (1.3.8)

. , m- . , .

F1 , F2 :

(1.3.9)

. (1.3.10)

, , , , : 򠠠 -, :


1.3.1 -


1.3.2 -

1.4

() . , . , . .

2

2.1

:

s(j+1) = [2∙s(j) + x(j) + B] mod 8 ,

y(j) = [ s(j) + x(j) + A] mod 2 ,

.

:

) , ;

) , ;

) ;

) X, Y S, , ;

) , .

2.2

, , .

. y(tj) x(tj) , , c(t) .

, ( tj j):

.

(2.2.1)

.

. y(j) = λ(x(j)), , , .

, j:

(2.2.2)

, X, Y S , .

. :

(2.2.3)

. , :

(2.2.4)

.

- , (2.2.3) (2.2.4).

- , (2.2.3) (2.2.4) . (2.2.3) , .

- , . : , . .

, , : x(j), y(j).

. . , .

:

M = (X, Y, S, δ, λ), (2.2.5)

X , Y , S , δ , λ .

: M M.

, , , M M: M ≥ M.

M ≥ M M ≥ M, M ~ M . . M M .

:

) si sj , ;

) si sj , si sj .

() . .

2.3 .

, :

x(j)

s(j)

0

1

2

3

0

1

0

1

0

1

0

1

0

1

2

1

0

1

0

3

0

1

0

1

4

1

0

1

0

5

0

1

0

1

6

1

0

1

0

7

0

1

0

1

2.3.1

x(j)

s(j)

0

1

2

3

0

0

1

2

3

1

2

3

4

5

2

4

5

6

7

3

6

7

0

1

4

0

1

2

3

5

2

3

4

5

6

4

5

6

7

7

6

7

0

1

2.3.2

x(j)

s(j)

0

1

2

3

0

0/1

1/0

2/1

3/0

1

2/0

3/1

4/0

5/1

2

4/1

5/0

6/1

7/0

3

6/0

7/1

0/0

1/1

4

0/1

1/0

2/1

3/0

5

2/0

3/1

4/0

5/1

6

4/1

5/0

6/1

7/0

7

6/0

7/1

0/0

1/1

2.3.3

. , - . , . , , .

(si ~ sj) ∩ (sj ~ sk) (si ~ sk) (2.3.1)

.

.

. 2 : S1 = {0, 2, 4, 6} S2 = {1, 3, 5, 7}.

, , . . , , . , , , :

0

1

2

3

0;2

0;4

1;5

2;6

3;7

0;4

0;0

1;1

2;2

3;3

0;6

0;4

1;5

2;6

3;7

2;4

4;0

5;1

6;2

3;7

2;6

4;4

5;5

6;6

7;7

4;6

0;4

1;5

2;6

3;7

1;3

2;6

3;7

4;0

5;1

1;5

2;2

3;3

4;4

5;5

1;7

2;6

3;7

4;0

5;1

3;5

6;2

7;3

0;4

1;5

3;7

6;6

7;7

0;0

1;1

5;7

2;6

3;7

4;0

5;1

2.3.4

. , , 0 1.

:

x(j)

s(j)

0

1

2

3

0

0/1

1/0

0/1

1/0

1

0/0

1/1

0/0

1/1

2.3.5 .

:

0/1U 2/1 1/0 U 3/0 1/1U 3/1

0 1

0/0 U 2/0

2.3.1

. y s , x x1 x2:

x

x1

x2

0

0

0

1

0

1

2

1

0

3

1

1

2.3.6 x

(2.3.5). :

x1(j)

0

0

0

0

1

1

1

1

x2(j)

0

0

1

1

0

0

1

1

s(j)

0

1

0

1

0

1

0

1

y(j)

1

0

0

1

1

0

0

1

s(j+1)

0

0

1

1

0

0

1

1

2.3.7

y(j) s(j+1) :

y(j) s(j+1)

x1(j)x2(j) x1(j)x2(j)

00 01 11 10 00 01 11 10

0 1 1 0 1 1

s(j) s(j)

1 1 1 1 1 1

2.3.2

:

(2.3.2)

(2.3.3)

, D - . .


2.3.2

2.3.4

() , . , , , . .

3

3.1

, , :

) ;

) ;

) ;

) μ0 ;

) .

3.2

, , .

.

C = (P, T, I ,O), (3.2.1)

P = { p1, p2,,pn }, n > 0 (3.2.2)

(),

T = { t1, t2,,tm }, m > 0 (3.2.3)

(),

I: T → P (3.2.4)

( ),

O: T → P (3.2.5)

( ).

pi I (tj) , pi j - , pi I (tj) , pi j - .

.

G = (V,), (3.2.6)

V = P U T , P ∩ T = Ø.

, :

C = (P, T, A), (3.2.7)

.

.

μ C = (P, T, I, O) :

N = μ(P), N N, (3.2.8)

. :

μ = {μ1, μ2,, μn} , (3.2.9)

n = │P │, μi N. :

μi = μ (pi) (3.2.10)

. . ( ), .

, :

M = (P, T, I, O, μ). (3.2.11)

:

p1

▪▪▪

t1 p3

p2

3.2.1

.

. , . , , .

, , , , .

. t1 :

p1

t1 p3

p2

3.2.2

.

:

M = (P, T, I, O, μ) (3.2.12)

n . N . . δ .

tj μ , μ :

μ = δ (μ, tj) (3.2.13)

tj , δ .

{tj0, tj1,, tjs} . {μ0, μ1,,μs+1},

μk+1 = δ(μk, tjk) (3.2.14)

. C = (P, T, I ,O) μ μ , tj T,

μ' = δ(μ , tj) (3.2.15)

. μ R(C, μ) :

- , μ R(C, μ);

- , μ R(C, μ), μ = δ(μ , tj) μ = δ(μ, tk), μ R(C, μ).

, . .

1    . μ, . : .

2    . k- , k. , , k 1. , , (), .

3    . , μ0 , .

. tj T :

) (L0- ), ;

) L1- , μ0 ;

) L2- , K μ0 , K ;

) L3- , L2- K → ∞.

4    . , 蠠 μ R(C, μ0) μ0 μ.

5    . μ , μ R(C, μ0) , μ , μ.

6    . , .

: .

. , . :

D [i, j] = # (pi , I(tj)), (3.2.16)

, j- i- . :

D + [i, j] = # (pi , O(tj)), (3.2.17)

, j- i- . e[j] m, , . , , μ ≥ e[j]D . j- :

μ = μ + e[j]·D, (3.2.18)

D = (D + D ) .

μ = μ0 + σ·D, (3.2.19)

μ , σ , , .

, . , - , , , , () .

, , , , . , . . , , , ω .

, , , , , .

, .

3.3

:

p1 p6

▪ ▪

t1p4 t4

p2 p7

t2p5 t5

p3 p8

t3 t6

3.3.1

.

(3.3.1)

(3.3.2)

(3.3.2) (3.3.1):

(3.3.3)

, , (3.2.19). :

μ0 = (10011100) (3.3.4)

.

(10011100)


t1 t4

(01001100) (10010010)

t2 t4 t1 t5

(00100100) (01000010) (01000010) (10000001)

꒠ ꒠

t3 t6

(10011100) (10011100)

3.3.1

. , , , . .

:

μ0

t3 t6

10011100

00100100 t1 t4 10000001

t2 t5

01001100 10010010

t4 t1

01000010

3.3.2

.

- , . , : μ1 = (01000010) μ2 = (00100010). , : t1 , t4 t4 , t1 . , t2 , t3 , t5 , t6 . , .

. (3.2.19), σ x , μ μ1. 8 6 x.

(3.3.5)

, , , , . (1) (4) , x5 = 0, x6 = 0, (7) , x4 = 1. (3.3.5) , x1. x1 = {y y-1 y-1 1 0 0}, y . μ1 , .

, . - , (3.3.5) , . - , , . , , , . , , .

, (3.2.19) μ2, :

(3.3.6)

, , . μ2, .

(3.3.2), , . , . , , , . . , , , .

. . t1 t4 L1- , ( ) . t2, t3, t5 t6 L2- , .

, .

, .

xD = 0 (3.3.7)

(3.3.8)

2 : {y y y 0 0 0} {0 0 0 y y y}, y . , t1 t2 t3 t4 t5 t6 , .

(3.3.2) , . , , , .

, . , , , . , . .

(3.3.2) μ0 :

(3.3.9)

Turbo Pascal. . .

3.4

, , . , . , , , . , , .

, , .

1    .. . :, 1975. 538 .

2    ., . . .: , 1984. 831 .

3    . . .: , 1987. 392 .

4    .. 7.0: . .: , 1997. 432 .

Program Farewell_Pascal_Please_Forgive_Me;

Uses graph,crt;

Const m_0=$9C;

r_0=$90;

path='cursor.dat';

mask:array[0..5] of byte = ($90,$48,$20,$0C,$12,$01);

jump:array[0..5] of word = ($406F,$20B7,$98DF,$02F3,$01ED,$1CFE);

Var

i,j,counter,number:integer;

flag_of_exit:boolean;

ok:word;

bm:integer;

ScrMask:array[1..64] of byte;

r,m,old_m,old_r:byte;

f:file of byte;

procedure Init_Graph_Mode;

var

Driver,

Mode,

ErrCode: Integer;

begin

Driver := Detect;

InitGraph(Driver, Mode, '');

ErrCode := GraphResult;

if ErrCode <> grOk then

begin

Writeln(' :',

GraphErrorMSG(ErrCode));

Halt(1);

end;

SetTextStyle(DefaultFont, HorizDir, 1);

SetColor(15);

SetLineStyle(0,0,1);

SetFillStyle(1,0)

end;

function Init_Mouse:word;

begin

asm

push ax

mov ax,00h

int 33h

mov @Result,ax

pop ax

end

end;

procedure Show_Mouse;

begin

asm

push ax

mov ax,01h

int 33h

pop ax

end

end;

procedure Hide_Mouse;

begin

asm

push ax

mov ax,02h

int 33h

pop ax

end

end;

procedure Set_Graph_Cursor(segm,ofst:word;x,y:integer);

begin

asm

push ax

push bx

push cx

push dx

mov bx,x

mov cx,y

mov es,segm

mov dx,ofst

mov ax,09h

int 33h

pop dx

pop cx

pop bx

pop ax

end

end;

procedure Get_Mouse_State(var bt,x,y:integer);

begin

asm

push ax

push bx

push cx

push dx

mov ax,03h

int 33h

lds di,bt

mov [di],bx

lds di,x

mov [di],cx

lds di,y

mov [di],dx

pop dx

pop cx

pop bx

pop ax

end

end;

procedure Get_Web_State;

begin

r := 0;

for counter:= 0 to 5 do

if (mask[counter] and m) = mask[counter] then

r := r or ($80 shr counter)

end;

procedure Design_Kernel;

begin

OutTextXY(190,20,' ');

OutTextXY(207,27,' ');

for counter := 0 to 2 do

Circle(150,counter*150+50,15);

for counter := 0 to 2 do

Circle(450,counter*150+50,15);

for counter := 0 to 1 do

Circle(300,counter*150+120,15);

for counter := 0 to 2 do

begin

Line(140,counter*150+123,160,counter*150+123);

Line(140,counter*150+127,160,counter*150+127);

Line(140,counter*150+123,140,counter*150+127);

Line(160,counter*150+123,160,counter*150+127)

end;

for counter := 0 to 2 do

begin

Line(440,counter*150+123,460,counter*150+123);

Line(440,counter*150+127,460,counter*150+127);

Line(440,counter*150+123,440,counter*150+127);

Line(460,counter*150+123,460,counter*150+127)

end;

for counter := 0 to 1 do

begin

Line(counter*300+150,65,counter*300+150,123);

Line(counter*300+150,127,counter*300+150,185);

Line(counter*300+150,215,counter*300+150,273);

Line(counter*300+150,277,counter*300+150,335);

Line(counter*300+150,365,counter*300+150,423);

Line(counter*300+150,123,counter*300+148,114);

Line(counter*300+150,123,counter*300+152,114);

Line(counter*300+150,185,counter*300+148,176);

Line(counter*300+150,185,counter*300+152,176);

Line(counter*300+150,273,counter*300+148,264);

Line(counter*300+150,273,counter*300+152,264);

Line(counter*300+150,335,counter*300+148,326);

Line(counter*300+150,335,counter*300+152,326);

Line(counter*300+150,423,counter*300+148,414);

Line(counter*300+150,423,counter*300+152,414)

end;

Arc(120,427,180,360,25);Arc(480,427,180,360,25);

Arc(122,35,0,180,27);Arc(478,35,0,180,27);

Line(95,35,95,425);Line(505,35,505,425);

Line(293,134,163,431);Arc(159,427,180,330,5);

Line(290,281,170,436);Arc(162,427,180,320,12);

Line(307,134,436,431);Arc(440,427,210,360,5);

Line(310,281,429,436);Arc(438,427,220,360,12);

Line(283,117,169,106);Arc(171,121,80,180,15);

Line(312,129,439,262);Arc(429,273,0,45,15);

Line(283,267,169,256);Arc(171,271,80,180,15);

Line(311,257,426,110);Arc(432,121,0,160,12);

Line(150,35,145,26);Line(150,35,150,26);

Line(450,35,455,26);Line(450,35,450,26);

Line(155,123,156,114);Line(155,123,159,115);

Line(155,273,156,264);Line(155,273,159,265);

Line(445,123,444,114);Line(445,123,440,115);

Line(445,123,444,114);Line(445,123,441,116);

Line(445,273,444,264);Line(445,273,440,265);

Line(293,135,287,142);Line(293,135,291,143);

Line(307,135,309,143);Line(307,135,312,142);

Line(290,282,282,288);Line(290,282,285,290);

Line(311,282,315,290);Line(311,282,317,288);

SetFillStyle(1,8);

for counter := 0 to 1 do

begin

Line(540,counter*70+150,600,counter*70+150);

Line(540,counter*70+170,600,counter*70+170);

Line(600,counter*70+150,600,counter*70+170);

Line(540,counter*70+150,540,counter*70+170);

FloodFill(570,counter*70+160,15)

end;

SetFillStyle(1,15);

OutTextXY(543,159,'Restore');

OutTextXY(555,229,'Exit');

end;

procedure Design_Mark_and_Jumps;

begin

SetColor(15);

SetLineStyle(0,0,3);

SetFillStyle(1,15);

Hide_Mouse;

for counter := 0 to 2 do

if ((m shr (7 - counter)) and 1) = 1 then

begin

SetColor(15);

SetFillStyle(1,15);

FillEllipse(150,counter*150+50,1,1)

end

else

begin

SetColor(0);

SetFillStyle(1,0);

FillEllipse(150,counter*150+50,1,1)

end;

for counter := 3 to 4 do

if ((m shr (7 - counter)) and 1) = 1 then

begin

SetColor(15);

SetFillStyle(1,15);

FillEllipse(300,(counter-3)*150+120,1,1)

end

else

begin

SetColor(0);

SetFillStyle(1,0);

FillEllipse(300,(counter-3)*150+120,1,1)

end;

for counter := 5 to 7 do

if ((m shr (7 - counter)) and 1) = 1 then

begin

SetColor(15);

SetFillStyle(1,15);

FillEllipse(450,(counter-5)*150+50,1,1)

end

else

begin

SetColor(0);

SetFillStyle(1,0);

FillEllipse(450,(counter-5)*150+50,1,1)

end;

for counter := 0 to 2 do

if ((r shr (7 - counter)) and 1) = 1 then

begin

SetFillStyle(1,10);

FloodFill(150,counter*150+125,15)

end

else

begin

SetFillStyle(1,12);

FloodFill(150,counter*150+125,15)

end;

for counter := 3 to 5 do

if ((r shr (7 - counter)) and 1) = 1 then

begin

SetFillStyle(1,10);

FloodFill(450,(counter-3)*150+125,15)

end

else

begin

SetFillStyle(1,12);

FloodFill(450,(counter-3)*150+125,15)

end;

SetColor(15);

SetFillStyle(1,15);

Show_Mouse

end;

Begin

Init_Graph_Mode;

ok := Init_Mouse;

flag_of_exit := false;

m := m_0;

r := r_0;

old_m := 0;

old_r := 0;

if ok = $FFFF then

begin

{$I-} assign(f,path);

reset(f);

ok := filesize(f);

{$I+} if (IOResult = 0) and (ok = 64) then

begin

for i := 0 to 63 do

read(f,ScrMask[i]);

Set_Graph_Cursor(seg(ScrMask),ofs(ScrMask),2,2)

end;

Design_Kernel;

Show_Mouse;

repeat

Get_Mouse_State(bm,i,j);

if (m <> old_m) or (r <> old_r) then

begin

Get_Web_State;

Design_Mark_and_Jumps;

old_m := m;

old_r := r

end;

if bm = 1 then

begin

number := 6;

for counter := 0 to 2 do

if (i < 165) and (i > 135) and

(j < counter*150+130) and (j > counter*150+120)

then

number := counter;

for counter := 3 to 5 do

if (i < 465) and (i > 435) and

(j < (counter-3)*150+130) and (j > (counter-3)*150+120)

then

number := counter;

if (number < 6) and (((1 shl (7-number)) and r) <> 0) then

begin

m := m and (jump[number] and $FF);

m := m or (jump[number] shr 8)

end;

if (i < 600) and (i > 540) and (j < 170) and (j > 150)

then

m := m_0;

if (i < 600) and (i > 540) and (j < 240) and (j > 220)

then

flag_of_exit := true

end;

until flag_of_exit;

Hide_Mouse;

CloseGraph

end

else

begin

CloseGraph;

WriteLn(' : Device or driver not found.')

end

End.


2012 , .