#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. извините, я думаю, что я совершенно запутался в вашем требовании.