Вывод этого странного цикла, связанного с матрицами - PullRequest
0 голосов
/ 28 ноября 2018

Давайте рассмотрим следующий псевдокод:

int n=n;
int A[][]
scanf(A[][],%d);
for i=1:n;i++
{
  x=A[i][i]
  for j=1:n;j++
  {
    if x<A[i][j]
      a=x;
    x=A[i][j];
    A[i][i]=x;
    A[i][j]=a;
    return A[][]

Я возлюсь с этим псевдокодом. Вопрос, я думаю, заключается лишь в том, что диагональные записи сравниваются и обмениваются на самые большие записи.Но будет ли вывод зависеть от элементов матрицы или не будет зависеть от этого - мой главный вопрос.В частности, есть ли общая формула для выхода?Зависит ли это от типа матрицы A Я думаю, что это должна быть некоторая степень А. Любые намеки?Заранее спасибо.

1 Ответ

0 голосов
/ 28 ноября 2018

Вы можете просто написать свой код на любом языке, который вам нравится.

n = 3
A = [[1,2,3], [3,5,6], [7,8,9]]

for i in range(n):
  x=A[i][i]
  for j in range(n):
    a = None
    if x < A[i][j]:
      a = x
    x=A[i][j]
    A[i][i]=x
    A[i][j]=a

print (A)

Дает вам:

[[3, 1, 2], [None, 6, 3], [None, 7, None]]

Но будет ли вывод зависеть от записейМатрица или будет зависеть от нее, это мой главный вопрос.

Ofc это зависит.Вы можете увидеть исходные данные в выводе.Это означает, что вывод зависит от данных.

В частности, существует ли какая-либо общая формула для вывода?

Я считаю, что НЕТ, но я не могу математически доказать.Просто посмотрите на Nones появляются в выводе.Я с трудом представляю себе такую ​​формулу.

Зависит ли она от типа матрицы ИИ думает, что должна иметь некоторую степень А *

Что такое «тип матрицы»?

...