L. Максимальное произведение

Вашему решению предоставлено множество numbers.

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

Примечание

В решении не должно быть ничего, кроме выражения.

Подсказка:
Не будем сосредотачиваться на оптимальном решении.
Для перебора всех возможных пар можно воспользоваться вложенными циклами в выражении:

Python
# Опечатка. вместо number нужно использовать numbers
(... for first in numbers for second in number if first != second)

Пример

Ввод

numbers = {1, 2, 3, 4, 5}

Вывод

20

Ввод

numbers = {2, 4, 5, 7, -10, -8, 10, -9, -1}

Вывод

90

Решение

Задание коварно тем, что в подсказке есть опечатка, надеюсь рано или поздно ее исправят.

В целом решение с правильной подсказкой слишком простое. Все что нам нужно сделать – вставить вместо троеточия в подсказке произведение первого и второго чисел, а после найти максимальное значение, поместив всю эту красоту в функцию max().

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

Посмотреть код

Решение

Python
max(first * second for first in numbers for second in numbers if first != second)
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии