Внедрение списка и определенного свойства

#python #arrays #list #math #matrix

#python #массивы #Список #математика #матрица

Вопрос:

Предположим, у меня есть матрица.

Вопрос в том, как мне показать, выполняется ли для данного списка, встроенного в список, следующее правило:

Учитывая любые три (или более) элемента списка, X([i][j])[k] = X[i]([j][k]) ? Если вы запутались, вы можете представить это в терминах матрицы идентификаторов, например, матрица идентификаторов является A= [[1,0],[0,1]] . Идентификатор не следует за свойством, потому что =(0.0).1 != 0.(0.1) . Где (0.0) означает A[0][0] и (0.1) означает A[0][1] . Итак, как мне применить строку и столбец, равные 1, к строке и столбцу, которые содержат (0.0)? Обратите внимание, что (0.0) = 1 в данном случае и (0.1) = 0 Ну, что мне нужно сделать, так это показать, что

A[i][j]*k != i*A[j][k] но на самом деле это не имеет смысла в python из-за * .

 A = [[1,0],[0,1]]

for i in A:
    for j in A:
        for k in A: 
          if A[i][j]*k != i*A[j][k]:
              return print("Property Not Satisfied")
  

Комментарии:

1. Всегда ли матрица A квадратная?

2. Что (0.0).1 именно? (0.0) означает A[0][0] , а затем как вы применяете к нему оставшееся .1 ?

3. Это вопрос, который я задаю. (0.0) = A[0][0]. Я хочу знать, есть ли способ применить оставшийся 1, который является записью в матрице.

4. @FatihAkici Я хочу знать, как это сделать: X ([i] [j]) [k] = X [i] ([j][k])

5. Я и другие можем помочь, если мы сможем четко понять, каким вы хотите видеть результат. Итак, пожалуйста, помогите мне понять — скажем, для i = 0, j = 0 и k = 1, каким должен быть A ([i] [j]) [k]? Давайте пройдем шаг за шагом. A([0][0]) равно 1. Итак, далее, как следует применять часть [k]? На этом шаге это становится чем-то вроде 1[1], что бессмысленно. Я уверен, что вы неправильно формулируете свой вопрос.

Ответ №1:

Если у меня нет недопонимания, вы можете реализовать точно так, как вы сказали, просто сравните целочисленную часть и дробную часть по отдельности:

 def check_matrix(A):
    row, column = len(A), len(A[0])

    for i in range(row):
        for j in range(column):
            # if j out of index in row, skip
            if j >= row:
                break
            for k in range(column):
                # compare integer-part, fraction-part separately
                if A[i][j] != i or k != A[j][k]:
                    print("Property Not Satisfied")
                    print(A[i][j], i, k, A[j][k])
                    return False
    return True

def test():
    A = [[1, 0], [0, 1]]
    check_matrix(A)
  

вывод:

 Property Not Satisfied
1 0 0 1
  

Надеюсь, это поможет вам, и прокомментируйте, если у вас возникнут дополнительные вопросы. : )

Комментарии:

1. Хорошо, но это только для матрицы идентификаторов, как насчет других списков списков? В общем, я имею в виду. Например [[1,3,4,5],[4,5,7,6],[4,3,5,6],[3,2,4,3]] Есть ли более общий способ сделать это?

2. Я хочу знать способ проверить, выполняется ли это в общей матрице: X ([i] [j]) [k] = X [i] ([j] [k])

3. извините, я думаю, что я совершенно запутался в вашем требовании.