0 / 0 / 0 Регистрация: 12.05.2014 Сообщений: 10 |
|
1 |
|
Найти максимальный элемент в каждой строке массива24.09.2014, 18:44. Показов 7800. Ответов 6
Найти максимальный элемент в каждой строке массива!помогите пожалуйста((
0 |
lawr 385 / 279 / 478 Регистрация: 09.05.2014 Сообщений: 769 |
||||
26.09.2014, 04:31 |
2 |
|||
0 |
Jman 89 / 77 / 38 Регистрация: 11.10.2015 Сообщений: 860 |
||||
19.07.2016, 16:39 |
3 |
|||
Помогите сложить максимальный элемент массива с каждым элементом строки.
0 |
Модератор 13100 / 10373 / 6206 Регистрация: 18.12.2011 Сообщений: 27,741 |
|
19.07.2016, 16:42 |
4 |
По условию надо найти ОДИН максимальный элемент на всю матрицу.
0 |
89 / 77 / 38 Регистрация: 11.10.2015 Сообщений: 860 |
|
19.07.2016, 16:44 |
5 |
Выведите его. Измените текущий массив, прибавив ко всем элементам
0 |
Antony Coder 4 / 3 / 3 Регистрация: 17.07.2016 Сообщений: 17 |
||||
19.07.2016, 17:04 |
6 |
|||
2 |
Jman 89 / 77 / 38 Регистрация: 11.10.2015 Сообщений: 860 |
||||
20.07.2016, 10:33 |
7 |
|||
Спасибо. То что нужно… Дело было в отдельном цикле, где нужно было складывать.. Кому может пригодится с динамическим массивом.
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
20.07.2016, 10:33 |
7 |
в C# так не работает(хотя в некоторых других языках так можно написать).
C# язык со статической типизацией https://ru.wikipedia.org/wiki/Статическая_типизация
В вашем случае вы не можете изменить тип вашего массива во время работы программы.
int[,] myArr = new int[4, 5];
Во в этой строчке, слева вы сказали(для упрощения), что переменная myArr принадлежит типу int[]. Теперь туда можно добавлять только числа и исправить это нельзя.
Вы дали очень мало описания и возможно не прочитали, как задавать вопросы. Нужно задать конкретный вопрос, ибо в данный момент он звучит «Я ничего не сделал, сделайте за меня»(поэтому вам ставят минусы, а не потому что вопрос плохой).
Для того, чтобы вам ответили, задайте конкретный вопрос. В данном случае он звучит «Как мне вставить в массив чисел символ?»
Дело в том, что это форум архив знаний, состоящий из вопросов. Вопрос и ответ должен содержать в себе страницу учебника. Представьте, что вы пишете Введение в тему занятия. В ответах пишутся детали, а в комментариях обсуждаете с коллегами, как лучше написать.
Подсказка, как сделать
Если правильно оформите вопрос, я на него отвечу. Пока пусто.
An array can be considered as a container with the same types of elements. Python has its array module named array. We can simply import the module and create our array. But this module has some of its drawbacks. The main disadvantage is we can’t create a multidimensional array. And the data type must be the same.
To overcome these problems we use a third-party module called NumPy. Using NumPy we can create multidimensional arrays, and we also can use different data types.
Note: NumPy doesn’t come with python by default. So, we have to install it using pip. To install the module run the given command in the terminal.
pip install numpy
Now let’s create an array using NumPy. For doing this we need to import the module. Here we’re importing the module.
import numpy
Using the above command you can import the module.
Example 1: Now try to create a single-dimensional array.
arr = numpy.array([1, 2, 3, 4, 5])
Here, we create a single-dimensional NumPy array of integers. Now try to find the maximum element. To do this we have to use numpy.max(“array name”) function.
Syntax:
numpy.max(arr)
For finding the minimum element use numpy.min(“array name”) function.
Syntax:
numpy.min(arr)
Code:
Python3
import
numpy
arr
=
numpy.array([
1
,
5
,
4
,
8
,
3
,
7
])
max_element
=
numpy.
max
(arr)
min_element
=
numpy.
min
(arr)
print
(
'maximum element in the array is: '
,
max_element)
print
(
'minimum element in the array is: '
,
min_element)
Output:
maximum element in the array is: 8 minimum element in the array is: 1
Note: You must use numeric numbers(int or float), you can’t use string.
Example 2: Now, let’s create a two-dimensional NumPy array.
arr = numpy.array([11, 5, 7], [4, 5, 16], [7, 81, 16]]
Now using the numpy.max() and numpy.min() functions we can find the maximum and minimum element.
Here, we get the maximum and minimum value from the whole array.
Code:
Python3
import
numpy
arr
=
numpy.array([[
11
,
2
,
3
],
[
4
,
5
,
16
],
[
7
,
81
,
22
]])
max_element
=
numpy.
max
(arr)
min_element
=
numpy.
min
(arr)
print
(
'maximum element in the array is:'
,
max_element)
print
(
'minimum element in the array is:'
,
min_element)
Output:
maximum element in the array is: 81 minimum element in the array is: 2
Example 3: Now, if we want to find the maximum or minimum from the rows or the columns then we have to add 0 or 1. See how it works:
maximum_element = numpy.max(arr, 0) maximum_element = numpy.max(arr, 1)
If we use 0 it will give us a list containing the maximum or minimum values from each column. Here we will get a list like [11 81 22] which have all the maximum numbers each column.
If we use 1 instead of 0, will get a list like [11 16 81], which contain the maximum number from each row.
Code:
Python3
import
numpy
arr
=
numpy.array([[
11
,
2
,
3
],
[
4
,
5
,
16
],
[
7
,
81
,
22
]])
max_element_column
=
numpy.
max
(arr,
0
)
max_element_row
=
numpy.
max
(arr,
1
)
min_element_column
=
numpy.amin(arr,
0
)
min_element_row
=
numpy.amin(arr,
1
)
print
(
'maximum elements in the columns of the array is:'
,
max_element_column)
print
(
'maximum elements in the rows of the array is:'
,
max_element_row)
print
(
'minimum elements in the columns of the array is:'
,
min_element_column)
print
(
'minimum elements in the rows of the array is:'
,
min_element_row)
Output:
maximum elements in the columns of the array is: [11 81 22] maximum elements in the rows of the array is: [11 16 81] minimum elements in the columns of the array is: [4 2 3] minimum elements in the rows of the array is: [2 4 7]
Example 4: If we have two same shaped NumPy arrays, we can find the maximum or minimum elements. For this step, we have to numpy.maximum(array1, array2) function. It will return a list containing maximum values from each column.
Code:
Python3
import
numpy
a
=
numpy.array([
1
,
4
,
6
,
8
,
9
])
b
=
numpy.array([
5
,
7
,
3
,
9
,
22
])
print
(numpy.maximum(a, b))
Output:
[ 5 7 6 9 22]
Last Updated :
13 Aug, 2021
Like Article
Save Article
Находит максимальное значение элемента в последовательности.
Синтаксис:
max(iterable, *[, key, default]) max(arg1, arg2, *args[, key])
Параметры:
iterable
— итерируемый объект,key
— должна быть функцией (принимает один аргумент), используется для порядка сравнения элементов итерируемого объекта. Функция вычисляется один раз,default
— значение по умолчанию, если итерируемый объект окажется пустым,arg1...argN
— позиционный аргумент,*args
— список позиционных аргументов.
Возвращаемое значение:
- наибольшее значение объекта.
Описание:
Функция max()
возвращает наибольшее значение элемента итерируемого объекта или самое большое из двух или более переданных позиционных аргументов.
- Если указан один позиционный аргумент, он должен быть итерируемым объектом (список, кортеж, словарь и т.д.).
- Если в функцию передается два или более позиционных аргумента, возвращается самый большой из них.
- В случае, когда максимальное значение имеют сразу несколько аргументов. Возвращает первый по порядку элемент с максимальным значением. Это согласуется с другими инструментами сохранения стабильности сортировки, такими как
sorted(iterable, key=keyfunc, reverse=True)[0]
иheapq.nlargest(1, iterable, key=keyfunc)
Аргумент key
— функция подобная той, которая используется в дополнительном методе списков list.sort()
. Функция принимает один аргумент и используется для упорядочивания элементов.
>>> x = ['4', '11', '6', '31'] # функция `max` сравнивает # числа как строки >>> max(x) '6' # функция 'key=lambda i: int(i)' применяется # к каждому элементу списка 'x', преобразуя # строки в тип 'int' и теперь функция `max` # сравнивает элементы списка как числа. >>> max(x, key=lambda i: int(i)) '31' # или другое применение функции 'key' # выбор списка с наибольшей суммой элементов >>> max([1,2,3,4], [3,4,5], key=sum) [3, 4, 5]
Аргумент default
по умолчанию указывает объект, который нужно вернуть, если предоставленный итерируемый объект пуст. Если итерация пуста и значение по умолчанию не указано, то возникает ошибка ValueError
.
# Значение по умолчанию >>> max([], default=10) 10
Функция max()
сравнивает элементы, используя оператор <
. Поэтому, все передаваемые в них значения должны быть сопоставимы друг с другом и одного типа, иначе бросается исключение TypeError
При передаче в качестве аргумента текстовых строк, байтовых строк или байтовых массивов, а так же списка символов, максимальное значение будет выбираться исходя из порядка следования символов, в таблице соответствующей кодировки.
>>> x = list('abcdifgh') >>> max(x) # 'i'
Изменено в Python 3.8: Аргумент key
может быть None
.
Примеры поиска максимального значения в последовательности.
- Нахождение самой длинной строки в списке строк;
- Нахождение максимального значения в списке строк, записанных как целые числа;
- Нахождения максимального значения в строке, которая состоит из чисел и строк;
- Определение индекса у максимального значения в списке;
- Выбор максимального значения для ключа или значения в словаре;
- Нахождение списка с наибольшей суммой элементов в списке списков;
- Нахождение списка с наибольшим количеством элементов в списке списков.
# использование позиционных аргументов >>> max(5, 3, 6, 5, 6) # 6 # использование в качестве аргумента - список >>> max([1.2, 1.3, 1.5, 2, 5.52]) # 5.52 # комбинирование позиционных аргументов и списка # при передаче списка 'x' происходит его распаковка >>> x = (1.2, 1.3, 1.5, 2, 5.52) >>> max(5, 3, 5, *x) # 5,52
Нахождение самой длинной строки в списке строк.
Найдем самую длинную строку. В качестве ключевой функции используем len()
. Она посчитает количество символов в строке каждого элемента списка строк, а функция max()
выберет максимальное число. Строки можно передать например как позиционные аргументы, так и списком ['Jul', 'John', 'Vicky']
, результат будет тот же.
>>> line = ['Jul', 'John', 'Vicky'] >>> max(line, key=len) # 'Vicky'
Нахождение max()
в списке строк, записанных как целые числа.
Есть список строк чисел и необходимо найти максимум, как если бы они были целыми числами? Если применить функцию max()
к исходному списку «как есть», то она выберет наибольшее значение списка исходя из лексикографической сортировки. Для нахождения максимума, как числа, применим функцию lambda i: int(i)
в качестве ключа key
, которая «на лету» преобразует элементы списка в целые числа, тогда функция max()
выберет то что нам нужно.
>>> x = ['4', '11', '6', '31'] >>> max(x) # '6' >>> max(x, key = lambda i: int(i)) # '31'
Нахождения max()
в строке, которая состоит из чисел и строк.
Что бы найти максимум в строке, которая состоит из чисел и строк, необходимо сначала разделить исходную строку на список подстрок. Используем приемы, описанные в примерах функции sum()
:
- по разделителю, например пробелу
' '
или';'
методом строкиstr.split()
, - вытащить все цифры из исходной строки при помощи функцией
re.findall()
.
Затем в цикле перебрать полученный список и все строки с цифрами преобразовать в соответствующие числовые типы и уже потом применить функцию
# исходная строка >>> line = '12; 12,5; 14; один; 15.6; два' # способы преобразования строки в список строк # 1 способ по разделителю ';' >>> line.split(';') # ['12', ' 12,5', ' 14', ' один', ' 15.6', ' два'] # 2 способ по регулярному выражению >>> import re >>> match = re.findall(r'[d.?,?]+', line) >>> list(match) # ['12', '12,5', '14', '15.6']
Далее будем работать с более сложным списком, полученным 1 способом, где встречаются слова. И так, имеем список строк с цифрами и другими строками. Стоит задача: преобразовать строки с цифрами в соответствующие числовые типы и отбросить строки со словами, что бы потом найти максимум.
Задача усложняется тем, что вещественные числа в строках записаны как через запятую, так и через точку. Для необходимых проверок и преобразований определим функцию str_to_num()
.
>>> def str_to_num(str, chars=['.', ',']): ... # убираем начальные и конечные пробелы ... str = str.strip() ... if (any(char in str for char in chars) and ... str.replace('.', '').replace(',', '').isdigit()): ... # если в строке есть точка или запятая и при их замене на '' ... # строка состоит только из цифр то это тип float ... return float(str.replace(',', '.')) ... elif str.isdigit(): ... # если строка состоит только из цифр то это тип int ... return int(str) # полученный список строк 1-м способом >>> str_list = ['12', ' 12,5', ' 14', ' один', ' 15.6', ' два'] # новый список чисел, где будем искать максимум >>> num_list = [] >>> for i in str_list: ... # применим функцию преобразования строки в число ... n = str_to_num(i) ... if n is not None: ... # если функция возвращает число, ... # то добавляем в новый список ... num_list.append(str_to_num(i)) >>> num_list # [12, 12.5, 14, 15.6] >>> max(num_list) # 15.6
Определение индекса у максимального значения в списке.
Допустим есть список чисел и стоит задача, определить индекс максимального значения в этом списке. Для решения этой задачи необходимо пронумеровать список, т.е. создать кортеж — индекс/число, а затем найти максимум, используя в качестве ключа key=lambda i : i[1]
.
>>> lst = [1, 5, 3, 6, 9, 7] # пронумеруем список >>> lst_num = list(enumerate(lst, 0)) >>> lst_num # [(0, 1), (1, 5), (2, 3), (3, 6), (4, 9), (5, 7)] # найдем максимум (из второго значения кортежей) >>> t_max = max(lst_num, key=lambda i : i[1]) >>> t_max # (4, 9) # индекс максимального значения >>> t_max[0] # 4
Нахождение max()
для ключа или значения в словаре dict
.
Допустим есть словарь, задача: найти максимальное значение ключа или самого значения ключа и вывести эту пару.
# имеем словарь >>> d = {1: 3, 2: 4, 1: 9, 4: 1} # преобразуем его в список отображение >>> key_val = d.items() # преобразуем отображение в список # кортежей (ключ, значение) >>> key_val_list = list(key_val) # [(1, 9), (2, 4), (4, 1)]
По умолчанию, при нахождении максимального элемента из списка кортежей будет выбираться кортеж, у которого наибольшее значение имеет ключ исходного словаря (первый элемент в кортеже).
Но если необходимо получить пару (key, value)
, у которого наибольшее значение имеет значение ключа (второй элемент), то для этого нужно применить лямбда-функцию lambda i : i[1]
в качестве аргумента key
функции max()
, которая укажет, из какого элемента кортежа выбирать наибольшее значение.
# происходит сравнение по # первым элементам кортежа >>> kv = max(key_val_list) >>> kv # (4, 1) # максимальное значение ключа в словаре >>> kv[0] # 4 # меняем порядок сравнения >>> kv = max(key_val_list, key=lambda i : i[1]) >>> kv # (1, 9) # максимальное значение в словаре >>> kv[1] # 9 # ключ этого значения в словаре >>> kv[0] # 1 # получаем максимальное значение из словаря >>> d[kv[0]] # 9
Нахождение списка с наибольшей суммой элементов в списке списков.
Для выполнения данной задачи, используем функцию max()
, а в качестве ключевой функции применим встроенную функцию sum()
.
# исходный список >>> lst = [[1, 2, 3], [4, 5], [1, 3, 4, 5], [10, 20]] # выбираем список с наибольшей суммой элементов >>> max(lst, key=sum) # [10, 20]
Выбор списка с наибольшим количеством элементов из списка списков.
Для выполнения данной задачи, используем функцию max()
, а в качестве ключевой функции применим встроенную функцию len()
.
# исходный список >>> lst = [[1, 2, 3], [4, 5], [1, 3, 4, 5], [10, 20]] # выбираем список с наибольшим количеством элементов >>> max(lst, key=len) # [1, 3, 4, 5]
В этом посте мы обсудим, как найти минимальный и максимальный элемент массива в C++.
1. Наивное решение
Наивное решение — написать собственную процедуру для этой простой задачи. Идея состоит в том, чтобы линейно пройти массив, используя простой цикл for или цикл for на основе диапазона. Затем для каждого обнаруженного элемента мы сравниваем его с минимальным или максимальным элементом, найденным до сих пор, и заменяем максимальный элемент, найденный до сих пор, текущим элементом, если он меньше по значению, и минимальный элемент, найденный до сих пор, текущим элементом, если он больше по стоимости.
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 |
#include <iostream> #include <climits> #include <algorithm> using namespace std; int main() { int arr[] = { 4, 2, 1, 6, —8, 5 }; int min = INT_MAX, max = INT_MIN; for (int i: arr) { if (i < min) { min = i; } if (i > max) { max = i; } } std::cout << «The min element is « << min << std::endl; std::cout << «The max element is « << max << std::endl; return 0; } |
Скачать Выполнить код
результат:
The min element is -8
The max element is 6
2. Использование minmax_element()
функция
Рекомендуемое решение — использовать std::minmax_element
найти наименьший и наибольший элементы массива. Он возвращает пару итераторов, первое значение которых указывает на минимальный элемент, а второе значение указывает на максимальный элемент. Он определен в <algorithm>
заголовок.
#include <iostream> #include <algorithm> using namespace std; int main() { int arr[] = { 4, 2, 1, 6, —8, 5 }; std::pair<int*, int*> minmax = std::minmax_element(std::begin(arr), std::end(arr)); std::cout << «The min element is « << *(minmax.first) << std::endl; std::cout << «The max element is « << *(minmax.second) << std::endl; return 0; } |
Скачать Выполнить код
результат:
The min element is -8
The max element is 6
3. Использование min_element()
с max_element()
функция
Стандартная библиотека C++ также предоставляет отдельные функции. min_element()
а также max_element()
чтобы найти наименьший и наибольший элементы в массиве соответственно.
#include <iostream> #include <algorithm> using namespace std; int main() { int arr[] = { 4, 2, 1, 6, —8, 5 }; int *min = std::min_element(std::begin(arr), std::end(arr)); int *max = std::max_element(std::begin(arr), std::end(arr)); std::cout << «The min element is « << *min << std::endl; std::cout << «The max element is « << *max << std::endl; return 0; } |
Скачать Выполнить код
результат:
The min element is -8
The max element is 6
Вот и все, что касается нахождения минимального и максимального значений в массиве в C++.