Проверка «Меньше чем» с потенциально очень маленьким значением в Python - PullRequest
0 голосов
/ 03 ноября 2018

Доброе утро, Я должен был найти index[i,j] наибольшего значения матрицы размера m x n. Следующий код работает и проходит все тесты:

def biggest_value(matrix, rows, columns):
    max_value = -99999999999999999999
    index = 0
    for i in range(0,rows):
        for j in range(0,columns):
            if max_num < matrix[i][j]:
                max_num = matrix[i][j]
                index = (i,j)
    return index

Однако, поскольку для некоторых тестов ввод очень мал (т.е. -97969584948693858938939848, мне было интересно, как я мог бы реализовать эту функцию лучше, поэтому я рассмотрел любое потенциальное отрицательное значение, которое функция могла бы принять в качестве аргумента M .

Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 03 ноября 2018

Использование numpy's unravel_index и argmax:

import numpy as np
from numpy import unravel_index

arr = np.array([[1,23,2,24], [3,45,21,30]])
print(unravel_index(arr.argmax(), arr.shape))
# (1, 1)
0 голосов
/ 03 ноября 2018

Вы можете использовать math.inf

import math
def biggest_value(matrix, rows, columns):
    max_num = - math.inf
    index = 0
    for i in range(0,rows):
        for j in range(0,columns):
            if max_num < matrix[i][j]:
                max_num = matrix[i][j]
                index = (i,j)
    return index
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...