我需要得到这个结果:
(x - 30) (x - 20) (x - 10) + (x - 20)*(x - 10) + (x - 10)
而且,看起来,书面代码应该导致这一点,但是这个术语(x - 10)已经丢失了。有什么问题?
编码:
from sympy import symbols
x = symbols('x')
dig_list = [10, 20, 30]
poly_0 = x-dig_list[0]
for i in range(1, len(dig_list)):
poly_n = poly_0 * (x-dig_list[i])
# кажется, что при первом проходе poly_0 в summa должен давать искомое слагаемое:
summa = poly_0 + poly_n
poly_0 = poly_n
print(summa)
解释:
temp = 1- 我们从乘法的中性元素开始,因为 temp 只会相乘 (*=)。suma = 0- 我们从折叠的中性元素开始,因为 我们只会增加 suma (+=) 的值。for i in dig_list:- 不需要在循环中使用索引 - 我们不需要索引,只需要列表的元素。在循环本身中,只有
temp(*=) 和suma(+=)。summa 失去了原来的价值
也许你可以试试
请注意,我以相反的顺序传递初始数组,好吧,或者如果你不想,那么做
dig_list[::-1]好吧,或者如果你想在一行
在编程中,通常(大多数情况下)倒计时是从零开始的,记住这条规则。