Advertisement
Savelyev_Vyacheslav

task_1_3ver2

Oct 4th, 2021
1,212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 2.01 KB | None | 0 0
  1. % 1_3
  2. % Написать скрипт, в котором генерируется случайная квадратная матрица
  3. % размера 6, и её строки переставляются таким образом, чтобы элементы главной
  4. % диагонали были расположены по возрастанию
  5. clear
  6. clc
  7. close all
  8.  
  9. r=6; % размер
  10. Massiv = rand(r,r);
  11. delit=10; % 65432,1
  12. BufMassiv =[];
  13. finish=654321;
  14. ii=123455;
  15. % for ii = finish:-1:start
  16. while ii < finish
  17.   ii=ii+1;
  18.         chislo_ = ii;
  19.         Int1 = mod(chislo_, delit); chislo_ = fix(chislo_/delit);
  20.         if (Int1>r || Int1==0) continue;
  21.         end
  22.         Int2 = mod(chislo_, delit); chislo_ = fix(chislo_/delit);
  23.         if (Int2>r || Int2==0) continue;
  24.         end
  25.         Int3 = mod(chislo_, delit); chislo_ = fix(chislo_/delit);
  26.         if (Int3>r || Int3==0) continue;
  27.         end
  28.         Int4 = mod(chislo_, delit); chislo_ = fix(chislo_/delit);
  29.         if (Int4>r || Int4==0) continue;
  30.         end
  31.         Int5 = mod(chislo_, delit); chislo_ = fix(chislo_/delit);
  32.         if (Int5>r || Int5==0) continue;
  33.         end
  34.         Int6 = mod(chislo_, delit); chislo_ = fix(chislo_/delit);
  35.         if (Int6>r || Int6==0) continue;
  36.         end
  37.     order = [Int1,Int2,Int3,Int4,Int5,Int6];
  38.     unikal = unique(order);
  39.     if ((length(order)==length(unikal)))
  40.         BufMassiv = cat(1,BufMassiv,Massiv(Int6,:));
  41.         BufMassiv = cat(1,BufMassiv,Massiv(Int5,:));
  42.         BufMassiv = cat(1,BufMassiv,Massiv(Int4,:));
  43.         BufMassiv = cat(1,BufMassiv,Massiv(Int3,:));
  44.         BufMassiv = cat(1,BufMassiv,Massiv(Int2,:));
  45.         BufMassiv = cat(1,BufMassiv,Massiv(Int1,:));
  46.         diagonal=diag(BufMassiv);
  47.         diagonalDIFFER = diff(diagonal);
  48.         MinMassiv = min(diagonalDIFFER);
  49.             if (MinMassiv>=0)disp('РЕШЕНО'); break; end
  50.     end
  51.             if (ii==finish)disp('МАССИВА НЕТ'); end
  52.             BufMassiv=[];
  53.    
  54. end
  55. BufMassiv
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement