Форум сайта python.su
def solve_quad(b, c):
D = b**2-4*c
x1 = (- (b)) + D**0.5)/2
x2 = (- (b)) - D**0.5)/2
print (x1,x2)
return x1,x2
from numpy import allclose
variants = [{'b': 4.0, ‘c’: 3.0},
{'b': 2.0, ‘c’: 1.0},
{'b': 0.5, ‘c’: 4.0},
{'b': 1e10, ‘c’: 3.0},
{'b': -1e10, ‘c’: 4.0},]
for var in variants:
x1, x2 = solve_quad(**var)
print(allclose(x1*x2, var))
вывод
-1.0 -3.0
True
-1.0 -1.0
True
(-0.2499999999999999+1.984313483298443j) (-0.2500000000000001-1.984313483298443j)
True
0.0 -10000000000.0
False
0.0 -10000000000.0
False
как дискриминант которая большая величина приблизить (вне размерности питона) приблизить чтобы посчитал 2 последних b и с
Офлайн
my solution
# импортируем модуль, содержащий функцию для # извлечения квадратного корня import math # вводятся нижние и верхние границы для # коэффициентов a, b, c a1 = int(input('a1: ')) a2 = int(input('a2: ')) b1 = int(input('b1: ')) b2 = int(input('b2: ')) c1 = int(input('c1: ')) c2 = int(input('c2: ')) # создаются объекты-диапазоны # +1 позволяет включить в диапазон верхнюю границу a = range(a1, a2 + 1) b = range(b1, b2 + 1) c = range(c1, c2 + 1) # перебираются все возможные сочетания коэффициентов # i - текущий элемент из диапазона a # j - текущий элемент из диапазона b # k - текущий элемент из диапазона c for i in a: if i == 0: # если i равен 0, то уравнение не квадратное, а линейное # поэтому решать уравнение не надо, # вместо этого выполняется переход к следующей итерации цикла continue for j in b: for k in c: # выводятся текущие значения коэффициентов a, b, c print(i, j, k, end=' ') # вычисляется дискриминант D = j * j - 4 * i * k if D >= 0: # если дискриминант больше нуля или равен ему, # то вычисляются корни квадратного уравнения x1 = (-j - math.sqrt(D)) / (2 * i) x2 = (-j + math.sqrt(D)) / (2 * i) # выводятся корни, округленные до двух знаков после точки print('Yes', round(x1, 2), round(x2, 2)) else: # если дискриминант меньше нуля, то корней нет print('No')
Офлайн
romankrvВ смысле нет? Есть корни, принадлежащие множеству комплексных чисел, - комплексные корни. Даже в средней школе говорят “действительных корней нет”, а не вообще корней нет. Когда в вуз поступишь, там тебе расскажут, что, оказывается, есть ещё поле комплексных чисел, которое включает в себя поле действителных чисел.# если дискриминант меньше нуля, то корней нет
Отредактировано py.user.next (Окт. 10, 2018 01:37:21)
Офлайн
romankrvво первых корни есть
my solution
Офлайн