Смекни!
smekni.com

Восьмиэлементные ассоциативные кольца (стр. 3 из 3)

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 1 1 3 0 5 5 3

0 0 0 0 0 0 0 0

0 1 1 3 0 5 5 3

0 1 1 3 0 5 5 3

0 1 1 3 0 5 5 3

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 1 1 7 0 6 6 7

0 0 0 0 0 0 0 0

0 1 1 7 0 6 6 7

0 1 1 7 0 6 6 7

0 1 1 7 0 6 6 7

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 1 2 3 4 5 6 7

0 0 0 0 0 0 0 0

0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 4 0 3 4 7 3 7

0 0 0 0 0 0 0 0

0 4 0 3 4 7 3 7

0 4 0 3 4 7 3 7

0 4 0 3 4 7 3 7

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 4 0 6 4 5 6 5

0 0 0 0 0 0 0 0

0 4 0 6 4 5 6 5

0 4 0 6 4 5 6 5

0 4 0 6 4 5 6 5

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 1 0 1 1 1

0 0 0 0 0 0 0 0

0 0 0 1 0 1 1 1

0 0 0 0 0 0 0 0

0 0 0 1 0 1 1 1

0 0 0 1 0 1 1 1

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 1 0 1 1 1

0 0 0 1 0 1 1 1

0 0 0 1 0 1 1 1

0 0 0 1 0 1 1 1

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 1 0 1 1 1

0 0 1 0 1 0 1 1

0 0 0 1 0 1 1 1

0 0 1 0 1 0 1 1

0 0 1 1 1 1 0 0

0 0 1 1 1 1 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 1 0 1 1 1

0 0 1 1 1 1 0 0

0 0 0 1 0 1 1 1

0 0 1 1 1 1 0 0

0 0 1 0 1 0 1 1

0 0 1 0 1 0 1 1

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 1 0 1 1 1

0 0 1 2 1 2 4 4

0 0 0 1 0 1 1 1

0 0 1 2 1 2 4 4

0 0 1 4 1 4 2 2

0 0 1 4 1 4 2 2

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 2 0 2 2 2

0 0 0 3 0 3 3 3

0 0 0 2 0 2 2 2

0 0 0 3 0 3 3 3

0 0 0 6 0 6 6 6

0 0 0 6 0 6 6 6

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 2 0 2 2 2

0 0 0 5 0 5 5 5

0 0 0 2 0 2 2 2

0 0 0 5 0 5 5 5

0 0 0 7 0 7 7 7

0 0 0 7 0 7 7 7

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 2 0 2 2 2

0 0 2 3 2 3 6 6

0 0 0 2 0 2 2 2

0 0 2 3 2 3 6 6

0 0 2 6 2 6 3 3

0 0 2 6 2 6 3 3


Библиографический список.

1. Кострикин А.И. Введение в алгебру. – М.: Наука, 1997.

2. Скорняков Л.А. Элементы алгебры. – М.: Наука, 1986.


Приложение

1. Текст программы поиска колец, имеющих аддитивную группу

.

Программа 1. Формирование мультипликативных полугрупп:

program form;

uses crt;

type mas=array [0..7,0..7] of integer;

dmas=array [1..7,1..7] of integer;

var a:mas;

b:dmas;

f:text;

procedure sc(var a:mas);

var i,j:integer;

begin

assign(f,'a:\mat.txt');

reset(f);

for i:=0 to 7 do begin

for j:=0 to 7 do read(f,a[i,j]);

readln(f);

end;

close(f);

end;

procedure zap1(k1,k2,k3,k4:integer;a:mas; var b:dmas);

var t2,t3,t5,t6,t7:integer;

begin

b[1,1]:=k1; b[1,4]:=k2; b[4,1]:=k3; b[4,4]:=k4;

b[1,2]:=a[b[1,1],b[1,1]]; b[1,3]:=a[b[1,1],b[1,2]];

b[1,5]:=a[b[1,1],b[1,4]]; b[1,6]:=a[b[1,1],b[1,5]];

b[1,7]:=a[b[1,1],b[1,6]];

for t2:=1 to 7 do b[2,t2]:=a[b[1,t2],b[1,t2]];

for t3:=1 to 7 do b[3,t3]:=a[b[1,t3],b[2,t3]];

b[4,2]:=a[b[4,1],b[4,1]]; b[4,3]:=a[b[4,1],b[4,2]];

b[4,5]:=a[b[4,1],b[4,4]]; b[4,6]:=a[b[4,1],b[4,5]];

b[4,7]:=a[b[4,1],b[4,6]];

for t5:=1 to 7 do b[5,t5]:=a[b[1,t5],b[4,t5]];

for t6:=1 to 7 do b[6,t6]:=a[b[1,t6],b[5,t6]];

for t7:=1 to 7 do b[7,t7]:=a[b[1,t7],b[6,t7]];

end;

procedure zap(a:mas);

var f1:text;

i,j,k1,k2,k3,k4,r:integer;

begin

assign(f1,'a:\a2.txt');

rewrite(f1);

r:=0;

for k1:=0 to 7 do

for k2:=0 to 7 do

for k3:=0 to 7 do

for k4:=0 to 7 do begin

zap1(k1,k2,k3,k4,a,b);

for i:=1 to 7 do begin

for j:=1 to 7 do write(f1,b[i,j]);

writeln(f1);

end;

writeln(f1); inc(r);

end;

close(f1);

writeln(r);

end;

begin

clrscr;

sc(a);

zap(a);

writeln('ok');

readln;

end.

Программа 2. Проверка на ассоциативность:

program assoc;

uses crt;

type mas=array [0..7,0..7] of integer;

var a,b:mas;

i,j,k1,k2,k3,n,i1,i2,r,q:integer;

f,f1:text;

begin

clrscr;

q:=0;

assign(f,'a:\w03.txt');

reset(f);

assign(f1,'a:\aw03.txt');

rewrite(f1);

n:=1; r:=0;

while n<=2048 do begin

for i:=0 to 7 do begin

for j:=0 to 7 do read(f,a[i,j]);

readln(f);

end;

for k1:=1 to 7 do

for k2:=1 to 7 do

for k3:=1 to 7 do

if a[k1,a[k2,k3]]<>a[a[k1,k2],k3] then q:=1;

if q<>1 then begin

for i1:=0 to 7 do begin

for i2:=0 to 7 do write(f1,a[i1,i2],' ');

writeln(f1);

end;

inc(r);

writeln(f1);

end;

readln(f);inc(n);q:=0;

end;

close(f);

close(f1);

writeln(r);

writeln('ok');

readln;

end.

Программа 3. Нахождение изоморфных колец:

program izomorf;

uses crt;

const p=1;

type mas=array [0..7,0..7] of integer;

mas1=array [1..8,1..8] of integer;

var a,b:mas;

y:mas1;

i,j,n,i1,i2,r,w,h,g,d:integer;

f,f1,f2:text;

label 1;

procedure alfa(a:mas; var b:mas);

var k1,k2,j1,j2,z1,z2,z3,z4,q3,w3:integer;

begin

for k1:=0 to 7 do begin

b[0,k1]:=0;

b[1,k1]:=a[7,k1];

b[2,k1]:=a[2,k1];

b[3,k1]:=a[5,k1];

b[4,k1]:=a[4,k1];

b[5,k1]:=a[3,k1];

b[6,k1]:=a[6,k1];

b[7,k1]:=a[1,k1];

end;

for k2:=0 to 7 do begin

z1:=b[k2,3];z2:=b[k2,5];

b[k2,5]:=z1;b[k2,3]:=z2;

z3:=b[k2,1];z4:=b[k2,7];

b[k2,7]:=z3;b[k2,1]:=z4;

end;

for j1:=0 to 7 do

for j2:=0 to 7 do begin

if b[j1,j2]=1 then b[j1,j2]:=-1;

if b[j1,j2]=7 then b[j1,j2]:=-7;

end;

for j1:=0 to 7 do

for j2:=0 to 7 do begin

if b[j1,j2]=-1 then b[j1,j2]:=7;

if b[j1,j2]=-7 then b[j1,j2]:=1;

end;

for j1:=0 to 7 do

for j2:=0 to 7 do begin

if b[j1,j2]=5 then b[j1,j2]:=-5;

if b[j1,j2]=3 then b[j1,j2]:=-3;

end;

for j1:=0 to 7 do

for j2:=0 to 7 do begin

if b[j1,j2]=-5 then b[j1,j2]:=3;

if b[j1,j2]=-3 then b[j1,j2]:=5;

end;

for q3:=0 to 7 do begin

for w3:=0 to 7 do write(b[q3,w3],' ');

writeln;

end;

end;

procedure prov(b:mas);

var q,i3,j3,t,m,x,i4,j4:integer;

a1:mas;

begin

t:=1;

reset(f);

rewrite(f1);

for m:=1 to 9 do readln(f);

while t<=p do begin

for i3:=0 to 7 do begin

for j3:=0 to 7 do read(f,a1[i3,j3]);

readln(f);

end;

q:=0;

for i3:=0 to 7 do

for j3:=0 to 7 do begin

if a1[i3,j3]=b[i3,j3] then inc(q); end;

if q<>64 then

{for x:=1 to 9 do readln(f) else}

begin

for i4:=0 to 7 do begin

for j4:=0 to 7 do write(f1,a1[i4,j4],' ');

writeln(f1);

end;

writeln(f1);

end;

readln(f);

inc(t);

end;

end;

begin

clrscr;

assign(f1,'a:&bsol;pr.txt');

assign(f2,'a:&bsol;iaw.txt');

rewrite(f2);

assign(f,'a:&bsol;aw03.txt');

n:=1;

reset(f);

rewrite(f1);

for i:=0 to 7 do begin

for j:=0 to 7 do read(f,a[i,j]);

readln(f);

end;

{if a[i,j]=8 then begin n:=8; goto 1; end;}

alfa(a,b);

readln(f);

w:=0;

for h:=0 to 7 do

for g:=0 to 7 do

if a[h,g]=b[h,g] then inc(w);

if w<>64 then prov(b) else begin

r:=1;

while r<=p do begin

for i1:=1 to 8 do begin

for i2:=1 to 8 do read(f,y[i1,i2]);

readln(f);

end;

for i1:=1 to 8 do begin

for i2:=1 to 8 do write(f1,y[i1,i2],' ');

writeln(f1);

end;

writeln(f1);

readln(f);

inc(r);

end;

end;

for i1:=0 to 7 do begin

for i2:=0 to 7 do write(f2,a[i1,i2],' ');

writeln(f2);

end;

writeln(f2);

reset(f1);

rewrite(f);

d:=1;

while d<=p do begin

for i1:=1 to 8 do begin

for i2:=1 to 8 do read(f1,y[i1,i2]);

readln(f1);

end;

for i1:=1 to 8 do begin

for i2:=1 to 8 do write(f,y[i1,i2],' ');

writeln(f);

end;

writeln(f);

readln(f1);

inc(d);

end;

{readln(f1);

writeln(f);

inc(n);

end;}

close(f);

close(f1);

close(f2);

writeln('ok');

readln;

end.


2.Текст программы поиска колец, имеющих аддитивную группу

.

Программа 1. Нахождение всех базисов данной аддитивной группы:

programbasis;

uses crt;

type mas=array [1..3] of integer;

var a,b,c,d,e,f,g:char;

i,j,n,k:integer;

x:mas;

f1,f2:text;

begin

assign(f2,'a:&bsol;28.txt');

reset(f2);

assign(f1,'a:&bsol;new168.txt');

rewrite(f1);

n:=1;

while n<=28 do begin

for i:=1 to 3 do read(f2,x[i]);

write(f1,x[1],' ',x[2],' ',x[3]);

writeln(f1);

write(f1,x[1],' ',x[3],' ',x[2]);

writeln(f1);

write(f1,x[3],' ',x[1],' ',x[3]);

writeln(f1);

write(f1,x[3],' ',x[2],' ',x[1]);

writeln(f1);

write(f1,x[2],' ',x[3],' ',x[1]);

writeln(f1);

write(f1,x[2],' ',x[1],' ',x[3]);

writeln(f1);

readln(f2);

writeln(f1);

inc(n);

end;

close(f2);

close(f1);

writeln('ok');

readln;

end.

Программа 2. Формирование полугрупп, с учетом ассоциативности:

program assZ2;

uses crt;

type mas=array [0..7,0..7] of integer;

var a,a1:mas;

i1,i2,i3,i4,i5,i6,i7,i8,i9,k1,k2,k3,r:integer;

n:real;

f,f1:text;

procedure sc(var a1:mas);

var i,j:integer;

begin

assign(f1,'a:&bsol;z2summ.txt');

reset(f1);

for i:=0 to 7 do begin

for j:=0 to 7 do read(f1,a1[i,j]);

readln(f1);

end;

close(f1);

end;

procedure zap(i1,i2,i3,i4,i5,i6,i7,i8,i9:integer;a1:mas; var r:integer);

var i,j,t1,t2,t3,t4,q:integer;

begin

q:=0;

for t1:=0 to 7 do a[0,t1]:=0;

for t2:=1 to 7 do a[t2,0]:=0;

a[1,1]:=i1; a[1,2]:=i2; a[1,3]:=i3;

a[2,1]:=i4; a[2,2]:=i5; a[2,3]:=i6;

a[3,1]:=i7; a[3,2]:=i8; a[3,3]:=i9;

for t3:=1 to 3 do begin

a[t3,4]:=a1[a[t3,1],a[t3,2]];

a[t3,5]:=a1[a[t3,1],a[t3,3]];

a[t3,6]:=a1[a[t3,2],a[t3,3]];

a[t3,7]:=a1[a[t3,1],a[t3,6]];

end;

for t4:=1 to 7 do begin

a[4,t4]:=a1[a[1,t4],a[2,t4]];

a[5,t4]:=a1[a[1,t4],a[3,t4]];

a[6,t4]:=a1[a[2,t4],a[3,t4]];

a[7,t4]:=a1[a[1,t4],a[6,t4]];

end;

{for i:=0 to 7 do begin

for j:=0 to 7 do write(a[i,j],' ');

writeln;

end;}

for k1:=0 to 7 do

for k2:=0 to 7 do

for k3:=0 to 7 do

if a[k1,a[k2,k3]]<>a[a[k1,k2],k3] then q:=1;

{writeln(q);}

if q=0 then begin

inc(r);

{for i:=0 to 2 do begin

for j:=0 to 2 do write(f,a[i,j],' ');

writeln(f);

end;

writeln(f);

end;

q:=0;}

end;

end;

begin

clrscr;

r:=0;

sc(a1);

assign(f,'a:&bsol;z2.txt');

rewrite(f);

{ i1:=6;i2:=6;i3:=6;i4:=6;i5:=6;i6:=6;i7:=6;i8:=6;i9:=6;}

for i1:=0 to 7 do

for i2:=0 to 7 do

for i3:=0 to 7 do

for i4:=0 to 7 do

for i5:=0 to 7 do

for i6:=0 to 7 do

for i7:=0 to 7 do

for i8:=0 to 7 do

for i9:=0 to 7 do begin

zap(i1,i2,i3,i4,i5,i6,i7,i8,i9,a1,r);

writeln(r);

end;

writeln(' ',r);

close(f);

writeln('ok');

readln;

end.

Программа 3. Нахождениеизоморфных колец:

program izomorf;

uses crt;

const p=1;

type mas=array [0..7,0..7] of integer;

mas1=array [1..3] of integer;

var a,b,a1:mas;

y:mas1;

n,j1,i2,t,h,g,d:integer;

f,f1,f2,f3,f8:text;

procedure basis(var y:mas1);

var i:integer;

begin

for i:=1 to 3 do read(f2,y[i]);

readln(f2);

end;

procedure sc(var a:mas);

var i,j:integer;

begin

reset(f1);

for i:=0 to 7 do begin

for j:=0 to 7 do read(f1,a[i,j]);

readln(f1);

end;

end;

{procedure glav(b:mas);

var q,i,j,x,k:integer;

begin

x:=0;k:=1;

reset(f1);

rewrite(f8);

while n<=t do begin

q:=0;

for i:=0 to 7 do begin

for j:=0 to 7 do read(f1,a1[i,j]);

readln(f1);

end;

for i:=0 to 7 do

for j:=0 to 7 do

if a1[i,j]=b[i,j] then inc(q);

if q=64 then begin inc(h);

x:=1;

end

else

for i:=0 to 7 do begin

for j:=0 to 7 do write(f8,a1[i,j],' ');

writeln(f8);

end;

inc(n);

readln(f1);

writeln(f8);

end;

if x=1 then t:=t-2 else t:=t-1;

reset(f8);

rewrite(f1);

while k<=t do begin

for i:=0 to 7 do begin

for j:=0 to 7 do read(f8,a1[i,j]);

readln(f8);

end;

for i:=0 to 7 do begin

for j:=0 to 7 do write(f1,a1[i,j],' ');

writeln(f1);

end;

inc(k);

end;

end;}

procedure newb(y:mas1;a:mas; var b:mas);

var i,j,z1,z2,z3:integer;

begin

for i:=0 to 7 do begin

z1:=a[1,i]; a[1,i]:=a[y[1],i]; a[y[1],i]:=z1;

z2:=a[2,i]; a[2,i]:=a[y[2],i]; a[y[2],i]:=z2;

z3:=a[3,i]; a[3,i]:=a[y[3],i]; a[y[3],i]:=z3;

end;

for j:=0 to 7 do begin

z1:=a[j,1]; a[j,1]:=a[j,y[1]]; a[j,y[1]]:=z1;

z2:=a[j,2]; a[j,2]:=a[j,y[2]]; a[j,y[2]]:=z2;

z3:=a[j,3]; a[j,3]:=a[j,y[3]]; a[j,y[3]]:=z3;

end;

for i:=0 to 7 do

for j:=0 to 7 do begin

if a[i,j]=1 then a[i,j]:=-1;

if a[i,j]=y[1] then a[i,j]:=-y[1];

end;

for i:=0 to 7 do

for j:=0 to 7 do begin

if a[i,j]=-1 then a[i,j]:=y[1];

if a[i,j]=-y[1] then a[i,j]:=1;

end;

for i:=0 to 7 do

for j:=0 to 7 do begin

if a[i,j]=2 then a[i,j]:=-2;

if a[i,j]=y[2] then a[i,j]:=-y[2];

end;

for i:=0 to 7 do

for j:=0 to 7 do begin

if a[i,j]=-2 then a[i,j]:=y[2];

if a[i,j]=-y[2] then a[i,j]:=2;

end;

for i:=0 to 7 do

for j:=0 to 7 do begin

if a[i,j]=3 then a[i,j]:=-3;

if a[i,j]=y[3] then a[i,j]:=-y[3];

end;

for i:=0 to 7 do

for j:=0 to 7 do begin

if a[i,j]=-3 then a[i,j]:=y[3];

if a[i,j]=-y[3] then a[i,j]:=3;

end;

for i:=0 to 7 do

for j:=0 to 7 do b[i,j]:=a[i,j];

{glav(b);}

for i:=0 to 7 do begin

for j:=0 to 7 do write(f,b[i,j],' ');

writeln(f);

end;

writeln(f);

end;

procedure new5(b,a:mas);

var i,j,z1,z2,i1:integer;

begin

for i:=1 to 5 do begin

if i mod 2<>0 then begin

for j:=0 to 7 do begin

z1:=b[2,j]; b[2,j]:=b[3,j]; b[3,j]:=z1;

end;

for j:=0 to 7 do begin

z2:=b[j,2]; b[j,2]:=b[j,3]; b[j,3]:=z2;

end;

for i1:=0 to 7 do

for j:=0 to 7 do begin

if b[i1,j]=3 then b[i1,j]:=-3;

if b[i1,j]=2 then b[i1,j]:=-2;

end;

for i1:=0 to 7 do

for j:=0 to 7 do begin

if b[i1,j]=-3 then b[i1,j]:=2;

if b[i1,j]=-2 then b[i1,j]:=3;

end;

{glav(b);}

for i1:=0 to 7 do begin

for j:=0 to 7 do write(f,b[i1,j],' ');

writeln(f);

end;

writeln(f);

end;

if i mod 2=0 then begin

for j:=0 to 7 do begin

z1:=b[1,j]; b[1,j]:=b[2,j]; b[2,j]:=z1;

end;

for j:=0 to 7 do begin

z2:=b[j,1]; b[j,1]:=b[j,2]; b[j,2]:=z2;

end;

for i1:=0 to 7 do

for j:=0 to 7 do begin

if b[i1,j]=1 then b[i1,j]:=-1;

if b[i1,j]=2 then b[i1,j]:=-2;

end;

for i1:=0 to 7 do

for j:=0 to 7 do begin

if b[i1,j]=-1 then b[i1,j]:=2;

if b[i1,j]=-2 then b[i1,j]:=1;

end;

{glav(b);}

for i1:=0 to 7 do begin

for j:=0 to 7 do write(f,b[i1,j],' ');

writeln(f);

end;

writeln(f);

end;

end;

end;

begin

clrscr;

assign(f1,'a:&bsol;vse_z21.txt');

reset(f1);

assign(f2,'a:&bsol;28.txt');

reset(f2);

assign(f,'a:&bsol;xx.txt');

rewrite(f);

{assign(f3,'a:&bsol;ist.txt');

rewrite(f3);

assign(f8,'a:&bsol;pom.txt');

rewrite(f8);}sc(a);

for g:=1 to 28 do begin

basis(y);{d:=1;g:=0;}

{while d<=t do begin}

{inc(g);writeln(g);}

{for j1:=0 to 7 do begin

for i2:=0 to 7 do write(f3,a[j1,i2]);

writeln(f3);

end;

writeln(f3);}

newb(y,a,b);

{n:=1;}

new5(b,a);

{inc(d);}

end;

close(f);

close(f1);

close(f2);

{close(f3);}

{close(f8);}

{ writeln(h); }

writeln('ok');

readln;

end.