1. Напишите функцию, которая может решать квадратные и линейные уравнения степени не выше второй. В функцию передается

  • 26
1. Напишите функцию, которая может решать квадратные и линейные уравнения степени не выше второй. В функцию передается список аргументов, которые интерпретируются следующим образом: если в списке три аргумента, они должны рассматриваться как коэффициенты a, b и c в уравнении ax^2 + bx + c = 0; если два аргумента, они рассматриваются как коэффициенты b и c в уравнении bx + c = 0; если в списке один аргумент, он рассматривается как коэффициент c в уравнении c = 0; если список аргументов пустой или содержит больше трех аргументов, функция должна вернуть None. Функция возвращает список, содержащий все корни уравнения (два, один или ни одного). Если уравнение имеет любое значение x в качестве корня, функция возвращает список с символом "*". (["*"
Hvostik
35
Конечно! Вот функция, которая решает квадратные и линейные уравнения степени не выше второй:

python
def solve_equation(*args):
if len(args) == 3:
a, b, c = args
discriminant = b2 - 4*a*c
if discriminant > 0:
x1 = (-b + discriminant
0.5) / (2*a)
x2 = (-b - discriminant**0.5) / (2*a)
return [x1, x2]
elif discriminant == 0:
x = -b / (2*a)
return [x]
else:
return []
elif len(args) == 2:
b, c = args
if b != 0:
x = -c / b
return [x]
else:
return []
elif len(args) == 1:
c = args[0]
if c == 0:
return [0]
else:
return []
else:
return None


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

Примеры использования функции:

python
print(solve_equation(1, -3, 2)) # Выведет: [1.0, 2.0], так как это квадратное уравнение с двумя корнями.
print(solve_equation(0, -3, 4)) # Выведет: [1.3333333333333333], так как это линейное уравнение с одним корнем.
print(solve_equation(0, 0, 2)) # Выведет: [], так как это линейное уравнение без корней.
print(solve_equation(2, 5)) # Выведет: [-2.5], так как это линейное уравнение с одним корнем.
print(solve_equation(0)) # Выведет: [0], так как это линейное уравнение с нулевым корнем.
print(solve_equation()) # Выведет: None, так как список аргументов пустой.
print(solve_equation(1, 2, 3, 4))# Выведет: None, так как список аргументов содержит больше трех аргументов.