Untitled
unknown
python
2 years ago
3.6 kB
5
Indexable
import random import numpy as np from statistics import variance def generate(): global rows, cols, rmin, rmax,matrix,tmparr matrix = [] tmparr = [] rows = int(input('Количество строк: ')) cols = int(input('Количество столбцов: ')) rmin = int(input('Минимальное значение: ')) rmax = int(input('Максимальное значение: ')) for i in range(rows): row = [] for j in range(cols): row.append(round(rmin + (rmax - rmin) * random.random(),2)) matrix.append(row) generate() print('-'*30) def prt_disp(r,c): for i in matrix: row = [] for j in i: row.append(j) print("%.2f " %j, end=" ") print("med= ", variance(row)) print() def txt(): tmp = [] i = 0 for i in range(rows): print() for j in range(cols): tmp = (matrix[i][j]) print("%.2f " %tmp,end= " ") j = j + 1 tmp = [] i = i + 1 print() txt() while True: #print (matrix) print() print('Дудник Кирилл, вариант 16') print('Введите цифру') print('1 - транспонировать') print('2 - вывод матрицы') print('3 - дисперсия в каждой строке') print('4 - максимум среди сумм элементов диагоналей, параллельных побочной диагонали матрицы') print('5 - Перезапуск') choice = int(input('введите число: ')) print('') print('') print('') if choice == 1: tmparr = [*zip(*matrix)] matrix = [list(rw) for rw in tmparr] t = cols cols = rows rows = t # prt(rows,cols) txt() print('-' * 30) elif choice == 2: #prt(rows,cols) txt() print('-' * 30) elif choice == 3: prt_disp(rows,cols) print('-' * 30) elif choice == 4: txt() max_s = 0 n = len(matrix) # верхние диагонали for start_j in range(n - 2, -1, -1): i = 0 j = start_j s = 0 while i < n and j >= 0: s += abs(matrix[i][j]) #print(s) i += 1 j -= 1 if s > max_s: max_s = s #print(min_s) # нижние диагонали for start_i in range(1, n): i = start_i j = n - 1 s = 0 while i < n and j >= 0: s += abs(matrix[i][j]) #print(s) i += 1 j -= 1 if s > max_s: max_s = s #print(min_s) print("Максимум, среди сумм диагоналей паралельных побочной: ", max_s) # txt() # print('') # print('') # print('') # b = np.asarray(matrix) # b = np.fliplr(b) # #print(np.trace(b)) # print('Среднее значение побочной диагонали: ','{:.2f}'.format(np.trace(b)/min(rows,cols))) # #print(min(rows,cols)) # print('-' * 30) elif choice == 5: generate() txt() print('-' * 30) else: print('Ошибка')
Editor is loading...