daily pastebin goal
79%
SHARE
TWEET

Untitled

a guest Dec 7th, 2017 52 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Een binaire veelterm is een veelterm waarvan de coëfficiënten 0 of 1 zijn. Bewerkingen op de coëfficiënten van de veelterm worden steeds modulo 2 uitgevoerd. Programmeer het onderstaande in de klasse BinaireVeeltermBinaireVeelterm:
  2.  
  3. een constructor met één argument, namelijk een lijst gehele getallen. Deze getallen stellen de termen van de veelterm voor waarvoor de coëfficiënt verschillend is van 0. Zo wordt de veelterm x5+x4+1x5+x4+1 bijvoorbeeld voorgesteld door de lijst [4, 5, 0][4, 5, 0] (dezelfde getallen in een andere volgorde, stellen dezelfde veelterm voor. Een lege lijst stelt de nulveelterm voor. Let erop om uit de argumentlijst alle strikt negatieve getallen weg te filteren, en ook dubbels niet op te nemen in de veeltermvoorstelling.
  4. de methode __str__()__str__() die de veelterm afdrukt als som van niet-nultermen. Indien het om de nulveelterm gaat, wordt 00 weergegeven. De constante term wordt als 11 weergegeven (indien aanwezig). Alle andere termen worden voorgesteld als x**machtx**macht, indien de term aanwezig is in de veelterm. Op die manier wordt de veelterm met coëfficiëntenlijst [0, 5, 4][0, 5, 4] afgedrukt als x**5+x**4+1x**5+x**4+1. De termen worden in afdalende graad weergegeven.
  5. de operator "==" die aangeeft wanneer 2 veeltermen identiek zijn (let op: de volgorde van de originele coëfficiëntenlijst speelt hierbij geen rol!).
  6. een geschikte __repr__()__repr__()-methode.
  7. de methode get_graad()get_graad(). Deze methode geeft de graad van de veelterm als resultaat terug.
  8. de methode get_coef()get_coef(). Deze methode geeft de lijstvoorstelling van de veelterm als bitpatroon terug. Noemen we het resultaat de lijst cc, dan stelt c[i]c[i] de coëfficiënt van xixi voor. De lijst is dus 1 langer dan de graad van de veelterm, en bevat typisch zowel '1'-en als '0'-en (geheel). Voor de nulveelterm kiezen we als voorstelling de lijst [0][0].
  9. de binaire operator "+": berekent een nieuwe veelterm als som van de operandi.
  10. de binaire operator "*": berekent een nieuwe veelterm als het product van de operandi.
  11. Ter herinnering: nemen we de veeltermen a(x)a(x) en b(x)b(x) als
  12.  
  13. a(x)=∑Ni=0aixia(x)=∑i=0Naixi
  14. en
  15.  
  16. b(x)=∑Mi=0bixib(x)=∑i=0Mbixi
  17. (dus respectievelijk van de graad NN en MM), dan wordt hun product
  18.  
  19. c(x)=a(x)b(x)c(x)=a(x)b(x)
  20. gegeven door
  21.  
  22. c(x)=∑M+Nk=0(∑kl=0albk−l)xkc(x)=∑k=0M+N(∑l=0kalbk−l)xk
  23. De coëfficiënten van de veelterm
  24.  
  25. c(x)=∑M+Nk=0ckxkc(x)=∑k=0M+Nckxk
  26. van de graad M+NM+N worden dus gegeven door
  27.  
  28. ck=∑kl=0albk−l
RAW Paste Data
Top