{"id":170753,"date":"2013-02-26T18:56:06","date_gmt":"2013-02-26T14:56:06","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=170753"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=170753","title":{"rendered":"<span class=\"post_title\">\u0420\u0430\u0441\u0447\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u0413\u0430\u0443\u0441\u0441\u0430<\/span>"},"content":{"rendered":"<div class=\"content html_format\"> \t\t\t\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435. \u041d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u043f\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e (JAVA), \u044f \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439, \u043f\u043e\u0438\u0441\u043a \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0435 \u0434\u0430\u043b, \u043d\u043e \u0432 \u0438\u0442\u043e\u0433\u0435 \u044f \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0441\u044f \u0441\u0430\u043c \u0438 \u0440\u0435\u0448\u0438\u043b \u0432\u044b\u043b\u043e\u0436\u0438\u0442\u044c \u0441\u0432\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0441\u044e\u0434\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u0425\u0430\u0431\u0440 \u0447\u0430\u0441\u0442\u043e \u0432\u044b\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0432\u044b\u0445 10 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0445 \u043f\u043e\u0438\u0441\u043a\u0430 \u0438, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043a\u043e\u0433\u0434\u0430-\u043d\u0438\u0431\u0443\u0434\u044c \u044d\u0442\u043e \u043a\u043e\u043c\u0443-\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442.<\/p>\n<p>  <a name=\"habracut\"><\/a><\/p>\n<h5>\u0422\u0435\u043f\u0435\u0440\u044c \u0441\u0443\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b<\/h5>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u044f \u0441\u0432\u043e\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b:<br \/>  1 2 3<br \/>  4 5 6<br \/>  7 8 9<\/p>\n<p>  \u044f \u043f\u043e\u043b\u0443\u0447\u0430\u043b \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<br \/>  1 2 3<br \/>  0 -3 -6<br \/>  0 -14 -28<\/p>\n<p>  \u0430 \u0434\u043e\u043b\u0436\u0435\u043d:<\/p>\n<p>  1 2 3<br \/>  0 -3 -6<br \/>  0 0 0<\/p>\n<p>  \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u0442\u043e\u0440\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0440\u0430\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u0435\u0440\u043d\u043e, \u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043d\u0435\u0442, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u0447\u0430\u043b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0434\u0435\u0431\u0430\u0433\u0435\u0440\u043e\u043c, \u0432\u044b\u044f\u0441\u043d\u0438\u043b \u0432\u043e\u0442 \u0447\u0442\u043e:<br \/>  \u043f\u0440\u0438 i=0, \u043f\u0435\u0440\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0432\u0435\u0440\u043d\u043e \u0432\u044b\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0438 \u0438\u0437 \u0432\u0442\u043e\u0440\u043e\u0439 \u0438 \u0438\u0437 \u0442\u0440\u0435\u0442\u0435\u0439 \u0438 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c:<\/p>\n<p>  1 2 3<br \/>  0 -3 -6<br \/>  0 -6 -12<\/p>\n<p>  \u043d\u043e \u0437\u0430\u0442\u0435\u043c \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0446\u0438\u043a\u043b \u0437\u0430\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u043a\u0440\u0443\u0433 \u0438 i=1, \u0438 \u0434\u0430\u043b\u0435\u0435 \u043c\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0432\u044b\u0447\u0438\u0442\u0430\u0442\u044c \u0432\u0442\u043e\u0440\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0438\u0437 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445, \u0438 \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u043e\u043d \u043d\u0435\u0432\u0435\u0440\u043d\u043e, \u043f\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431\u0435\u0440\u0435\u0442 \u043e\u0434\u0438\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b (mt1.getElem(j, i)), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u0430, \u043d\u043e \u0435\u0441\u043b\u0438 \u044d\u0442\u043e\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 mt.getElem(j, i), \u0442\u043e \u0442\u043e\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0432\u044b\u0447\u0438\u0442\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u0436\u0435 \u043f\u0435\u0440\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0438\u0437 \u0432\u0442\u043e\u0440\u043e\u0439, \u0438 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c:<\/p>\n<p>  1 2 3<br \/>  0 5 6<br \/>  0 0 9<\/p>\n<p>  \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043a\u043e\u0434, \u043d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442, \u0431\u044b\u043b \u0432\u043e\u0442 \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438:<\/p>\n<pre><code class=\"java\">    public static double gauss (Matrix mt1) {     int rows = mt1.getSize().getRows();     int cols = mt1.getSize().getColumns();     double result = 1;     \/\/\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443     Matrix mt = new Matrix();     mt.setSize(rows, cols);     for (int i=0; i&lt;rows; i++){         for (int j=0; j&lt;cols; j++){             mt.setElem(i, j, mt1.getElem(i, j));         }     }     \/\/\u0441\u0442\u0440\u043e\u0438\u043c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443     for (int i=0; i&lt;cols; i++){         for (int j=i+1; j&lt;rows; j++){             for (int k=i; k&lt;cols; k++){                 double tmp = mt.getElem(j, k)-((mt.getElem(i, k)*mt1.getElem(j, i))\/mt.getElem(i, i));                 mt.setElem(j, k, tmp);             }                         }     }     System.out.println(mt.toString());     for (int x=0; x&lt;rows; x++){         result = result*mt.getElem(x, x);     }     return result; } <\/code><\/pre>\n<p>  \u0424\u0443\u043d\u043a\u0446\u0438\u0438 getElem, setElem, setSize, getSize, getRows, getColumns \u0431\u044b\u043b\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u043a\u043b\u0430\u0441\u0441\u0435.<\/p>\n<h5>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h5>\n<p>  \u2026 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u043a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u043e\u0441\u0442\u044b\u043c<\/p>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u044f \u043f\u043e\u0434\u0430\u0432\u0430\u043b \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0442\u043e \u044f \u0442\u0443\u0442 \u0436\u0435 \u0435\u0451 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043b, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0438\u0441\u043f\u043e\u0440\u0442\u0438\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0430 \u0435\u0449\u0435 \u043c\u043e\u0433\u043b\u0430 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0432 \u0440\u0430\u0431\u043e\u0442\u0435. \u0418 \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u043e\u0441\u044c \u0442\u0430\u043a, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0435, \u043e\u043d\u0430 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u043b\u0430\u0441\u044c \u0441\u0430\u043c\u0430 \u0432 \u0441\u0435\u0431\u044f. \u041d\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 (\u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f) \u043d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u0431\u0440\u0430\u0442\u044c \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u0442\u0430\u043a \u043a\u0430\u043a \u0435\u0441\u043b\u0438 \u0435\u0433\u043e \u0431\u0440\u0430\u0442\u044c \u0438\u0437 \u00ab\u0440\u0430\u0431\u043e\u0447\u0435\u0439\u00bb, \u0442\u043e \u0432\u043e \u043f\u043e\u0441\u043b\u0435 \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u044d\u0442\u043e\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0435\u043d\u044f\u043b\u0441\u044f \u0438 \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u0438, \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c, \u0441\u0447\u0438\u0442\u0430\u043b\u0438\u0441\u044c \u043d\u0435\u0432\u0435\u0440\u043d\u043e\u0435. \u041d\u043e \u0435\u0441\u043b\u0438 \u0431\u0440\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u0442\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0437\u0430\u043d\u0443\u043b\u044f\u043b\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446, \u0434\u043b\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f, \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0438\u0437\u043c\u0435\u043d\u0438\u0432\u0448\u0438\u0445\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u0430 \u043e\u043d \u0431\u0440\u0430\u043b\u0441\u044f \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445, \u0438 \u043e\u043f\u044f\u0442\u044c \u0436\u0435 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043b\u0441\u044f \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c.<\/p>\n<p>   \u0410 \u0440\u0435\u0448\u0430\u043b\u043e\u0441\u044c \u0432\u0441\u0435 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e. \u041d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u043b\u0438\u0448\u044c \u0437\u0430\u0432\u0435\u0441\u0442\u0438 \u0435\u0449\u0435 \u043e\u0434\u043d\u0443 \u043c\u0430\u0442\u0440\u0438\u0446\u0443, \u043d\u0430\u0437\u043e\u0432\u0435\u043c \u0435\u0435 \u00ab\u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439\u00bb \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043b \u00ab\u0440\u0430\u0431\u043e\u0447\u0443\u044e\u00bb \u043f\u0435\u0440\u0435\u0434 \u0437\u0430\u043d\u0443\u043b\u0435\u043d\u0438\u0435\u043c \u0438 \u043d\u0443\u0436\u043d\u044b\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u0431\u0440\u0430\u043b\u0438\u0441\u044c \u0438\u0437 \u043d\u0435\u0435, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432 \u0440\u0430\u0441\u0447\u0435\u0442\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. \u0412\u043e\u0442 \u043a\u043e\u0434:<\/p>\n<pre><code class=\"java\">\/*\u041c\u0430\u0442\u0440\u0438\u0446\u044b mt \u0438 mt2 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0438\u0441\u043f\u043e\u0440\u0442\u0438\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443 mt1,     \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0430 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u0431\u043b\u0430\u0441\u0442\u044f\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b     \u0441\u0442\u0440\u043e\u0438\u043c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443*\/     for (int i=0; i&lt;cols; i++){                  \/\/\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u041d\u0415\u043d\u0443\u043b\u0435\u0432\u043e\u0439 i-\u0442\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u0442\u0440\u043e\u043a\u0438         if (mt.getElem(i, i)==0 && i&lt;rows-1)         {         count = i;             do{             mt.getElem(count, 0);             count++;             }while(mt.getElem(count, 0) == 0);         mt = MatrixCalculator.swapLine(i, count, mt);         result = -result; \/\/ \u0415\u0441\u043b\u0438 \u0431\u044b\u043b\u0430 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0430 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u2014          }                 \/\/ \u043c\u0435\u043d\u044f\u0435\u043c \u0437\u043d\u0430\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f                  \/*\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 &quot;\u0440\u0430\u0431\u043e\u0447\u0435\u0439&quot; \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0432 &quot;\u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e&quot;, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e          \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043a\u043e\u043e\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u0432 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a \u043f\u0435\u0440\u0435\u0434 \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435\u043c*\/         for (int x=0; x&lt;rows; x++){             for (int y=0; y&lt;cols; y++){                 mt2.setElem(x, y, mt.getElem(x, y));             }         }                  \/\/\u0437\u0430\u043d\u0443\u043b\u0435\u043d\u0438\u0435 i-\u0442\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430                  for (int j=i+1; j&lt;rows; j++){             for (int k=i; k&lt;cols; k++){                 double tmp = mt.getElem(j, k)-((mt.getElem(i, k)*mt2.getElem(j, i))\/mt.getElem(i, i));                 mt.setElem(j, k, tmp);             }                         }              }     \/\/\u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f     for (int x=0; x&lt;rows; x++){         result = result*mt.getElem(x, x);     }       return result; } <\/code><\/pre>\n<h5>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h5>\n<p>  \u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044e \u043f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u0434 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043c\u043e\u0436\u0435\u0442 \u043a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e. \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043f\u043e\u0441\u043b\u0443\u0448\u0430\u0442\u044c \u043a\u0430\u043a \u0431\u044b \u0432\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0442\u0430\u043a\u0443\u044e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443. <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434<\/b><\/p>\n<div class=\"spoiler_text\">\u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441, \u0442\u043e\u0447\u043a\u0430 \u0432\u0445\u043e\u0434\u0430 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435  <\/p>\n<pre><code class=\"java\">package matrix;  import java.util.Arrays; import java.util.Scanner;  \/**  * \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u043c\u0438 \u043c\u0430\u0440\u0438\u0446\u0430\u043c\u0438:&lt;hr\/&gt;  * -\u0421\u043b\u043e\u0436\u0435\u043d\u0438\u0435&lt;hr\/&gt;  * -\u0423\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435&lt;hr\/&gt;  * -\u0422\u0440\u0430\u043d\u0441\u043f\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435&lt;hr\/&gt;  * -\u041d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f&lt;hr\/&gt;  * -\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0421\u041b\u0410\u0423 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u041a\u0440\u0430\u043c\u0435\u0440\u0430&lt;hr\/&gt;  * -\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043c\u0430\u0442\u0440\u0438\u0446 \u043f\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u044e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f&lt;hr\/&gt;  * @author \u0433\u0440\u0443\u043f\u043f\u0430: \u0410\u0421-10\u04382 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u044b: \u041a\u0443\u0440\u0433\u0430\u043d\u043e\u0432 \u0418.\u0414., \u0418\u0432\u0430\u043d\u043e\u0432 \u0418.\u0410.  *\/ public class Main {      \/**      * @param args the command line arguments      *\/     public static void main(String[] args) {         \/*\u0422\u0430\u043a \u043a\u0430\u043a \u0434\u043b\u044f 4 \u0438\u0437 6 \u043f\u0443\u043d\u043a\u0442\u043e\u0432 \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0439 \u0432\u0432\u043e\u0434 \u043c\u0430\u0442\u0440\u0438\u0446,           *\u0435\u0433\u043e \u043c\u044b \u0432\u044b\u043d\u0435\u0441\u043b\u0438 \u0437\u0430 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0446\u0438\u043a\u043b          *\/         Scanner sc = new Scanner(System.in);         System.out.print(&quot;\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c \u043c\u0430\u0442\u0440\u0438\u0446: &quot;);         int rows = sc.nextInt();         double value;         \/\/\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443         Matrix mat1 = new Matrix();         mat1.setSize(rows, rows);         \/\/\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0432\u0442\u043e\u0440\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443         Matrix mat2 = new Matrix();         mat2.setSize(rows, rows);         \/\/\u0412\u0432\u043e\u0434\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0432\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b         System.out.println(&quot;\u0412\u0432\u043e\u0434 \u043f\u0435\u0440\u0432\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b: &quot;);         for (int i=0; i&lt;rows; i++){             int iNum = i+1;             for (int j=0; j&lt;rows; j++){                 int jNum = j+1;                 System.out.println(&quot;\u0412\u0432\u0435\u0434\u0438\u0442\u0435 &quot;+jNum+&quot; \u044d\u043b\u0435\u043c\u0435\u043d\u0442 &quot;+iNum+&quot; \u0441\u0442\u043e\u043b\u0431\u0446\u0430: &quot;);                 value = sc.nextDouble();                 mat1.setElem(i, j, value);             }         }         \/\/\u0412\u0432\u043e\u0434\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u0442\u043e\u0440\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b         System.out.println(&quot;\u0412\u0432\u043e\u0434 \u0432\u0442\u043e\u0440\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b: &quot;);         for (int i=0; i&lt;rows; i++){             int iNum = i+1;             for (int j=0; j&lt;rows; j++){                 int jNum = j+1;                 System.out.println(&quot;\u0412\u0432\u0435\u0434\u0438\u0442\u0435 &quot;+jNum+&quot; \u044d\u043b\u0435\u043c\u0435\u043d\u0442 &quot;+iNum+&quot; \u0441\u0442\u043e\u043b\u0431\u0446\u0430: &quot;);                 value = sc.nextDouble();                 mat2.setElem(i, j, value);             }         }         int menuItem = 0;         if (menuItem &gt;= 0 && menuItem &lt;=6){         \/\/\u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u0446\u0438\u043a\u043b         do {             System.out.println(&quot;--------------\u041c\u0435\u043d\u044e---------------&quot;);             System.out.println(&quot;1. \u0421\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0445 \u043c\u0430\u0442\u0440\u0438\u0446&quot;);             System.out.println(&quot;2. \u0423\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0445 \u043c\u0430\u0442\u0440\u0438\u0446&quot;);             System.out.println(&quot;3. \u0422\u0440\u0430\u043d\u0441\u043f\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0432\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b&quot;);             System.out.println(&quot;4. \u041d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b&quot;);             System.out.println(&quot;5. \u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0421\u041b\u0410\u0423 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u041a\u0440\u0430\u043c\u0435\u0440\u0430&quot;);             System.out.println(&quot;6. \u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043c\u0430\u0442\u0440\u0438\u0446 \u043f\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u044e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u0435\u0439 \u043c\u0430\u0442\u0440\u0438\u0446&quot;);             System.out.println(&quot;0. \u0412\u044b\u0445\u043e\u0434&quot;);             menuItem = sc.nextInt();             switch (menuItem){                 case 1:{                     mat1 = MatrixCalculator.addition(mat1, mat2);                     System.out.println(&quot;\u0421\u0443\u043c\u043c\u0430 \u043c\u0430\u0442\u0440\u0438\u0446: &quot;);                     System.out.println(mat1.toString());                     break;                 }                 case 2:{                     mat1 = MatrixCalculator.multiplication(mat1, mat2);                     System.out.println(&quot;\u041f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446: &quot;);                     System.out.println(mat1.toString());                     break;                 }                 case 3:{                     mat1 = MatrixCalculator.transpose(mat1);                     System.out.println(&quot;\u0422\u0440\u0430\u043d\u0441\u043f\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430: &quot;);                     System.out.println(mat1.toString());                     break;                 }                 case 4:{                     value = MatrixCalculator.gauss(mat1);                     if (Math.abs(value) == 0){                         System.err.println(&quot;\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u0440\u0430\u0432\u0435\u043d \u043d\u0443\u043b\u044e \u2014 \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0432\u044b\u0440\u043e\u0436\u0434\u0435\u043d\u043d\u0430\u044f&quot;);                         break;                     }                     System.out.println(&quot;\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u0440\u0430\u0432\u0435\u043d: &quot;+value);                     break;                 }                    case 5:{                     System.out.print(&quot;\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0432 \u0421\u041b\u0410\u0423: &quot;);                     rows = sc.nextInt();                     mat1 = new Matrix();                     mat1.setSize(rows, rows);                     double [] answers = new double[rows];                     \/\/\u0412\u0432\u043e\u0434 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439                         for (int i=0; i&lt;rows; i++) {                             int iNum = i+1;                             for (int j=0; j&lt;rows; j++) {                                 int jNum = j+1;                                 System.out.print(&quot;\u0412\u0432\u0435\u0434\u0438\u0442\u0435 &quot;+jNum+&quot; \u044d\u043b\u0435\u043c\u0435\u043d\u0442 &quot;+iNum+&quot; \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f: &quot;+&quot;  &quot;);                                 value = sc.nextDouble();                                 mat1.setElem(i, j, value);                             }                             System.out.println(&quot;\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 &quot;+iNum+&quot; \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b: &quot;);                             double val = sc.nextDouble();                             answers[i] = val;                         }                                          double [] f = new double[rows];                     f = MatrixCalculator.kramer(mat1, answers);                     System.out.print(&quot;\u041a\u043e\u0440\u043d\u0438 \u0421\u041b\u0410\u0423: &quot;);                         for (int i=0; i&lt;rows; i++){                             int iNum = i+1;                             System.out.print(&quot;x&quot;+iNum+&quot;=&quot;+f[i]+&quot; &quot;);                 }                     System.out.println(&quot;&quot;);                 break;             }             case 6:{                 System.out.println(&quot;\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0434\u043b\u0438\u043d\u0443 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043c\u0430\u0442\u0440\u0438\u0446: &quot;);                 int arrLenght = sc.nextInt();                 Matrix [] mArr = new Matrix[arrLenght];                 double determenant;                 \/\/\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043c\u0430\u0442\u0440\u0438\u0446                 mArr = MatrixCalculator.matArrayCreate(arrLenght);                 for (int i=0; i&lt;arrLenght; i++){                     System.out.print(mArr[i].toString());                     System.out.print(&quot;\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0440\u0430\u0432\u0435\u043d: &quot;);                     System.out.println(determenant=MatrixCalculator.gauss(mArr[i]));                     System.out.println(&quot;&quot;);                 }                 System.out.println(&quot;*************************************************&quot;);                 System.out.println(&quot;\u041e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u043c\u0430\u0442\u0440\u0438\u0446:&quot;);                 System.out.println(&quot;&quot;);                 Arrays.sort(mArr); \/\/\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0438 \u0432\u044b\u0432\u043e\u0434                 for (int i=0; i&lt;arrLenght; i++){                     System.out.print(mArr[i].toString());                     System.out.print(&quot;\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0440\u0430\u0432\u0435\u043d: &quot;);                     System.out.println(determenant=MatrixCalculator.gauss(mArr[i]));                     System.out.println(&quot;&quot;);                 }                 break;                 }                              }                      } while(menuItem != 0);         }else{             System.err.println(&quot;\u041d\u0435\u0432\u0435\u0440\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u043d \u043f\u0443\u043d\u043a\u0442 \u043c\u0435\u043d\u044e&quot;);}     } } <\/code><\/pre>\n<p>  \u041a\u043b\u0430\u0441\u0441 Matrix  <\/p>\n<pre><code class=\"java\">package matrix;  \/**  * \u041a\u043b\u0430\u0441\u0441 &lt;b&gt;Matrix&lt;\/b&gt; \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0441 \u043c\u0430\u0442\u0440\u0438\u0446\u0430\u043c\u0438  * @author \u0433\u0440\u0443\u043f\u043f\u0430: \u0410\u0421-10\u04382 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u044b: \u041a\u0443\u0440\u0433\u0430\u043d\u043e\u0432 \u0418.\u0414., \u0418\u0432\u0430\u043d\u043e\u0432 \u0418.\u0410.  *\/ public class Matrix implements Comparable&lt;Matrix&gt; {     private double[][] matrix;          \/**      * \u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e      *\/     public Matrix(){   } \/**  * \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u044b  * @param rows \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0435. \u0422\u0438\u043f &lt;b&gt;int&lt;\/b&gt;  * @param columns \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0435. \u0422\u0438\u043f &lt;b&gt;int&lt;\/b&gt;  *\/ public void setSize(int rows, int columns){     matrix = new double[rows][columns];   } \/**  * \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438  * \u043d\u043e\u0432\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u0430  * @return \u0440\u0430\u0437\u043c\u0435\u0440 \u043c\u0430\u0442\u0440\u0438\u0446\u044b. \u0422\u0438\u043f &lt;b&gt;MatrixSize&lt;\/b&gt;  *\/ public MatrixSize getSize(){     int rows = matrix.length;     int columns = matrix[0].length;     return new MatrixSize(rows, columns);   } \/**  * \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u044b  * @param rowNum \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0435. \u0422\u0438\u043f &lt;b&gt;int&lt;\/b&gt;  * @param colNum \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0435. \u0422\u0438\u043f &lt;b&gt;int&lt;\/b&gt;  * @param value \u043d\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438. \u0422\u0438\u043f &lt;b&gt;double&lt;\/b&gt;  *\/ public void setElem(int rowNum, int colNum, double value){     matrix[rowNum][colNum] = value;   } \/**  * \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u044b  * @param rowNum \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0435. \u0422\u0438\u043f &lt;b&gt;int&lt;\/b&gt;  * @param colNum \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0435. \u0422\u0438\u043f &lt;b&gt;int&lt;\/b&gt;  * @return \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438. \u0422\u0438\u043f &lt;b&gt;double&lt;\/b&gt;  *\/ public double getElem(int rowNum, int colNum){     return matrix[rowNum][colNum];   } \/**  * \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b. \u041e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u043c\u0435\u0442\u043e\u0434\u0435 &lt;b&gt;Gauss&lt;\/b&gt;, \u043a\u043b\u0430\u0441\u0441\u0430 &lt;b&gt;MatrixCalculator&lt;\/b&gt;.  * \u0421\u0434\u0435\u043b\u0430\u043d\u0430 \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430  * @param mt1 \u043c\u0430\u0442\u0440\u0438\u0446\u0430, \u043e\u043f\u0440\u0435\u0434\u0435\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c. \u0422\u0438\u043f &lt;b&gt;Matrix&lt;\/b&gt;  * @return det - \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b. \u0422\u0438\u043f &lt;b&gt;double&lt;\/b&gt;  *\/ public double getDet(Matrix mt1){     double det = MatrixCalculator.gauss(mt1);     return det; } \/**  * \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f  \u043d\u043e\u0432\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b (\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438).   * @param rows \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0435. \u0422\u0438\u043f &lt;b&gt;int&lt;\/b&gt;  * @param columns \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0435. \u0422\u0438\u043f &lt;b&gt;int&lt;\/b&gt;  * @return mt - \u043c\u0430\u0442\u0440\u0438\u0446\u0443, \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043c\u0438. \u0422\u0438\u043f &lt;b&gt;Matrix&lt;\/b&gt;  *\/ public static Matrix creatMatrix(int rows, int columns){     Matrix mt = new Matrix();     mt.setSize(rows, columns);     return mt;   } \/**  * \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043a \u0441\u0442\u0440\u043e\u043a\u0435.  * @return \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u0432 \u0432\u0438\u0434\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u043c\u0430\u0442\u0440\u0438\u0446\u0443.  *\/     @Override public String toString(){     StringBuilder sb = new StringBuilder();     for(int i=0; i&lt;matrix.length; i++){     for(int j=0; j&lt;matrix[i].length; j++){     sb.append(matrix[i][j] + &quot;   &quot;);   }          sb.append(&quot;\\n&quot;);   }      return sb.toString(); } \/**  * \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432  * \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u0434\u043b\u044f \u043c\u0435\u0442\u043e\u0434\u0430 &lt;b&gt;Array.sort&lt;\/b&gt;, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u043f\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u044e  * \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043c\u0430\u0442\u0440\u0438\u0446.  * @param mat \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c\u0430\u044f \u0441 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435\u0439 \u2014 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0430  * @return -1 \u2014 \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043c\u0435\u043d\u044c\u0448\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0439, 0 \u2014 \u0440\u0430\u0432\u043d\u0430, 1 \u2014 \u0431\u043e\u043b\u044c\u0448\u0435  *\/     @Override public int compareTo(Matrix mat) {    Matrix tmp = (Matrix)mat;     if(this.getDet(this) &lt; tmp.getDet(tmp))       {         \/* \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u043c\u0435\u043d\u044c\u0448\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e *\/         return -1;       }            else if(this.getDet(this) &gt; tmp.getDet(tmp))       {         \/* \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e *\/         return 1;       }         \/* \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0440\u0430\u0432\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u043c\u0443 *\/         return 0;      } \/**  * \u041a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043c\u0438 \u043c\u0430\u0442\u0440\u0438\u0446  *\/ public class MatrixSize{     private int rows, columns; \/**  * \u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0440\u0430\u043c\u0438  * @param rows \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0435. \u0422\u0438\u043f &lt;b&gt;int&lt;\/b&gt;  * @param columns \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0435. \u0422\u0438\u043f &lt;b&gt;int&lt;\/b&gt;  *\/     public MatrixSize(int rows, int columns){     this.rows = rows;     this.columns = columns; } \/**  * \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u0442\u0440\u043e\u043a \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0435  * @return \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a. \u0422\u0438\u043f &lt;b&gt;int&lt;\/b&gt;  *\/ public int getRows(){     return this.rows; } \/**  * \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0435  * @return \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432. \u0422\u0438\u043f &lt;b&gt;int&lt;\/b&gt;  *\/ public int getColumns(){     return this.columns; } } } <\/code><\/pre>\n<p>  \u0411\u0438\u0431\u043b\u0435\u043e\u0442\u0435\u043a\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u043a\u043b\u0430\u0441\u0441\u0430 Matrix  <\/p>\n<pre><code class=\"java\">package matrix;  import java.util.Random; import java.util.Scanner;  \/**  * \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u043c\u0438 \u043c\u0430\u0442\u0440\u0438\u0446\u0430\u043c\u0438.  * \u0421\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b:  * - &lt;b&gt;creatMatrix&lt;\/b&gt; \u2014 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b  * - &lt;b&gt;addition&lt;\/b&gt; \u2014 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435 2\u0445 \u043c\u0430\u0442\u0440\u0438\u0446  * - &lt;b&gt;multiplication&lt;\/b&gt; \u2014 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 2\u0445 \u043c\u0430\u0442\u0440\u0438\u0446  * - &lt;b&gt;swapLine&lt;\/b&gt; \u2014 \u0441\u043c\u0435\u043d\u0430 \u043c\u0435\u0441\u0442\u0430\u043c\u0438 2\u0445 \u0441\u0442\u0440\u043e\u043a \u043c\u0430\u0442\u0440\u0438\u0446\u044b  * - &lt;b&gt;transpose&lt;\/b&gt; \u2014 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b  * - &lt;b&gt;gauss&lt;\/b&gt;\u2014 \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u0413\u0430\u0443\u0441\u0441\u0430  * - &lt;b&gt;matArrayCreate&lt;\/b&gt; \u2014 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043c\u0430\u0442\u0440\u0438\u0446  * - &lt;b&gt;kramer&lt;\/b&gt; \u2014 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0421\u041b\u0410\u0423 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u041a\u0440\u0430\u043c\u0435\u0440\u0430  * - &lt;b&gt;matArrayCreate&lt;\/b&gt; \u2014 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043c\u0430\u0442\u0440\u0438\u0446  * @author \u0433\u0440\u0443\u043f\u043f\u0430: \u0410\u0421-10\u04382 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u044b: \u041a\u0443\u0440\u0433\u0430\u043d\u043e\u0432 \u0418.\u0414., \u0418\u0432\u0430\u043d\u043e\u0432 \u0418.\u0410.  *\/ public class MatrixCalculator{     \tprivate MatrixCalculator() { } \/**  * \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043f\u043e \u0443\u0436\u0435 \u0438\u043c\u0435\u044e\u0449\u0438\u043c\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c  * @param rows \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0435. \u0422\u0438\u043f &lt;b&gt;int&lt;\/b&gt;  * @param columns \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0435. \u0422\u0438\u043f &lt;b&gt;int&lt;\/b&gt;  * @param data \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0434\u0430\u043d\u043d\u044b\u0445, \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043d\u0435\u0441\u0435\u043d\u044b \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043c\u0430\u0442\u0440\u0438\u0446\u044b. \u0422\u0438\u043f &lt;b&gt;double [][]&lt;\/b&gt;  * @return \u043c\u0430\u0442\u0440\u0438\u0446\u0443 mt.\u0422\u0438\u043f &lt;b&gt;Matrix&lt;\/b&gt;  *\/         public static Matrix creatMatrix(int rows, int columns, double[][] data){     Matrix mt = Matrix.creatMatrix(rows, columns);         for(int i=0; i&lt;data.length; i++){             for(int j=0; j&lt;data[i].length; j++){         mt.setElem(i, j, data[i][j]);             }         }     return mt;   } \/**  * \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f 2\u0445 \u043c\u0430\u0442\u0440\u0438\u0446.  * @param mt1 \u043f\u0435\u0440\u0432\u043e\u0435 \u0441\u043b\u0430\u0433\u0430\u0435\u043c\u043e\u0435. \u0422\u0438\u043f &lt;b&gt;Matrix&lt;\/b&gt;  * @param mt2 \u0432\u0442\u043e\u0440\u043e\u0435 \u0441\u043b\u0430\u0433\u0430\u0435\u043c\u043e\u0435. \u0422\u0438\u043f &lt;b&gt;Matrix&lt;\/b&gt;  * @return \u041c\u0430\u0442\u0440\u0438\u0446\u0443, \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u2014 \u0441\u0443\u043c\u043c\u044b \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0430\u0442\u0440\u0438\u0446 &lt;b&gt;mt1&lt;\/b&gt; \u0438 &lt;b&gt;mt2&lt;\/b&gt;. \u0422\u0438\u043f &lt;b&gt;Matrix&lt;\/b&gt;  *\/ public static Matrix addition(Matrix mt1, Matrix mt2) {     int rows = mt1.getSize().getRows();     int cols = mt1.getSize().getColumns();     int rows2 = mt2.getSize().getRows();     int cols2 = mt2.getSize().getColumns();         if ((rows == rows2) && (cols == cols2)) {             Matrix mt = Matrix.creatMatrix(rows, cols);             for (int i = 0; i &lt; rows; i++) {                 for (int j = 0; j &lt; cols; j++) {                 mt.setElem(i, j, mt1.getElem(i, j) + mt2.getElem(i, j));                 }             }     return mt; } else {     return null;     }   } \/**  * \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f 2\u0445 \u043c\u0430\u0442\u0440\u0438\u0446  * @param mt1 \u043f\u0435\u0440\u0432\u043e\u0435 \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u043c\u043e\u0435. \u0422\u0438\u043f &lt;b&gt;Matrix&lt;\/b&gt;  * @param mt2 \u043f\u0435\u0440\u0432\u043e\u0435 \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u043c\u043e\u0435. \u0422\u0438\u043f &lt;b&gt;Matrix&lt;\/b&gt;  * @return \u041c\u0430\u0442\u0440\u0438\u0446\u0443, \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u2014 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0430\u0442\u0440\u0438\u0446 &lt;b&gt;mt1&lt;\/b&gt; \u0438 &lt;b&gt;mt2&lt;\/b&gt;. \u0422\u0438\u043f &lt;b&gt;Matrix&lt;\/b&gt;  *\/ public static Matrix multiplication(Matrix mt1, Matrix mt2) {     int rows = mt1.getSize().getRows();     int cols = mt1.getSize().getColumns();     int rows2 = mt2.getSize().getRows();     int cols2 = mt2.getSize().getColumns();         if (cols == rows2) {             Matrix mt = Matrix.creatMatrix(rows, cols2);             double tmp = 0;             for (int i = 0; i &lt; rows; i++) {                 for (int c = 0; c &lt; cols2; c++) {                     for (int j = 0; j &lt; cols; j++) {                     tmp = mt1.getElem(i, j) * mt2.getElem(j, c);                     }                 mt.setElem(i, c, tmp);                 tmp = 0;                 }             }     return mt; } else {     return null;     }   } \/**  * \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0441\u043c\u0435\u043d\u044b \u043c\u0435\u0441\u0442\u0430\u043c\u0438 2\u0445 \u0441\u0442\u0440\u043e\u043a \u043c\u0430\u0442\u0440\u0438\u0446\u044b  * @param swopLine \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u043e\u0439 &lt;b&gt;targetLine&lt;\/b&gt;. \u0422\u0438\u043f &lt;b&gt;int&lt;\/b&gt;  * @param targetLine \u043d\u043e\u043c\u0435\u0440 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 &lt;b&gt;swopLine&lt;\/b&gt;. \u0422\u0438\u043f &lt;b&gt;int&lt;\/b&gt;  * @param mt1 \u043c\u0430\u0442\u0440\u0438\u0446\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0437\u0430\u043c\u0435\u043d\u0430 \u0441\u0442\u0440\u043e\u043a. \u0422\u0438\u043f &lt;b&gt;Matrix&lt;\/b&gt;  * @return \u043c\u0430\u0442\u0440\u0438\u0446\u0443, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 &lt;b&gt;swopLine&lt;\/b&gt; \u0438 &lt;b&gt;targetLine&lt;\/b&gt;, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u044b \u043c\u0435\u0441\u0442\u0430\u043c\u0438  *\/ public static Matrix swapLine(int swopLine, int targetLine, Matrix mt1) {     int rows = mt1.getSize().getRows();     int cols = mt1.getSize().getColumns();     double tmp;     int secondLine = targetLine;         for (int firstLine=swopLine; swopLine&lt;rows; swopLine++) {             for (int j=0; j&lt;cols; j++) {                 tmp = mt1.getElem(firstLine, j);                 mt1.setElem(firstLine, j, mt1.getElem(secondLine, j));                 mt1.setElem(secondLine, j, tmp);             }         }     return mt1; } \/**  * \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b  * @param mt1 \u0442\u0430\u0440\u043d\u0441\u043f\u043e\u043d\u0438\u0440\u0443\u0435\u043c\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430. \u0422\u0438\u043f &lt;b&gt;Matrix&lt;\/b&gt;  * @return \u0442\u0430\u0440\u043d\u0441\u043f\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443. \u0422\u0438\u043f &lt;b&gt;Matrix&lt;\/b&gt;  *\/ public static Matrix transpose (Matrix mt1) {     int rows = mt1.getSize().getRows();     int cols = mt1.getSize().getColumns();     Matrix mt = Matrix.creatMatrix(rows, cols);     double tmp = 0;         for (int i=0; i&lt;rows; i++){             for (int j=0; j&lt;cols; j++){                 tmp = mt1.getElem(i, j);                 mt.setElem(j, i, tmp);                 tmp = 0;             }         }     return mt; }  \/**  * \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u0413\u0430\u0443\u0441\u0441\u0430  * @param mt1 \u043c\u0430\u0442\u0440\u0438\u0446\u0430, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0439\u0442\u0438. \u0422\u0438\u043f &lt;b&gt;Matrix&lt;\/b&gt;  * @return result \u2014 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b. \u0422\u0438\u043f &lt;b&gt;double&lt;\/b&gt;   *\/ public static double gauss (Matrix mt1) {     int rows = mt1.getSize().getRows();     int cols = mt1.getSize().getColumns();     double result = 1;     int count;     \/*\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u0432 &quot;\u0440\u0430\u0431\u043e\u0447\u0443\u044e&quot; \u043c\u0430\u0442\u0440\u0438\u0446\u0443 mt (\u041e\u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f       \u0432 \u0446\u0438\u043a\u043b\u0430\u0445)*\/     Matrix mt = new Matrix();     mt.setSize(rows, cols);     for (int i=0; i&lt;rows; i++){         for (int j=0; j&lt;cols; j++){             mt.setElem(i, j, mt1.getElem(i, j));         }     }     \/*\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u0432 &quot;\u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e&quot; \u043c\u0430\u0442\u0440\u0438\u0446\u0443 mt2, \u0432 \u043d\u0435\u0451       \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f &quot;\u0440\u0430\u0431\u043e\u0447\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430&quot; mt, \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043d\u0443\u043b\u0435\u043d\u0438\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430*\/     Matrix mt2 = new Matrix();     mt2.setSize(rows, cols);     for (int i=0; i&lt;rows; i++){         for (int j=0; j&lt;cols; j++){             mt2.setElem(i, j, mt1.getElem(i, j));         }     }     \/*\u041c\u0430\u0442\u0440\u0438\u0446\u044b mt \u0438 mt2 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0438\u0441\u043f\u043e\u0440\u0442\u0438\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443 mt1,     \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0430 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u0431\u043b\u0430\u0441\u0442\u044f\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b     \u0441\u0442\u0440\u043e\u0438\u043c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443*\/     for (int i=0; i&lt;cols; i++){                  \/\/\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u041d\u0415\u043d\u0443\u043b\u0435\u0432\u043e\u0439 i-\u0442\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u0442\u0440\u043e\u043a\u0438         if (mt.getElem(i, i)==0 && i&lt;rows-1)         {         count = i;             do{             mt.getElem(count, 0);             count++;             }while(mt.getElem(count, 0) == 0);         mt = MatrixCalculator.swapLine(i, count, mt);         result = -result; \/\/ \u0415\u0441\u043b\u0438 \u0431\u044b\u043b\u0430 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0430 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u2014          }                 \/\/ \u043c\u0435\u043d\u044f\u0435\u043c \u0437\u043d\u0430\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f                  \/*\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 &quot;\u0440\u0430\u0431\u043e\u0447\u0435\u0439&quot; \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0432 &quot;\u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e&quot;, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e          \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043a\u043e\u043e\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u0432 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a \u043f\u0435\u0440\u0435\u0434 \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435\u043c*\/         for (int x=0; x&lt;rows; x++){             for (int y=0; y&lt;cols; y++){                 mt2.setElem(x, y, mt.getElem(x, y));             }         }                  \/\/\u0437\u0430\u043d\u0443\u043b\u0435\u043d\u0438\u0435 i-\u0442\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430                  for (int j=i+1; j&lt;rows; j++){             for (int k=i; k&lt;cols; k++){                 double tmp = mt.getElem(j, k)-((mt.getElem(i, k)*mt2.getElem(j, i))\/mt.getElem(i, i));                 mt.setElem(j, k, tmp);             }                         }              }     \/\/\u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f     for (int x=0; x&lt;rows; x++){         result = result*mt.getElem(x, x);     }       return result; } \/**  * \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0421\u041b\u0410\u0423 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u041a\u0440\u0430\u043c\u0435\u0440\u0430  * @param mt1 \u043a\u043e\u043e\u0444\u0438\u0446\u0435\u043d\u0442\u044b \u0421\u041b\u0410\u0423. \u0422\u0438\u043f &lt;b&gt;Matrix&lt;\/b&gt;  * @param ans \u043c\u0430\u0441\u0441\u0438\u0432 \u043e\u0442\u0432\u0435\u0442\u043e\u0432 \u0421\u041b\u0410\u0423. \u0422\u0438\u043f &lt;b&gt;double []&lt;\/b&gt;  * @return &lt;b&gt;xArr&lt;\/b&gt; \u2014 \u043c\u0430\u0441\u0441\u0438\u0432 \u043a\u043e\u0440\u043d\u0435\u0439 \u0421\u041b\u0410\u0423. \u0422\u0438\u043f &lt;b&gt;double []&lt;\/b&gt;  *\/ public static double [] kramer (Matrix mt1, double [] ans) {     int rows = mt1.getSize().getRows();     int cols = mt1.getSize().getColumns();     double [] xArr = new double[rows];     Matrix mtDet = new Matrix();     mtDet.setSize(rows, cols);       for (int i=0; i&lt;rows; i++){         \/*\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e, \u0434\u043b\u044f \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f          *\/         for (int x=0; x&lt;rows; x++){             for (int y=0; y&lt;cols; y++){                 mtDet.setElem(x, y, mt1.getElem(x, y));             }         }              }     \/\/\u041d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0413\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f     double det = MatrixCalculator.gauss(mtDet);     Matrix mt = new Matrix();     mt.setSize(rows, cols);     \/\/\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b mt1 \u0432 &quot;\u0440\u0430\u0431\u043e\u0447\u0443\u044e&quot; mt     for (int i=0; i&lt;rows; i++){         for (int x=0; x&lt;rows; x++){             for (int y=0; y&lt;cols; y++){                 mt.setElem(x, y, mt1.getElem(x, y));             }         }         \/\/\u0437\u0430\u043c\u0435\u043d\u0430 j-\u0442\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430, \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u043c \u043e\u0442\u0432\u0435\u0442\u043e\u0432         for (int j=0; j&lt;cols; j++){             mt.setElem(j, i, ans[j]);         }         \/\/\u041d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043a\u043e\u0440\u043d\u0435\u0439 \u0421\u041b\u0410\u0423         xArr[i] = MatrixCalculator.gauss(mt)\/det;     }     return xArr; } \/**  * \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043c\u0430\u0442\u0440\u0438\u0446  * @param qty \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0430. \u0422\u0438\u043f &lt;b&gt;int&lt;\/b&gt;  * @return &lt;b&gt;matArray&lt;\/b&gt; \u2014 \u043c\u0430\u0441\u0441\u0438\u0432 \u043c\u0430\u0442\u0440\u0438\u0446. \u0422\u0438\u043f &lt;b&gt;Matrix []&lt;\/b&gt;  *\/ public static Matrix [] matArrayCreate (int qty) {     Scanner scan = new Scanner(System.in);     Matrix [] matArray = new Matrix[qty];     Random rand = new Random();     System.out.println(&quot;\u041c\u0430\u0441\u0441\u0438\u0432 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c\u0438 \u0447\u0438\u0441\u043b\u0430\u043c\u0438&quot;);     \/\/\u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430, \u0440\u0443\u043a\u0430\u043c\u0438 \u0434\u043e\u043b\u0433\u043e \u0432\u0431\u0438\u0432\u0430\u0442\u044c         for (int i=0; i&lt;qty; i++){             int number = i+1;             System.out.println(&quot;\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c &quot;+number+&quot; \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u2014 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430:&quot;);             int matSize = scan.nextInt();             Matrix mat = new Matrix();             mat.setSize(matSize, matSize);                 for (int j=0; j&lt;matSize; j++){                     for (int k=0; k&lt;matSize; k++){                                                 mat.setElem(j, k, rand.nextInt(30)-15);                     }                 }             matArray[i]=mat;         }     return matArray; }  } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/170753\/\"> http:\/\/habrahabr.ru\/post\/170753\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\"> \t\t\t\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435. \u041d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u043f\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e (JAVA), \u044f \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439, \u043f\u043e\u0438\u0441\u043a \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0435 \u0434\u0430\u043b, \u043d\u043e \u0432 \u0438\u0442\u043e\u0433\u0435 \u044f \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0441\u044f \u0441\u0430\u043c \u0438 \u0440\u0435\u0448\u0438\u043b \u0432\u044b\u043b\u043e\u0436\u0438\u0442\u044c \u0441\u0432\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0441\u044e\u0434\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u0425\u0430\u0431\u0440 \u0447\u0430\u0441\u0442\u043e \u0432\u044b\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0432\u044b\u0445 10 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0445 \u043f\u043e\u0438\u0441\u043a\u0430 \u0438, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043a\u043e\u0433\u0434\u0430-\u043d\u0438\u0431\u0443\u0434\u044c \u044d\u0442\u043e \u043a\u043e\u043c\u0443-\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-170753","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/170753","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=170753"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/170753\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=170753"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=170753"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=170753"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}