Помогите! Найти произведение трех чисел
Найти произведение трех чисел, если их сумма, сумма их квадратов и сумма их кубов равны 1
Не ответ, а имено логика рассуждения.
Очень нужно! ПОМОГИТЕ!
Лучший ответ
Рассуждение такое:
составлем по трём условиям три уравнения.
а + б + в = 1
а2 + б2 + в2 = 1
а3 + б3 + в3 = 1
Далее просто решаем систему из трёх уравнений с тремя неизвестными.
Остальные ответы
Психиатрия Их ТРИ сумм.. .
Не возможно чтобы сумма трех неодинаковых чисел была равна 1 в то же время когда квадраты этих неодинаковых чисел равны 1.
При этом же в системе и кубы равны единице. т. к. в математике предполагается а, в с- отличными друг от друга.
Безконечно малые величины.
логически поразмыслив, я думаю, что эти числа 1, 0 и 0.
потому что:
раз сумма квадратов равна сумме кубов, отрицательные числа отсекаются.
раз сумма равна сумме квадратов, числа меньше 1 тоже отсекаются.
а раз сумма равна 1, остается 1 вариант всего.
сумма 0 + 1 + 0 = 1
квадратов = 1
кубов = 1.
да хоть квартетов))))))) ) = 1
произведение тоже = 1 )))
Три числа есть — есть!)))
Достаточно последовательно возвести сумму в квадрат и куб и подумать с помощью головных мозгов:
1=(a+b+c)^2=a^2+b^2+c^2+2(ab+ac+bc)
ab+ac+bc=0
1=(a+b+c)^3=a^3+b^3+c^3+6abc+3(a^2b+ab^2+a^2c+ac^2+b^2c+bc^3)=1-3abc+3(a(ab+ac+bc)+b(ab+ac+bc)+c(ab+ac+bc))=1-3abc
abc=0
Можно, в принципе, и без раскрытия квадрата суммы.
(a+b+c)³ = a³+b³+c³ + 3ab² +3ac² + 3a²b + 3a²c +3bc² + 3b²c + 6abc =
= 1 + 3(ab² +ac² + a²b + a²c + b²c + bc²) + 6abc =
= 1 + 3(a(b² +c²) + b(a² + c²) + c(a² + b²)) + 6abc =
= 1 + 3(a(b²+c²+ a² — a²) + b(a²+c²+b² — b²) + c(a²+b²+c² — c²)) + 6abc =
= 1 + 3(a(1-a²) + b(1-b²) + c(1-c²)) + 6abc =
= 1 + 3(a+b+c -a³-b³-c³) + 6abc =
= 1 + 3(1 — 1) + 6abc =
= 1 + 6abc.
Как в Python найти сумму, произведение и среднее арифметическое трёх целых чисел, введённых с клавиатуры

Данная статья посвящена решению задачи на Python, которая заключается в нахождении суммы, произведения и среднего арифметического трёх целых чисел, введенных пользователем с клавиатуры. Решение этой задачи может быть полезным в различных сферах программирования, где требуется обработка числовых данных. В этой статье мы рассмотри два варианта задачи, в первом варианте пользователь вводит три числа по очереди, а во втором вводит сразу три числа через пробел.
Как найти сумму, произведение и среднее арифметическое трёх целых чисел, введённых по очереди
Сначала рассмотрим вариант, в котором пользователь вводит числа по очереди. Для решения задачи в данном случае мы можем написать следующий код:
# получаем три целых числа от пользователя num1 = int(input("Введите первое число: ")) num2 = int(input("Введите второе число: ")) num3 = int(input("Введите третье число: ")) # вычисляем сумму, произведение и среднее арифметическое summ = num1 + num2 + num3 prod = num1 * num2 * num3 avg = summ / 3 # выводим результаты print("Сумма чисел:", summ) print("Произведение чисел:", prod) print("Среднее арифметическое чисел:", avg)
Здесь мы сначала получаем три целых числа от пользователя, используя функцию input() , и затем преобразуем их в целые числа, используя функцию int() . Затем мы вычисляем сумму, произведение и среднее арифметическое, используя соответствующие математические операции, и выводим результаты с помощью функции print() .
Как найти сумму, произведение и среднее арифметическое трёх целых чисел, введённых через пробел
А теперь рассмотрим более сложный вариант, когда пользователь вводит сразу три числа через пробел. Для решения этой задачи, нам необходимо использовать метод split() , который позволяет разделить строку на части по заданному разделителю и вернуть список этих частей. Так как разделителем в методе split() по-умолчанию является пробел, то мы можем не указывать его явно.
Напишем код для решения задачи:
# Получаем ввод от пользователя и разбиваем на три части input_str = input("Введите три целых числа, разделенных пробелами: ") num1, num2, num3 = input_str.split() # Преобразуем каждую часть в целое число num1 = int(num1) num2 = int(num2) num3 = int(num3) # Вычисляем сумму, произведение и среднее арифметическое трех чисел sum_nums = num1 + num2 + num3 prod_nums = num1 * num2 * num3 avg_nums = sum_nums / 3 # Выводим результаты print("Сумма трех чисел:", sum_nums) print("Произведение трех чисел:", prod_nums) print("Среднее арифметическое трех чисел:", avg_nums)
Этот код принимает три целых числа, разделенных пробелами, от пользователя и вычисляет сумму, произведение и среднее арифметическое этих чисел. Результаты выводятся на экран.
Алгоритм по поиску максимального произведения трех чисел

Надо найти максимальное произведение трех чисел из массива. Я написал код, но на одном из этапов проверки есть ошибка. Можете помочь, сказав где ошибка (не могу найти сам) Мой код на python:
def max3(n, arr): max1 = 0 max2 = 1 max3 = 2 t = 1 while t: if ((arr[max1] arr[max2]): max1, max2 = max2, max1 if (arr[max2] > arr[max3]): max3, max2 = max2, max3 min1 = max1 min2 = max2 for i in range(3, n): if arr[max3] = arr[i]): min2 = min1 min1 = i elif (arr[min2] > arr[i]): min2 = i maxarr = arr[max1] * arr[max2] * arr[max3] minarr = arr[min1] * arr[min2] * arr[max3] if maxarr > minarr: print(maxarr) else: print(minarr) if __name__ == "__main__": k = int(input()) arr1 = input() nums = list(map(int, arr1.split(' '))) max3(k, nums)
Отслеживать
48.6k 17 17 золотых знаков 56 56 серебряных знаков 100 100 бронзовых знаков
задан 29 июл 2023 в 14:01
Андрей Урих Андрей Урих
13 3 3 бронзовых знака
Несколько вводов с неправильным ответом [1, 1, -2, 1, 1, 0, -3, 1] [-4, 1, -1, 0, -5, -4, -3, -5] [-4, 0, -4, -2, -1, -3, -1, -3] [-7, -2, -6, -1, -3, -1, -6, -3]
29 июл 2023 в 14:55
@MBo, спасибо, так намного легче найти ошибку. Начну искать.
29 июл 2023 в 15:02
Нашел ошибку, спасибо. Ошибка в условии if, скопировал и забыл изменить «` while t: if ((arr[max1] <= arr[max2]) and (arr[max1] <= arr[max2]) and (arr[max1] <= arr[max2])): t = 0 break if (arr[max1] >arr[max2]): max1, max2 = max2, max1 if (arr[max2] > arr[max3]): max3, max2 = max2, max3 «`=>
29 июл 2023 в 15:29
Никак не надо менять статус вопроса, достаточно того, что вы ответ отметили принятым.
11 авг 2023 в 11:56
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Алгоритм словами не описан, буду гадать. Можно предположить что после цикла while ожидается что значения возрастают: arr[max1]
def max3(n, arr): max1 = 0 max2 = 1 max3 = 2 t = 1 while t: if ((arr[max1] arr[max2]): max1, max2 = max2, max1 if (arr[max2] > arr[max3]): max3, max2 = max2, max3 print(arr[max1], arr[max2], arr[max3]) max3(3, [10, 20, 30]) max3(3, [10, 30, 20]) max3(3, [20, 10, 30]) max3(3, [20, 30, 10]) max3(3, [30, 10, 20]) max3(3, [30, 20, 10])
$ python test.py 10 20 30 10 30 20 10 20 30 20 30 10 10 20 30 10 20 30
В четырёх случаях сортировка удалась, в двух провалилась. Самый неприятный случай 20 30 10 . Давайте сделаем из него «плохой» пример: 20 30 10 15 . Неправильная сортировка приводит к тому что в первом if внутри for значения меняются так: было 20 30 10 , стало 30 10 15 (я напечатал не индексы а соответствующие значения). Произведение уменьшилось с 6000 до 4500.
Хорошие новости: главная идея верная. Надо подобрать три положительных побольше или одно положительное побольше и два отрицательных поменьше. Нужно уметь искать три максимума и два минимума.
Для поиска трёх максимумов будем поддерживать упорядоченный список из не более чем трёх элементов. Первоначально список пустой, новые элементы вставляются так чтобы порядок сохранялся. Если после вставки элементов больше трёх, первый (минимальный) удаляется:
def insert(a, v): a.append(v) for i in reversed(range(len(a) - 1)): if a[i] 3: max3.pop(0) return max3 def get_min2(a): min2 = [] for v in a: insert(min2, v) if len(min2) > 2: min2.pop() return min2 def main(): input() # skip n a = tuple(map(int, input().split())) max3 = get_max3(a) min2 = get_min2(a) print(max( max3[0] * max3[1] * max3[2], max3[2] * min2[0] * min2[1] )) main()
P.S. get_max3 и get_min2 через sorted :
def get_max3(a): max3 = [] for v in a: max3 = sorted(max3 + [v])[-3:] return max3 def get_min2(a): min2 = [] for v in a: min2 = sorted(min2 + [v])[:2] return min2
P.P.S. Встроенный модуль heapq умеет делать всё из коробки — heapq.nlargest, heapq.nsmallest:
import heapq input() # skip n a = tuple(map(int, input().split())) max3 = heapq.nlargest(3, a) min2 = heapq.nsmallest(2, a) print(max( max3[0] * max3[1] * max3[2], max(max3) * min2[0] * min2[1] ))
Задача о максимальном произведении трех чисел массива
Задача, которую предлагали на собеседованиях в Apple: у вас есть массив с целыми числами, в том числе и отрицательными, вам нужно найти самое большое произведение 3 чисел из этого массива.
Например: у вас есть массив list_of_ints, содержащий числа -10, -10, 1, 3, 2. Функция, которая обрабатывает этот массив, должна вернуть 300, так как -10 * -10 * 3 = 300. Задание нужно выполнить максимально эффективно, не забывая про отрицательные числа.
Решение
Методов решения много, но не так просто добиться O(n) времени выполнения и O(1) затрат памяти. Для эффективного решения задачи мы создадим и будем наблюдать за состоянием следующих переменных:
- highest_product_of_three
- highest_product_of_2
- highest
- lowest_product_of_2
- lowest
Когда мы пройдемся по массиву до конца, в highest_product_of_three будет содержаться наш ответ, а остальные переменные мы используем как временный буфер. highest_product_of_2 и lowest_product_of_2 будут содержать наибольшее произведение из двух и наименьшее произведение из двух соответственно, а проходя по массиву, мы будем проверять произведение текущего числа current с этими переменными (отрицательный current с lowest_product_of_2 и положительный с highest_product_of_2). highest и lowest нам нужны для запоминания минимального и максимального чисел в массиве.
Код решения на Python:
def highest_product_of_3(list_of_ints): # Проверим, чтобы в массиве было 3 и больше чисел. if len(list_of_ints) < 3: raise Exception('Less than 3 items!') # Мы начнем с 3-его элемента массива (с индекса 2), # так как первые 2 элемента уже сразу пойдут # в highest_product_of_2 и lowest_product_of_2. highest = max(list_of_ints[0], list_of_ints[1]) lowest = min(list_of_ints[0], list_of_ints[1]) highest_product_of_2 = list_of_ints[0] * list_of_ints[1] lowest_product_of_2 = list_of_ints[0] * list_of_ints[1] # Также вычислим highest_product_of_three из первых 3-х элементов. highest_product_of_three = list_of_ints[0] * list_of_ints[1] * list_of_ints[2] # Начинаем проход по массиву с индекса 2. for current in list_of_ints[2:]: # проверяем возможность увеличить highest_product_of_three # или оставляем его как есть. highest_product_of_three = max( highest_product_of_three, current * highest_product_of_2, current * lowest_product_of_2) # То же самое проверим и на максимальном произведении из двух. highest_product_of_2 = max( highest_product_of_2, current * highest, current * lowest) # И на минимальном произведении из двух. lowest_product_of_2 = min( lowest_product_of_2, current * highest, current * lowest) # Появилось ли новое максимальное число? highest = max(highest, current) # Появилось ли новое минимальное число? lowest = min(lowest, current) return highest_product_of_three
Сложность алгоритма — O(n) по времени выполнения и O(1) по памяти.
Источник: Interview Cake