我遇到了一個算法,它會將多項式從因子形式((x-1)(x+5)(x-9))
轉換爲一般形式(x^3 -5x^2 -41x +45)
。一開始我只有一個根如何將多項式轉換爲一般形式
例如列表:[1, -5, 9]
輸出應該係數的名單:[1, -5, -41, 45]
任何想法如何,我可以工作了這一點?
def przeksztalc(wielomian):
pierwiastki = []
for i in wielomian:
lista_pomocniacza = []
lista_pomocniacza.append(i * (-1))
lista_pomocniacza.append(1)
pierwiastki.append(lista_pomocniacza)
rezultat = dzielenie_na_pary(pierwiastki)
return rezultat
def dzielenie_na_pary(lista_z_pierwiastkami):
dlugosc = len(lista_z_pierwiastkami)
wynik = []
for i in range(dlugosc-1):
wynik = mnozenie_nawiasow(lista_z_pierwiastkami[i], lista_z_pierwiastkami[i+1])
lista_z_pierwiastkami[i+1] = wynik
return wynik[::-1]
def mnozenie_nawiasow(nawias1, nawias2):
wynik_mnozenia = [0] * (len(nawias1 + nawias2) - 1)
for i in range(len(nawias1)):
for j in range(len(nawias2)):
wynik_mnozenia[i+j] += nawias1[i] * nawias2[j]
return wynik_mnozenia
wielomian = [1, -5, 9]
print(przeksztalc(wielomian))
Stackoverflow是用來幫助你*認真地嘗試編寫程序並遇到問題。 –
但我沒有想法如何開始。我需要一些建議。 – xarix
從手工做幾個例子開始。你是做什麼?嘗試將您的手動算法變成軟件算法。 我會解決這個問題的方法是通過觀察每個單個係數如何來自根目錄。 (每個可以獨立計算) –