Код: Выделить всё
a_1 * x**n, a_2 * x**(n-1), a_3 * x**(n-2), ... a_n * x ** 0
Код: Выделить всё
a_n
Однако я пишу это на C++, потому что весь мой математический класс оскорбляет меня за использование Python для решения этой проблемы. проблема. Сейчас я застрял в функции факторизации числа в том смысле, что она должна возвращать массив. Я хочу написать это на C++, все это всего лишь контекст.
Код: Выделить всё
def factorize(n):
n = abs(n)
highest = int(n**0.5 + 1)
ret = []
for i in range(1, highest):
if n % i == 0:
ret.append(i)
ret.append(n // i)
ret.append(-i)
ret.append(-n // i)
return ret
def FRRT(polynomial):
leading = polynomial[-1]
constant = polynomial[0]
leading_factors = factorize(leading)
constant_factors = factorize(constant)
roots = []
for i in leading_factors:
for j in constant_factors:
roots.append(j / i)
solutions = []
for root in roots:
ans = 0
for exponent, coefficient in enumerate(polynomial):
ans += coefficient * root**exponent
if round(ans, 3) == 0:
solutions.append(root)
solutions = set(solutions)
solutions = list(solutions)
for i in solutions:
print(f"X: {i}, Y = 0")
FRRT([5, -23, 35, -17, -4, 4])
Подробнее здесь: https://stackoverflow.com/questions/791 ... -all-ratio