Дискриминант. Все в той или иной степени помнят понятие дискриминанта ещё со школы. Сперва, освежим в памяти формулу дискриминанта и формулу нахождения корней квадратного уравнения.
Дискриминант D квадратного трёхчлена ax^2 + bx + c равен b^2 - 4ac. Знак «^» означает степень числа. Корни квадратного уравнения зависят от знака дискриминанта (D) :
D > 0 - уравнение имеет 2 различных вещественных корня;
D = 0 - уравнение имеет 1 корень (или же 2 совпадающих вещественных корня): x = -b/(2*a)
D < 0 - уравнение имеет 2 мнимых корня (т.е. вещественных корней нет).
Общая формула для нахождения корней квадратного уравнения:
Теперь можно приступить к варке алгоритма на Питоне.
Ингредиенты:
Python 3
Библиотека Mathf
Квадратный трехчлен ax^2 + bx + c
Формула дискриминанта b^2 - 4ac
Общая формула для нахождения корней квадратного уравнения
Среда разработки «PyCharm» по вкусу
ВНИМАНИЕ: Сервис удаляет начальные пробелы в строках, поэтому приходится использовать символ "_" вместо каждого пробела.
Приготовление:
1. Подключите библиотеку Mathf
import Mathf
2. Cделайте ввод данных для переменных a, b, с. Также добавим print('ax^2+bx+c') для красоты и понимания.
print('ax^2+bx+c')
a = int(input('Введите a = '))
b = int(input('Введите b = '))
c = int(input('Введите c = '))
Пояснение: int(input()) – перевод введенной строки в число
3. Приготовьте дискриминант D, используя формулу b^2 - 4ac.
D = b ** 2 - 4 * a * c
Пояснение: b ** 2 – возведение числа в степень
4. Проверьте D на количество корней и вычислите корни x1, x2.
if D == 0:
____x = -b / (2 * a)
____print('Дискриминант D равен 0. Имеет один корень:')
____print('x =', x)
if D < 0:
____print('Вещественных корней нет')
if D > 0:
____x1 = (-b + Mathf.sqrt(D)) / (2 * a)
____x2 = (-b - Mathf.sqrt(D)) / (2 * a)
____print('Дискриминант D больше 0. Имеет два корня:')
____print('x1 =', x1, 'x2 =', x2)
Готовое блюдо:
import Mathf
print('ax^2+bx+c')
a = int(input('Введите a = '))
b = int(input('Введите b = '))
c = int(input('Введите c = '))
D = b ** 2 - 4 * a * c
if D == 0:
____x = -b / (2 * a)
____print('Дискриминант D равен 0. Имеет один корень:')
____print('x =', x)
if D < 0:
print('Вещественных корней нет')
if D > 0:
____x1 = (-b + Mathf.sqrt(D)) / (2 * a)
____x2 = (-b - Mathf.sqrt(D)) / (2 * a)
____print('Дискриминант D больше 0. Имеет два корня:')
____print('x1 =', x1, 'x2 =', x2)