Как определить максимальные, минимальные и средние значения матрицы - PullRequest
0 голосов
/ 07 октября 2019

Мне нужно создать матрицу, в которой пользователь может ввести свои значения и определить максимальное значение матрицы, минимальное значение и среднее значение всех данных матрицы

Я создал матрицу, где ямогу ввести свои собственные значения, и я попытался написать, который может определить максимальное и минимальное значение. Однако после нескольких проверок я понял, что мой кусок кода, который определяет максимальные и минимальные значения, не работает.

line = int(input('Enter the amount of lines:'))
columns = int(input('Enter the amount of columns:'))

matrix = []
for i in range(0, columns):
    matrix.append([])

for i in range(0, line):
    for j in range(0, columns):
        matrix[i].append(j)
        matrix[i][j] = 0


for i in range(0, line):
    for j in range(0,columns):
        matrix[i][j] = int(input('Enter the value:'))
        avg = matrix

for i in range(0, line):
    for j in range(0, columns):
        max_val = matrix[j]
        min_val = matrix[j]
        for j in range(0, len(matrix[j]), 1):
            max_val = max(max_val, matrix[j])
            min_val = min(min_val, matrix[j])

maxVal = max_val[0]
minVal = min_val[0]
for i in range(0, len(max_val), 1):
    maxVal = max(maxVal, max_val[i])
    minVal = min(minVal, min_val[i])

print(matrix)
print('The maximum value is ' + str(maxVal))
print('The minimum value is ' + str(minVal))

Я исключил результат, который выведет мне матрицу, максимальное значение, минимальное значение и среднее значение

1 Ответ

0 голосов
/ 08 октября 2019

Один из способов сделать это с Python list s заключается в следующем:

(я просто сделаю find_min(), так как find_max() и compute_mean() будут в значительной степени одинаковыми.)

import random


def gen_random_matrix(rows, cols, min_val=1, max_val=100):
    return [
        [random.randint(min_val, max_val) for j in range(cols)]
        for i in range(rows)]


def find_min(matrix):
    rows = len(matrix)
    cols = len(matrix[0])
    min_i, min_j = 0, 0
    min_val = matrix[min_i][min_j]
    for i in range(rows):
        for j in range(cols):
             if matrix[i][j] < min_val:
                 min_i = i
                 min_j = j
                 min_val = matrix[i][j]
    return min_val, min_i, min_j


random.seed(0)

matrix = gen_random_matrix(3, 4)

print(matrix)
# [[50, 98, 54, 6], [34, 66, 63, 52], [39, 62, 46, 75]]

print(find_min(matrix))
# (6, 0, 3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...