Latest posts on Замена максимальных елементов в диагоналях матрицы topichttp://python.su/forum/topic/38314/2020-01-14T16:33:06+02:00Общий :: Python для новичков :: Замена максимальных елементов в диагоналях матрицы
2020-01-14T16:33:06+02:00Stanislav97206731<blockquote><em>py.user.next</em><br/></blockquote>Заработало!!! Помог, подсказал, выручил!!!! 5 строк кода решили проблему, спасибо тебе, добрый человек)<br/>Вот весь код целиком, если кому нужно, благодарите py.user.next<br/>def FindMaxElement(mat):<br/> n = len(mat)<br/> if (n == 0):<br/> return<br/> Firstmax = mat<br/> Secondmax = mat<br/> for i in range(1, n):<br/> for j in range(1, n):<br/> if (i == j):<br/> if (mat<em> > Firstmax):<br/> Firstmax = mat<br/> f_i, f_j = i, j<br/><br/> if ((i + j) == (n - 1)):<br/> if (mat > Secondmax):<br/> Secondmax = mat<br/> s_i, s_j = i, j<br/><br/> t = mat<br/> mat = mat<br/> mat = t<br/><br/> print(“First max element : ”,<br/> Firstmax)<br/> print(“Second max element: ”,<br/> Secondmax)<br/><br/>matrix = [,<br/> ,<br/> ,<br/> ,<br/> ]<br/><br/>print(matrix)<br/><br/>FindMaxElement(matrix)<br/>print(matrix)</em>
Общий :: Python для новичков :: Замена максимальных елементов в диагоналях матрицы
2020-01-14T15:50:08+02:00py.user.next206730<blockquote><em>Stanislav97</em><br/><div class="code"><pre>
<span class="k">if</span> <span class="p">(</span><span class="n">mat</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span> <span class="o">></span> <span class="n">Firstmax</span><span class="p">):</span>
<span class="n">Firstmax</span> <span class="o">=</span> <span class="n">mat</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span>
</pre></div></blockquote>Добавить строку<br/><div class="code"><pre>
<span class="k">if</span> <span class="p">(</span><span class="n">mat</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span> <span class="o">></span> <span class="n">Firstmax</span><span class="p">):</span>
<span class="n">Firstmax</span> <span class="o">=</span> <span class="n">mat</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span>
<span class="n">f_i</span><span class="p">,</span> <span class="n">f_j</span> <span class="o">=</span> <span class="n">i</span><span class="p">,</span> <span class="n">j</span>
</pre></div><br/><blockquote><em>Stanislav97</em><br/><div class="code"><pre>
<span class="k">if</span> <span class="p">((</span><span class="n">i</span> <span class="o">+</span> <span class="n">j</span><span class="p">)</span> <span class="o">==</span> <span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)):</span>
<span class="k">if</span> <span class="p">(</span><span class="n">mat</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span> <span class="o">></span> <span class="n">Secondmax</span><span class="p">):</span>
<span class="n">Secondmax</span> <span class="o">=</span> <span class="n">mat</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span>
</pre></div></blockquote>Добавить строку<br/><div class="code"><pre>
<span class="k">if</span> <span class="p">((</span><span class="n">i</span> <span class="o">+</span> <span class="n">j</span><span class="p">)</span> <span class="o">==</span> <span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)):</span>
<span class="k">if</span> <span class="p">(</span><span class="n">mat</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span> <span class="o">></span> <span class="n">Secondmax</span><span class="p">):</span>
<span class="n">Secondmax</span> <span class="o">=</span> <span class="n">mat</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span>
<span class="n">s_i</span><span class="p">,</span> <span class="n">s_j</span> <span class="o">=</span> <span class="n">i</span><span class="p">,</span> <span class="n">j</span>
</pre></div><br/>И потом после цикла сделать<br/><div class="code"><pre>
<span class="n">t</span> <span class="o">=</span> <span class="n">mat</span><span class="p">[</span><span class="n">f_i</span><span class="p">][</span><span class="n">f_j</span><span class="p">]</span>
<span class="n">mat</span><span class="p">[</span><span class="n">f_i</span><span class="p">][</span><span class="n">f_j</span><span class="p">]</span> <span class="o">=</span> <span class="n">mat</span><span class="p">[</span><span class="n">s_i</span><span class="p">][</span><span class="n">s_j</span><span class="p">]</span>
<span class="n">mat</span><span class="p">[</span><span class="n">s_i</span><span class="p">][</span><span class="n">s_j</span><span class="p">]</span> <span class="o">=</span> <span class="n">t</span>
</pre></div>
Общий :: Python для новичков :: Замена максимальных елементов в диагоналях матрицы
2020-01-14T15:30:37+02:00Stanislav97206728<blockquote><em>py.user.next</em><br/></blockquote>Нужные мне значения(Firstmax, Secondmax) уже имеют свои координаты, как их вообще запомнить отдельно? Второй день в этом вопросе, уже понял как поменять диагонали, но не эти два максимальных елемента!
Общий :: Python для новичков :: Замена максимальных елементов в диагоналях матрицы
2020-01-14T15:24:21+02:00Stanislav97206727переходим на другую диагональ<br/>n = 0<br/>max_element_second = max(matrix<em> for j in range(len(matrix)))<br/>for j in range(len(matrix)):<br/> if ((i + j) == (n - 1)):<br/> if j == max_element_second:<br/> matrix = ‘B’<br/><br/>print(matrix)<br/><br/>не меняет даже максимальный элемент побочной диагонали на ‘B’<br/>ничего не происходит, почему?</em>
Общий :: Python для новичков :: Замена максимальных елементов в диагоналях матрицы
2020-01-14T14:14:30+02:00py.user.next206724<blockquote><em>Stanislav97</em><br/>Есть код как найти эти елементы, но как их поменять местами?</blockquote>Надо запомнить (i, j) максимального элемента на главной диагонали, потом запомнить (i, j) максимального элемента на побочной диагонали, а потом обменять их через переменную.<br/><br/>То есть в твоём коде запоминаются только значения элементов, а надо ещё запоминать эти пары (строка, столбец) впридачу.
Общий :: Python для новичков :: Замена максимальных елементов в диагоналях матрицы
2020-01-14T13:56:47+02:00FishHook206721<blockquote><em>Stanislav97</em><br/>на максимальный элемент второстепенной диагонали. Буду очень благодарен за помощь.</blockquote>задача сводится к моему решению. Вам надо по подобию найти максимальный элемент другой диагонали, и после этого сделать замену, но не на произвольное значение, а на найденное.
Общий :: Python для новичков :: Замена максимальных елементов в диагоналях матрицы
2020-01-14T11:09:58+02:00Stanislav97206716<blockquote><em>FishHook</em><br/></blockquote>Спасибо за отзыв, плюс в карму)) Ваш код меняет максимальный елемент на главной диагонали на любой произвольный, я видимо не совсем некорректно написал условие задачи: нужно поменять местами максимальный элемент с главной диагонали на максимальный элемент второстепенной диагонали. Буду очень благодарен за помощь.
Общий :: Python для новичков :: Замена максимальных елементов в диагоналях матрицы
2020-01-14T10:28:37+02:00FishHook206714<div class="code"><pre>
<span class="n">matrix</span> <span class="o">=</span> <span class="p">[[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">1</span><span class="p">],</span>
<span class="p">[</span><span class="mi">5</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mi">9</span><span class="p">,</span> <span class="mi">6</span><span class="p">],</span>
<span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">],</span>
<span class="p">[</span><span class="mi">5</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">8</span><span class="p">],</span>
<span class="p">[</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">]]</span>
<span class="n">max_element</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">matrix</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">i</span><span class="p">]</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">matrix</span><span class="p">)))</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">matrix</span><span class="p">)):</span>
<span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="n">max_element</span><span class="p">:</span>
<span class="n">matrix</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'A'</span>
<span class="k">print</span> <span class="n">matrix</span>
</pre></div>
Общий :: Python для новичков :: Замена максимальных елементов в диагоналях матрицы
2020-01-14T08:47:10+02:00Stanislav97206712Всем привет! Есть код как найти эти елементы, но как их поменять местами???<br/><br/><div class="code"><pre>
<span class="k">def</span> <span class="nf">FindMaxElement</span><span class="p">(</span><span class="n">mat</span><span class="p">):</span>
<span class="n">n</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">mat</span><span class="p">)</span>
<span class="k">if</span> <span class="p">(</span><span class="n">n</span> <span class="o">==</span> <span class="mi">0</span><span class="p">):</span>
<span class="k">return</span>
<span class="n">Firstmax</span> <span class="o">=</span> <span class="n">mat</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span>
<span class="n">Secondmax</span> <span class="o">=</span> <span class="n">mat</span><span class="p">[</span><span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">n</span><span class="p">):</span>
<span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">n</span><span class="p">):</span>
<span class="k">if</span> <span class="p">(</span><span class="n">i</span> <span class="o">==</span> <span class="n">j</span><span class="p">):</span>
<span class="k">if</span> <span class="p">(</span><span class="n">mat</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span> <span class="o">></span> <span class="n">Firstmax</span><span class="p">):</span>
<span class="n">Firstmax</span> <span class="o">=</span> <span class="n">mat</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span>
<span class="k">if</span> <span class="p">((</span><span class="n">i</span> <span class="o">+</span> <span class="n">j</span><span class="p">)</span> <span class="o">==</span> <span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)):</span>
<span class="k">if</span> <span class="p">(</span><span class="n">mat</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span> <span class="o">></span> <span class="n">Secondmax</span><span class="p">):</span>
<span class="n">Secondmax</span> <span class="o">=</span> <span class="n">mat</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span>
<span class="k">print</span><span class="p">(</span><span class="s2">"First max element : "</span><span class="p">,</span>
<span class="n">Firstmax</span><span class="p">)</span>
<span class="k">print</span><span class="p">(</span><span class="s2">"Second max element: "</span><span class="p">,</span>
<span class="n">Secondmax</span><span class="p">)</span>
<span class="n">matrix</span> <span class="o">=</span> <span class="p">[[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">1</span><span class="p">],</span>
<span class="p">[</span><span class="mi">5</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mi">9</span><span class="p">,</span> <span class="mi">6</span><span class="p">],</span>
<span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">],</span>
<span class="p">[</span><span class="mi">5</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">8</span><span class="p">],</span>
<span class="p">[</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">]]</span>
<span class="n">FindMaxElement</span><span class="p">(</span><span class="n">matrix</span><span class="p">)</span>
</pre></div><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>