0 / 0 / 0 Регистрация: 08.04.2020 Сообщений: 4 |
|
1 |
|
В матрице найти наименьшее число08.04.2020, 17:23. Показов 2447. Ответов 1
Дана таблица чисел, состоящая из N строк по M чисел в каждой. Все числа в таблице – натуральные, не превышающие 1000. Выходные данные Пример входного файла Пример выходного файла
0 |
zss Модератор 13079 / 10357 / 6200 Регистрация: 18.12.2011 Сообщений: 27,696 |
||||||||
08.04.2020, 18:13 |
2 |
|||||||
Берем образец
И небольшая правка в main
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
08.04.2020, 18:13 |
Помогаю со студенческими работами здесь в матрице найти наименьшее число b, обладающее свойством Найти наименьшее и наибольшее значение в матрице Найти натуральное наименьшее число n, факториал которого превышает число 4000 Найти наименьшее число, делящееся на заданное число, и оканчивающееся на заданную цифру Найти в первом стеке максимальное число, а во втором – наименьшее число Найти наименьшее число, в результате обработки которого автомат выдаст заданное число Андрей готовился к ЕГЭ по информатике и встретил в демо-версии ЕГЭ 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
Вывести на экран индексы всех минимальных элементов матрицы.
Эта задача отличается от поиска минимума тем, что нужно найти и вывести на экран не само минимальное значение, а его индексы (позицию, положение в матрице). Кроме того, минимальных (но равных между собой) значений в массиве может быть несколько. Следовательно, разумно вывести индексы всех минимальных элементов.
Задача складывается из двух подзадач, которые должны быть решены последовательно:
- Поиск минимума в массиве (в данном случае двумерном).
- Поиск элементов, равных ранее найденному минимуму.
Найденное минимальное значение должно быть сохранено в переменной (например, minimum). Однако можно было бы сохранять не само значение, а индекс элемента массива. Но поскольку мы имеем дело с матрицей, то пришлось бы сохранять два числа (номер строки и номер столбца).
Алгоритм поиска минимального значения:
- Присвоить minimum максимально возможное (или больше) значение для исследуемого массива.
- Перебрать элементы матрицы (используя конструкцию вложенного цикла). Каждый элемент сравнивать со значением minimum. Если очередной элемент меньше значения minimuma, то следует присвоить значение текущего элемента переменной minimum.
Алгоритм определения позиций всех минимальных элементов матрицы:
- Снова перебираем элементы матрицы.
- Сравниваем каждый элемент со значением minimum.
- Если они равны между собой, то выводим индексы текущего элемента на экран. (Индексы текущего элемента — это значения счетчиков первого и второго циклов.)
Примечания:
- Ниже в решениях задачи поиска индексов минимальных элементов на языках программирования поиск минимального значения выполняется в том же цикле, что и заполнение матрицы.
- Если индексация массива начинается с нуля, то лучше при выводе индексов увеличивать их на единицу. Так будет более ясно, где находится элемент.
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
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
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 г.
Комментарии могут оставлять только зарегестрированные пользователи!
Комментарии
Ваш комментарий будет первым !
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
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
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
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. 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
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
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
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