Как найти наименьшее значение матрицы

0 / 0 / 0

Регистрация: 08.04.2020

Сообщений: 4

1

В матрице найти наименьшее число

08.04.2020, 17:23. Показов 2447. Ответов 1


Студворк — интернет-сервис помощи студентам

Дана таблица чисел, состоящая из N строк по M чисел в каждой. Все числа в таблице – натуральные, не превышающие 1000.
Требуется найти наименьшее число в этой таблице.
Входные данные
Во входном файле записано сначала число N – количество строк,
а затем число M – количество столбцом таблицы (1<=N<=100, 1<=M<=100).
Далее идет сама таблица.

Выходные данные
В выходной файл выведите наименьшее число, которое встречается в таблице.

Пример входного файла
3 4
6 4 10 4
3 7 5 7
6 3 4 3

Пример выходного файла
3



0



zss

Модератор

Эксперт С++

13079 / 10357 / 6200

Регистрация: 18.12.2011

Сообщений: 27,696

08.04.2020, 18:13

2

Берем образец
Образцы (шаблоны) программ для типовых задач
Заменяем функцию

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
//
// пример обработки матрицы -  наименьшее число, которое встречается в таблице
//
void Process( int ** M,int *Sum, size_t n, size_t m ) {
    int S=M[0][0];
    for ( size_t i = 0; i < n; ++i ) {
        for ( size_t j = 0; j < m; ++j ) {
            if(S > M[i][j];
                S = M[i][j];
        }
    }
    *Sum=S;
}

И небольшая правка в main

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
int main()
{
    setlocale( LC_ALL, "Rus" ); // установление русской локали (windows)
 
    size_t n, m;
 
    // вводим размерность матрицы
    std::cout << "Введите количество строк матрицы: ";
    std::cin >> n;
    std::cout << "Введите количество столбцов матрицы: ";
    std::cin >> m;
 
    // выделяем память под матрицу
    int ** A = Create( n, m );
 
    // ввод матрицы
    Input( A, n, m );
    // заполнение случайными числами (вместо ввода)
    //FillRandomNumbers(A,n,m);
 
    // обработка матрицы
    int S;
    Process( A, &S, n, m );
 
    // вывод результата
    //for(size_t i=0;i<n;i++) 
    std::cout<<"Minimum=" << S;
    std::cout<<std::endl;
 
    // Вывод матрицы
    //Print(A,n,m);
 
    // освобождаем память, выделенную под матрицу и вектор
    //delete[] S;
    Free( A, n );
 
    // ждём нажатия клавиши перед выходом из приложения (windows)
    //system( "pause" );
 
    return 0;
}



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

08.04.2020, 18:13

Помогаю со студенческими работами здесь

в матрице найти наименьшее число b, обладающее свойством
хотя бы в одной строке все элементы не превышают b
Пожалуйста, помогите написать программу

Найти наименьшее и наибольшее значение в матрице
найти наименьшее и наибольшее значение двумерного массива

Найти натуральное наименьшее число n, факториал которого превышает число 4000
Написать программу для решения следующей задачи,используя,по крайней мере, два вида циклов. Найти…

Найти наименьшее число, делящееся на заданное число, и оканчивающееся на заданную цифру
найти наименьшее число, которое делится на заданное пользователем число N, при этом оканчивается на…

Найти в первом стеке максимальное число, а во втором – наименьшее число
даны два стека, в каждом из которых находится по 10 различных чисел. Найти в первом стеке…

Найти наименьшее число, в результате обработки которого автомат выдаст заданное число
Задача такая

Андрей готовился к ЕГЭ по информатике и встретил в демо-версии ЕГЭ 2015 года такую…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

2

Matrices in MATLAB are 2-dimensional arrays that store mostly numeric data at different indices. Now, to find the indices of maximum and minimum values of a given matrix, MATLAB does not provide any direct functionality however, we can do the same by using two other functionalities. Firstly, we will find the maximum or minimum value of a given matrix and then, we will find the indices of those two values. In this scenario, MATLAB does offer simple functions to perform the former tasks. In this article, we shall see how to do the same for a magic square.

Maximum and Minimum Values in a Matrix:

The max() and min() functions find the maximum and minimum values respectively in an array, along a given dimension. The output of these commands will be a row vector(default) which will have max/min values of each column in that array/matrix. Then we can apply the max()/min() function again to find the max/min values from that 1D vector. 

Syntax:

To get row vectors with extreme values

max-row = max(matrix)

min-row = min(matrix)

To get extreme value from a given row vector of extreme values

max(max-row)

min(min-row)

Now let us see the same in action.

Maximum Value:

We will create a 5×5 magic square and find its maximum value, which should be 25.

Example 1:

Matlab

matrix = magic(5)

max_val = max(max(matrix))

Output:

Minimum Value:

Similarly, we will now find the minimum value of the same magic square, which should be 1.

Example 2:

Matlab

matrix = magic(5)

min_val = min(min(matrix))

Output:

Finding Indices of Max/Min Values in the Same Magic Square:

Now we will use the find() function to get the indices of the max/min values.

Syntax:

max-index = find(matrix==max_val)

min-index = find(matrix==min_val)

Example 3:

Matlab

matrix = magic(5);

min_val = min(min(matrix));

max_val = max(max(matrix));

[minx,miny] = find(matrix==min_val);

[maxx,maxy] = find(matrix==max_val);

fprintf("minimum index")

disp([minx,miny])

fprintf("maximum index")

disp([maxx,maxy])

Output:

Finding Max/Min Values With Multiple Occurrences:

We can also find the indices of all occurrences of the max/min value of a matrix in a similar way. See the following code for understanding the same.

Example 4:

Matlab

matrix = [1 2 3;

        1 23 4;

        2 23 5]

min_val = min(min(matrix));

max_val = max(max(matrix));

[minx,miny] = find(matrix==min_val);

[maxx,maxy] = find(matrix==max_val);

fprintf("minimum indexn")

disp([minx,miny])

fprintf("maximum indexn")

disp([maxx,maxy])

Output:

As can be seen, the minimum value 1 occurs at (1,1) and (2,1), and the maximum value 23 occurs at (2,2) and (3,2) indices. The same results are given by the above code.

Last Updated :
21 Nov, 2022

Like Article

Save Article

Перейти к содержанию

Индексы минимальных элементов матрицы

Просмотров 3.7к. Обновлено 15 октября 2021

Вывести на экран индексы всех минимальных элементов матрицы.

Эта задача отличается от поиска минимума тем, что нужно найти и вывести на экран не само минимальное значение, а его индексы (позицию, положение в матрице). Кроме того, минимальных (но равных между собой) значений в массиве может быть несколько. Следовательно, разумно вывести индексы всех минимальных элементов.

Задача складывается из двух подзадач, которые должны быть решены последовательно:

  1. Поиск минимума в массиве (в данном случае двумерном).
  2. Поиск элементов, равных ранее найденному минимуму.

Найденное минимальное значение должно быть сохранено в переменной (например, minimum). Однако можно было бы сохранять не само значение, а индекс элемента массива. Но поскольку мы имеем дело с матрицей, то пришлось бы сохранять два числа (номер строки и номер столбца).

Алгоритм поиска минимального значения:

  1. Присвоить minimum максимально возможное (или больше) значение для исследуемого массива.
  2. Перебрать элементы матрицы (используя конструкцию вложенного цикла). Каждый элемент сравнивать со значением minimum. Если очередной элемент меньше значения minimuma, то следует присвоить значение текущего элемента переменной minimum.

Алгоритм определения позиций всех минимальных элементов матрицы:

  1. Снова перебираем элементы матрицы.
  2. Сравниваем каждый элемент со значением minimum.
  3. Если они равны между собой, то выводим индексы текущего элемента на экран. (Индексы текущего элемента — это значения счетчиков первого и второго циклов.)

Примечания:

  • Ниже в решениях задачи поиска индексов минимальных элементов на языках программирования поиск минимального значения выполняется в том же цикле, что и заполнение матрицы.
  • Если индексация массива начинается с нуля, то лучше при выводе индексов увеличивать их на единицу. Так будет более ясно, где находится элемент.

Pascal


const N = 5; M = 7;
var
mx: array[1..N,1..M] of integer;
min: integer;
i, j: byte;
begin
min := MAXINT;
randomize;
for i:=1 to N do begin
for j:=1 to M do begin
mx[i,j] := random(50) - 25;
write(mx[i,j]:4);
if mx[i,j] < min then min:=mx[i,j];
end;
writeln;
end;
writeln('Минимальное значение: ', min);
for i:=1 to N do
for j:=1 to M do
if mx[i,j] = min then
writeln('строка: ', i, '; столбец: ', j);
end.



-19 6 3 18 -12 -3 24
-4 15 -6 19 -15 -1 4
6 -9 -12 23 -3 3 -11
5 0 -11 -4 -19 -6 1
17 20 -1 6 17 -1 15
Минимальное значение: -19
строка: 1; столбец: 1
строка: 4; столбец: 5

Язык Си


#include < stdio.h>
#define M 7
#define N 5
main() {
int a[N][M];
int min, i, j;
srand(time(NULL));
min = 25;
for (i=0; i< N; i++) {
for (j=0; j< M; j++) {
a[i][j] = rand() % 50 - 25;
printf("%5d", a[i][j]);
if (min > a[i][j]) min = a[i][j];
}
printf("n");
}
printf("%dn", min);
for (i=0; i< N; i++) {
for (j=0; j< M; j++) {
if (min == a[i][j])
printf("row: %d, col: %dn", i+1, j+1);
}
}
}

Python

индекс минимального элемента массива python


from random import random
M = 7
N = 5
a = []
for i in range(N):
b = []
for j in range(M):
b.append(int(random()*50) - 25)
print("%4d" % b[j], end='')
a.append(b)
print()
min_mx = 25
for i in range(N):
min_i = min(a[i])
if min_i < min_mx:
min_mx = min_i
print(min_mx)
for i in range(N):
for j in range(M):
if min_mx == a[i][j]:
print('Row: %d, col: %d' % (i+1,j+1))



Пример выполнения:

-18 -23 -8 17 12 4 -22
16 -10 -18 6 -9 19 23
8 -1 -7 0 -9 24 -12
-5 16 14 -2 1 7 -16
-7 5 1 -23 -4 -4 17
-23
Row: 1, col: 2
Row: 5, col: 4

В языке Python есть встроенная функция min, которая возвращает минимальный элемент одномерного списка. Если же ее применить к двумерному списку, то она возвращает вложенный список, первый элемент которого оказывается минимальным.

Поэтому в коде поиска минимального элемента матрицы эта функция используется к каждой строке (вложенному списку) отдельно.

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

Классический вариант поиска минимального значения матрицы выглядел бы так:

… min_mx = 25 for i in range(N): for j in range(M): if a[i][j] < min_mx: min_mx = a[i][j] …

КуМир


алг индексы минимумов
нач
цел M = 7, N = 5
цел таб a[1:N,1:M]
цел i, j, minimum
minimum := 25
нц для i от 1 до N
нц для j от 1 до M
a[i,j] := int(rand(0,50)) - 25
вывод a[i,j]:4, " "
если minimum > a[i,j] то
minimum := a[i,j]
все
кц
вывод нс
кц
вывод minimum, нс
нц для i от 1 до N
нц для j от 1 до M
если minimum = a[i,j] то
вывод "строка: ",i, ", столбец: ",j, нс
все
кц
кц
кон

Basic-256


M = 7
N = 5
dim a(N,M)
min = 25
for i = 0 to N-1
for j=0 to M-1
a[i,j] = int(rand*50)-25
print a[i,j] + " ";
if min > a[i,j] then min = a[i,j]
next j
print
next i
print min
for i = 0 to N-1
for j=0 to M-1
if min = a[i,j] then print (i+1) + " " + ( j+1)
next j
next i

Python задача. Найдите индексы минимальных элементов матрицы.

Python задачи

Вывести индексы всех минимальных элементов массива. Эта задача отличается от поиска минимума тем, что необходимо найти и вывести не самое минимальное значение, а индексы самых минимальных значений, также в массиве может быть несколько минимальных (но равных) значений. Поэтому разумно вывести индексы всех минимальных элементов. Разбор задачи на языке программирования python.

Алгоритм решения задачи на python

1) Введите переменную, которая будет иметь большее значение, чем массив.

2) Перебрать элементы массива. Каждый элемент сравнивается с нашей переменной, если следующий элемент меньше значения в переменной, то значение текущего элемента должно быть присвоено переменной.

3) Перебираем массив, чтобы найти элементы равные нашему минимуму, чтобы вывести все индексы на экран.

Код для нахождения индекса минимальных элементов матрицы.

from random import random
M = 7
N = 5
a = []
for i in range(N):
b = []
for j in range(M):
b.append(int(random()*55) – 30)
print(“%4d” % b[j], end=”)
a.append(b)
print()
min_mx = 50
for i in range(N):
min_i = min(a[i])
if min_i < min_mx:
min_mx = min_i
print(min_mx)
for i in range(N):
for j in range(M):
if min_mx == a[i][j]:
print(‘Строка: %d, Столбец: %d’ % (i+1,j+1))

Код для нахождения индекса минимальных элементов матрицы.

Python задачи
Все задачи на python

Репост статьи

29 декабря 2022 г.

Комментарии могут оставлять только зарегестрированные пользователи!



Комментарии

Ваш комментарий будет первым !

Напиши программу, которая принимает натуральное число n, а затем n чисел от 1 до 100. выведи максимальное из них, которое заканчивается на 1. если такого числа нет, напечатай «нет».

Pascal задача.Даны натуральные числа n, m. Получите сумму m последних цифр числа n.

I have this code wrote in python 3:

matrix = []
    loop = True
    while loop:
        line = input()
        if not line: 
            loop = False
        values = line.split()
        row = [int(value) for value in values]
        matrix.append(row)

    print('n'.join([' '.join(map(str, row)) for row in matrix]))
    print('matrix saved')

an example of returned matrix would be [[1,2,4],[8,9,0]].Im wondering of how I could find the maximum and minimum value of a matrix? I tried the max(matrix) and min(matrix) built-in function of python but it doesnt work.

Thanks for your help!

asked Apr 30, 2014 at 23:27

Jon_Computer's user avatar

2

One-liner:

for max:

matrix = [[1, 2, 4], [8, 9, 0]]
print (max(map(max, matrix))
9

for min:

print (min(map(min, matrix))
0

answered Feb 10, 2020 at 5:00

eugen's user avatar

eugeneugen

1,2198 silver badges15 bronze badges

If you don’t want to use new data structures and are looking for the smallest amount of code possible:

max_value = max([max(l) for l in matrix])
min_value = min([min(l) for l in matrix])

If you don’t want to go through the matrix twice:

max_value = max(matrix[0])
min_value = min(matrix[0])

for row in matrix[1:]:
    max_value = max(max_value, max(row))
    min_value = min(min_value, min(row))

answered Dec 10, 2019 at 10:01

AdelaN's user avatar

AdelaNAdelaN

3,2852 gold badges24 silver badges44 bronze badges

Use the built-in functions max() and min() after stripping the list of lists:

matrix = [[1, 2, 4], [8, 9, 0]]
dup = []
for k in matrix:
    for i in k:
        dup.append(i)

print (max(dup), min(dup))

This runs as:

>>> matrix = [[1, 2, 4], [8, 9, 0]]
>>> dup = []
>>> for k in matrix:
...     for i in k:
...         dup.append(i)
... 
>>> print (max(dup), min(dup))
(9, 0)
>>> 

answered Apr 30, 2014 at 23:52

A.J. Uppal's user avatar

A.J. UppalA.J. Uppal

19k6 gold badges45 silver badges76 bronze badges

0

If you are going with the solution of flattening matrix in an array, instead of inner loop you can just use extend:

big_array = []

for arr in matrix:
   big_array.extend(arr)

print(min(big_array), max(big_array))

answered Oct 13, 2019 at 17:45

Serjik's user avatar

SerjikSerjik

10.4k7 gold badges61 silver badges70 bronze badges

Try

largest = 0
smallest = 0
count = 0
for i in matrix:
    for j in i:
        if count == 0:
            largest = j
            smallest = j
            count = 1
        if j > largest:
            largest = j
        if j < smallest:
            smallest = j

UPDATE

For splitting

largest = 0
count = 0
for i in matrix:
    for j in i:
        if count == 0:
            largest = j
        if j > largest:
            largest = j

and do the same thing for smallest

answered Apr 30, 2014 at 23:37

Newyork167's user avatar

Newyork167Newyork167

4945 silver badges9 bronze badges

3

here is what i came up with

M = [[1,2,4],[8,9,0]]

def getMinMax( M ):
    maxVal = 0
    for row in M:
        if max(row) > maxVal: maxVal = max(row)
    minVal = maxVal*1
    for row in M:
        if min(row) < minVal: minVal = min(row)

    return ( minVal,  maxVal )

getMinMax( M )
// Result: (0, 9) //

answered May 1, 2014 at 0:04

mr.matt's user avatar

You could first decide to flatten this matrix and then find the corresponding maximum and minimum values as indicated below
Convert the matrix to a numpy array

import numpy as np
matrix = np.array([[1, 2, 4], [8, 9, 0]])
mat_flattened = matrix.flatten()
min_val = min(mat_flattened)
max_val = max(mat_flattened)

0

Добавить комментарий