05.12.2010, 16:24 | #1 (permalink) |
Новичок
Регистрация: 05.12.2010
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Задача о группах
n:=1 {номер элемента группы} for i:=0 to 3 do for j:=0 to 3 do for k:=0 to 3 do for l:=0 to 3 do if (i*l-j*k) mod 4 = 1 {усли определитель равен 1} then begin 1)перевести i, j, k, l в строку 2)присвоить очередному элементу массива а[n] строку ijkl. 3) увеличить счетчик на 1, n:=n+1 end. После цикла n должно быть равно 61. Выведи на экран все элементы массива (их 60). Дальше можно отдельно сделать процедуру умножения двух строк abcd*xyzw=((ax+bz) mod 4)((ay+bw) mod 4)((cx+dz) mod 4)((cy+dw) mod 4) При этом, конечно, предваритель нужно переводить все в числа, а затем обратно с строку. Обращаясь к процедуре умножения, можно определить порядок каждого элемента и вывести на экран циклическую подгруппу, порожденную элементом. Все делать в цикле, пока на очередном умножении не получится единичная матрица '1001'. |
05.12.2010, 16:24 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Проблему решать гораздо легче, если набраться информации из схожих тем Задача по С + + Задача по С++ Задача |
05.12.2010, 18:55 | #2 (permalink) | |||
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
TYPE AR=ARRAY[0..3] of Byte; VAR A:Array[1..100] of AR; n,i,j,k,l:Byte; Function Prod(p1,p2:AR):Byte; begin Prod:=((p1[0]*p2[0]+p1[1]*p2[2]) mod 4)* ((p1[0]*p2[1]+p1[1]*p2[3]) mod 4)* ((p1[2]*p2[0]+p1[3]*p2[2]) mod 4)* ((p1[2]*p2[1]+p1[3]*p2[3]) mod 4); end; BEGIN n:=1; for i:=0 to 3 do for j:=0 to 3 do for k:=0 to 3 do for l:=0 to 3 do if ((i*l-j*k) mod 4) = 1 then begin a[n][0]:=i; a[n][1]:=j; a[n][2]:=k; a[n][3]:=l; n:=n+1 end; n:=n-1; for i:=1 to (n div 6) do begin for j:=1 to 6 do begin write('('); for k:=0 to 3 do write(a[(i-1)*6+j][k]:2); write(') '); end; writeln; end; for j:=(n div 6)*6+1 to n do begin write('('); for k:=0 to 3 do write(a[j][k]:2); write(') '); end; writeln; readln; END. Цитата:
Код:
Function Prod(p1,p2:AR):AR; begin Prod[0]:=((p1[0]*p2[0]+p1[1]*p2[2]) mod 4); Prod[1]:=((p1[0]*p2[1]+p1[1]*p2[3]) mod 4); Prod[2]:=((p1[2]*p2[0]+p1[3]*p2[2]) mod 4); Prod[3]:=((p1[2]*p2[1]+p1[3]*p2[3]) mod 4); end; Цитата:
Если Вы хотите получить помощь на форуме, соблаговолите ясно, четко, прозрачно и подробно сформулировать задачу. P.S. Отговорки типа "А мне так дали" НЕ ПРИНИМАЮТСЯ. P.P.S. А еще я не понял - зачем нужно возиться со строками и без конца переводить числа в строки и обратно, если работа идет исключительно с числами? Просто ради дури преподской? |
|||
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|