Реализовать функцию нахождения вещественных корней квадратного уравнения. Если корней несколько, то корни возвращаются из функции отсортированными по возрастанию.
Проверить работу функции при следующих ситуациях:
a
функция возвращает строку “error”a = 1, b = 0, c = -1
, которые задают положительный дискриминант, функция возвращает список из двух вещественных корней: [-1, 1]
.a = 1, b = 0, c = 0
, которые задают нулевой дискриминант, функция возвращает список из одного вещественного корня: [0]
a = 1, b = 0, c = 1
, которые задают отрицательный дискриминант, функция возвращает пустой список вещественных корней: []
Дополнительно. Для сильных духом и телом: Проверить работу функции при следующих ситуациях:
a = 1, b = 0, c = -1E-7
, функция возвращает список из двух вещественных корней: [-3E-4, 3E-4]
, с точностью до 4 знака.a = 1, b = -1E+10, c = -1
, функция возвращает список из двух вещественных корней: [-1E-10, 1E+10]
, с точностью до 11 знака.a = 1, b = 0, c = -1E-8
, функция возвращает список из одного вещественного корня: [0]
, с точностью до 7 знака.Всё просто! Возвести число в степень .
Научный формат записи вещественного числа (подробнее 1, подробнее 2)
1E+6
— один миллион: 1E-6
— одна миллионная: Почему на компьютере : объяснение
Два числа с плавающей точкой простыми операторами >
, >=
, <
, <=
==
сравнивать НЕЛЬЗЯ!
Одинаковыми числами с плавающей точкой считаются те, чей модуль разности меньше некоторого eps
(эпсилон).
let a = 0.1*3
let b = 0.3
console.log(a == b) // False
let eps = 1E-7
console.log(Math.abs(a - b) < eps) // True
eps = 1E-17
console.log(Math.abs(a - b) < eps) // False
// ---
a = 1.1
b = 1.15
eps = 1E-1
console.log(Math.abs(a - b) < eps) // True (1 знак после запятой совпал)
eps = 1E-2
console.log(Math.abs(a - b) < eps) // False (2 знака после запятой не совпали)
Таким образом число eps
задаёт точность сравнения.
На практике обычно берут eps = 1E-7
. Т.е. сравнение с точностью до седьмого знака после запятой.
а
? работа идёт с приведенным квадратным уравнениемЭто просто функция, которая возвращает 1
или -1
:
таким образом:
Просто реализуйте её в виде отдельной функции.