addera två polynom listor
Hej!
jag har kört fast på en uppgift där man ska definera add_poly(p,q) för att addera två polynom till varandra
p= 2+x^2
q= -2+x+x^4
jag har gjort på det sättet
def add_poly(p,q)
for i in range(len(q))
print(q[i]+p[i])
men eftersom listorna inte har samma längd så blir det fel. har ni några tips på hut man kan gå tillväga?
Har du koefficienterna sparade i listor, d.v.s i exemplet
p = [2,0,1]
q = [-2,1,0,0,4]
?
Du kan ju t.ex lägga till nollor i den kortare listan, så p =[2,0,1,0,0].
Dr. G skrev:Har du koefficienterna sparade i listor, d.v.s i exemplet
p = [2,0,1]
q = [-2,1,0,0,4]
?
Du kan ju t.ex lägga till nollor i den kortare listan, så p =[2,0,1,0,0].
yes jag har dem i listor och jag har provat lägga nollor och det funkade men är osäker om man kan göra så :(
Det fungerar, men du är osäker på om man kan göra så?
I din funktion så kan du undersöka vilken lista som har flest element. Lägg sedan till ett lämpligt antal nollor i den kortare listan. Lägg ihop elementvis.
Dr. G skrev:Det fungerar, men du är osäker på om man kan göra så?
I din funktion så kan du undersöka vilken lista som har flest element. Lägg sedan till ett lämpligt antal nollor i den kortare listan. Lägg ihop elementvis.
Okej tack :D
man ska även testa om funktionerna längst ner funkar, jag har definierat eq_poly(q,p) men jag vet inte hur jag ska gå tillväga föratt avsluta den så koden körs
be5612 skrev:
yes jag har dem i listor och jag har provat lägga nollor och det funkade men är osäker om man kan göra så :(
Om det funkar så kan man göra så.
Vilka testdata har du använt för att veta att funktionen funkade? Ger funktionen rätt resultat med exempelvis dessa testdata:
add_poly([], []) # Borde ge []
add_poly([2,0,1], [-2,1,0,0,4]) # Borde ge [0, 1, 1, 0, 4]add_poly([-2,1,0,0,4], [2,0,1]) # Borde ge [0, 1, 1, 0, 4]
Dina funktioner borde bygga nya listor, och inte skriva ut någonting.
Laguna skrev:Dina funktioner borde bygga nya listor, och inte skriva ut någonting.
Håller med Laguna om det. När funktionerna returnerar listor blir de användbara och enklare att testa.
Ett enkelt sätt att testa är att använda assert, t ex:
assert add_poly([1], [-2]), [-1]
assert add_poly([2,0,1], [0,0,4]), [2,0,5]
assert add_poly([2,0,1], [-2,1,0,0,4]), [0,1,1,0,4]
assert add_poly([-2,1,0,0,4], [2,0,1]), [0,1,1,0,4]