首页 > 解决方案 > 矩阵,怎么解决?

问题描述

给定矩阵 M x N。如何打印包含最大相同元素数的行号?

import random
n = int(input('Введите кол-во столбцов матрицы: '))
m = int(input('Введите кол-во строк матрицы: '))
matrix = [[random.randrange(0, 10) for y in range(n)] for x in range(m)]
print(matrix)
max_x = 0
for i in range(n):
    for j in range(m):
        if max_x < matrix[i].count(matrix[i][j]):
            print(matrix.index(matrix[i]))
            max_x = matrix[i].count(matrix[i][j])
        else:
            break

标签: pythonpython-3.xmath

解决方案


import random

n = int(input('Введите кол-во столбцов матрицы: ')) #columns
m = int(input('Введите кол-во строк матрицы: '))    #rows
matrix = [[random.randrange(0, 10) for y in range(n)] for x in range(m)]

for i in range(m):
    for j in range(n):
        print(matrix[i][j], end = " ")
    print()

max_x = 0
for i in range(m):
    for j in range(n):
        if max_x < matrix[i].count(matrix[i][j]):
            max_x = i

print(max_x)

如果 M 的行数比你的第一个 for i in range 需要是 m 值。
我假设变量 max_x 是按行搜索的,按行是指行。如果是这种情况,则在 max_x 中保存具有最大相同数的行。检查是否max_x < matrix[i].count(matrix[i][j])然后保存该行的索引max_x = matrix.index(matrix[i])

注意:在这种情况下,它会保存具有最多相同数字的第一行的索引。


推荐阅读