Вопрос от Анонимного юзера 11 сентября 2025 18:06
Скинь код
Ответ нейросети
11 сентября 2025 18:06
Ниже пример кода на Python, который даст детальное пошаговое решение для линейных и квадратных уравнений. Введите уравнение в форме:
- линейное: ax + b = c
- квадратное: ax^2 + bx + c = 0
Требуется установленный пакет sympy (pip install sympy).
# solve_step_by_step.py
import sys
try:
import sympy as sp
except ImportError:
print("Пожалуйста, установите SymPy: pip install sympy")
sys.exit(1)
def step_by_step_solve(problem: str):
x = sp.symbols('x')
if '=' not in problem:
print("Ошибка: уравнение должно содержать знак '='.")
return
left_s, right_s = problem.split('=', 1)
left = sp.sympify(left_s.strip(), locals={'x': x})
right = sp.sympify(right_s.strip(), locals={'x': x})
print("Шаг 1. Запишем уравнение в виде: left = right")
print("Уравнение: {} = {}".format(left, right))
expr = sp.expand(left - right)
print("Шаг 2. Перепишем уравнение слева в одну сторону: (left - right) = 0")
print("Получаем: {} = 0".format(expr))
# Определяем степень по x
deg = sp.Poly(sp.expand(expr), x).degree()
if deg is None:
deg = 0 # на случай пустого выражения
if deg == 0:
# константа слева: либо 0 = 0 (бесконечно много решений), либо противное
const_val = expr.subs(x, 0)
if sp.simplify(const_val) == 0:
print("Шаг 3. Константа равна 0: бесконечно много решений.")
else:
print("Шаг 3. Константа не равна 0: решений нет.")
return
if deg == 1:
# линейное уравнение: a*x + c = 0
a = sp.expand(expr).coeff(x)
c = sp.expand(expr).subs(x, 0)
print("Шаг 3. Найдём коэффициент при x: a = {}".format(a))
print("Шаг 4. Найдём свободный член: c = {}".format(c))
if a == 0:
if c == 0:
print("Уравнение превращается в 0 = 0: бесконечно много решений.")
else:
print("Уравнение не имеет решений (0*x + c ≠ 0).")
return
x_sol = -c / a
print("Шаг 5. Решаем: a*x + c = 0 → x = -c/a")
print("Ответ: x = {}".format(sp.simplify(x_sol)))
return
if deg == 2:
# квадратное уравнение: a*x^2 + b*x + c = 0
poly = sp.Poly(sp.expand(expr), x)
a = poly.coeffs()[0] if poly.degree() == 2 else poly.coeffs()[0] # корректно для deg 2
# Более надёжно извлечём коэффициенты
a = poly.coeff_monomial(x**2)
b = poly.coeff_monomial(x)
c = poly.coeff_monomial(1)
print("Шаг 3. Коэффициенты: a = {}, b = {}, c = {}".format(a, b, c))
if a == 0:
print("Уравнение не является квадратным (a=0). Перепроверьте форму.")
return
D = sp.simplify(b**2 - 4*a*c)
print("Шаг 4. Дискриминант: D = b^2 - 4ac = {}".format(D))
sqrtD = sp.sqrt(D)
x1 = (-b - sqrtD) / (2*a)
x2 = (-b + sqrtD) / (2*a)
print("Шаг 5. Корни: x1 = (-b - sqrt(D)) / (2a) = {}".format(sp.simplify(x1)))
print("Шаг 6. x2 = (-b + sqrt(D)) / (2a) = {}".format(sp.simplify(x2)))
return
# Не реализовано более высокие степени
print("Решение для степеней выше 2 не реализовано в этом примере.")
return
if __name__ == "__main__":
print("Введите уравнение. Примеры:\n 2*x + 5 = 15\n 2*x**2 - 3*x - 2 = 0")
problem = input("Уравнение: ")
step_by_step_solve(problem)
Как использовать
- Сохраните файл как solve_step_by_step.py.
- Установите SymPy: pip install sympy.
- Запустите: python solve_step_by_step.py
- Введите уравнение, например:
- 2*x + 5 = 15
- 2x**2 - 3x - 2 = 0
Примечания
- Код печатает пошаговое объяснение на русском языке.
- Это базовый пример для линейных и квадратных уравнений. Для более сложных задач можно расширять парсер и логику. Если задача другая или требуется другой уровень сложности, скажите параметры задачи — адаптирую решение.
Понравился ответ?
Задай свой вопрос
Напиши любую задачу или вопрос, а нейросеть её решит



