Dear Sirs,
Could you give me some help .. an idea?!
- > I'm trying to display (print) the index (the line) of the longest range between the largest and the shortest term of the rows of an array they meet.
For example: Imagine an array with 3 rows and 2 columns. [8], [9], [12], [13] and [
Therefore, the largest range would be line 3, because 20-12 = 8.
I would like the output to be: Line 3, with the longest range being 8
The code below shows the row sequence and range value.
I've already been able to show the index of each row, but I'd like only the one with the highest range value.
Please, the problem is in the last "for" of the code. Downstairs.
import random
matriz = [] #cria matriz vazia
m = int(input("Informe a qtd de linhas desejadas na Matriz: "))
n = int(input("Informe a qtd de colunas desejadas na Matriz: "))
a = int(input("Defina o início do intervalo para geração aleatória: "))
b = int(input("Defina o fim do intervalo para geração aleatória: "))
maior = None # Armazena o maior valor
posicao = (0, 0) # Armazena a posição do maior valor
for i in range(1, m+1):
linha = []
for j in range(1, n+1):
x = float(random.uniform(a, b)) #gera números aleatórios dentro do intervalo definido
if maior is None or x > maior:
maior = x
posicao = (i, j)
linha.append(x)
matriz.append(linha)
produto = 1 #armazenará o produto dos maiores
soma = 0 #armazenará a soma dos menores
for linha in matriz:
produto *= max(linha) #produto do maior valor de cada linha
soma += min(linha) #soma do menor valor de cada linha
for index, i in enumerate(matriz):
maior_da_linha = max(i)
menor_da_linha = min(i)
intervalo = maior_da_linha - menor_da_linha
index += 1
print(index, i, intervalo)