Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % 1_3
- % Написать скрипт, в котором генерируется случайная квадратная матрица
- % размера 6, и её строки переставляются таким образом, чтобы элементы главной
- % диагонали были расположены по возрастанию
- clear
- clc
- close all
- r=6; % размер
- Massiv = rand(r,r);
- delit=10; % 65432,1
- BufMassiv =[];
- finish=654321;
- ii=123455;
- % for ii = finish:-1:start
- while ii < finish
- ii=ii+1;
- chislo_ = ii;
- Int1 = mod(chislo_, delit); chislo_ = fix(chislo_/delit);
- if (Int1>r || Int1==0) continue;
- end
- Int2 = mod(chislo_, delit); chislo_ = fix(chislo_/delit);
- if (Int2>r || Int2==0) continue;
- end
- Int3 = mod(chislo_, delit); chislo_ = fix(chislo_/delit);
- if (Int3>r || Int3==0) continue;
- end
- Int4 = mod(chislo_, delit); chislo_ = fix(chislo_/delit);
- if (Int4>r || Int4==0) continue;
- end
- Int5 = mod(chislo_, delit); chislo_ = fix(chislo_/delit);
- if (Int5>r || Int5==0) continue;
- end
- Int6 = mod(chislo_, delit); chislo_ = fix(chislo_/delit);
- if (Int6>r || Int6==0) continue;
- end
- order = [Int1,Int2,Int3,Int4,Int5,Int6];
- unikal = unique(order);
- if ((length(order)==length(unikal)))
- BufMassiv = cat(1,BufMassiv,Massiv(Int6,:));
- BufMassiv = cat(1,BufMassiv,Massiv(Int5,:));
- BufMassiv = cat(1,BufMassiv,Massiv(Int4,:));
- BufMassiv = cat(1,BufMassiv,Massiv(Int3,:));
- BufMassiv = cat(1,BufMassiv,Massiv(Int2,:));
- BufMassiv = cat(1,BufMassiv,Massiv(Int1,:));
- diagonal=diag(BufMassiv);
- diagonalDIFFER = diff(diagonal);
- MinMassiv = min(diagonalDIFFER);
- if (MinMassiv>=0)disp('РЕШЕНО'); break; end
- end
- if (ii==finish)disp('МАССИВА НЕТ'); end
- BufMassiv=[];
- end
- BufMassiv
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement