729G04: Inlämningsuppgift Diskret matematik Instruktioner Dessa uppgifter utgör del av examinationen i kursen 729G04 Programmering och diskret matematik. Uppgifterna ska utföras individuellt och självständigt, dessutom skall du vara beredd att redovisa dina lösningar muntligt. Lösningar till uppgifterna lämnas in skriftligt till Annika Silvervarg i pappersform eller via e-post till annika.silvervarg@liu.se senast kl 8:00 den 25 november 2013. Eventuella frågor kring inlämningsuppgiften kan skickas till annika.silvervarg@liu.se. Svar på frågor skickas till kurslistan. Hjälpmedel: Du får använda kursmaterialet som hjälpmedel. Varje uppgift har ett antal poäng och det totala antalet poäng är 22. För betyget GODKÄND krävs minst 18 poäng. Vid betyget UNDERKÄND ges möjlighet till EN komplettering. Personliga parametrar I uppgifterna används ibland personliga parametrar enligt nedan: P1 = entalet i dagen du är född. P2 = tiotalet i dagen du är född, 0 om inget finns. Exempel: Om man är född den 29 december är P1 = 9 och P2 = 2. Om man är född den 3 december är P1 = 3 och P2 = 0. Om man är född den 10 december är P1 = 0 och P2 = 1. 1 (5)
Uppgift 1 (3 p) Drago föder upp drakar och han har 16 drakar. Drakarna har olika egenskaper. De kan vara en av typerna eld (E), vatten (V), luft (L) eller jord (J). De kan också ha 2 (2B) eller 4 ben (4B). En del drakar har vingar (Vi). I denna uppgift ska du definiera ett antal mängder som beskriver drakarna. Ingen av de mängder du definierar får vara tom. Följande gäller för de olika mängderna: Alla luftdrakar har vingar En del eld och vattendrakar har vingar Jorddrakar har inte vingar Alla jorddrakar har 4 ben Alla luftdrakar har 2 ben En del eld och vattendrakar har 2 och en del har 4 ben Låt D = {D1, D2, D3,..., D15, D16} där D1-D16 är drakar. a) Definiera mängderna E (elddrakar), L (luftdrakar), J (jorddrakar) och V (vattendrakar) Definiera sedan mängderna 2B (drakar med 2 ben) och 4B (drakar med 4 ben) Definiera till sist mängden Vi (drakar med vingar) (2 p) b) Rita ett venndiagram som visar alla mängderna. (1 p) Uppgift 2 (3 p) Uppgift 2 använder de mängder du definierat i uppgift 1. a) Beskriv mängden drakar som är elddrakar och har 4 ben. Skriv detta med den notation man använder i mängdläran. (1 p) b) Beskriv mängden drakar som har vingar men inte är luftdrakar. Skriv detta med den notation man använder i mängdläran. (1 p) c) Räkna ut mängden (4B \ J) (Vi 2B). (1 p) (Visa hur beräkningen görs stegvis) 2 (5)
Uppgift 3 (4 p) Uppgift 3 använder de mängder du definierat i uppgift 1. a) Räkna ut 2B 2B. (1 p) b) Ge ett exempel på en relation R1 på 2B som är symmetrisk. Motivera varför den är symmetrisk. (1 p) c) Ge ett exempel på en relation R2 på 2B som är transitiv. Motivera varför den är en transitiv. (1 p) d) Låt A = {x: x är en vokal}, ge ett exempel på en relation R3 på A som är en partialordning. Motivera varför den är en partialordning. Uppgift 4 (3 p) Uppgift 4a använder de mängder du definierat i uppgift 1. a) Ge exempel på en funktion på D som är surjektiv men inte injektiv. Motivera varför. (1 p) b) Betrakta funktionen f(x) = 4x - 4. Är den injektiv, surjektiv, och/eller bijektiv? Motivera varför. (2 p) 3 (5)
Uppgift 5 (6 p) Betrakta nedanstående graf där P1 och P2 är dina personliga parametrar. a) Beskriv grafens nodmängd och dess bågmängd. Bortse från vikterna. (1 p) b) Räkna ut graden av varje nod (1 p) c) Ge exempel på vilka bågar du skulle kunna ta bort för att göra grafen osammanhängande. Beskriv när en graf sägs vara osammanhängande? (1 p) d) Beskriv en krets som besöker minst 5 noder. Är det en elementär väg? Motivera varför (2p) e) Hitta ett minimalt uppspännande träd för denna graf (1 p) 4 (5)
Uppgift 6 (3 p) a) Skapa ett binärt sökträd för följande mängd { P1, -9, -1, -5, 6, P2, 18, 12, 16,}, där P1 och P2 är dina personliga parametrar. Om P2 är 6 så använd 8 istället (1p) Använd följande algoritm: Skapa ett tomt träd och peka på rotnoden Så länge det finns element kvar gör: Om noden saknar nyckel så Låt nyckeln vara först elementet Ta bort första elementet Peka på rotnoden Annars, om första elementet i listan < nyckeln i noden så Om det finns ett vänster träd så Annars Peka på noden i vänsterträdet Skapa en nod och lägg till som vänsterbarn och peka på noden i vänsterträdet Annars, om första elementet i listan >= nyckeln i noden så Om det finns ett höger träd så Annars Peka på noden i högerträdet Skapa en nod och lägg till som högerbarn och peka på noden i högerträdet b) Är trädet balanserat? Motivera varför/varför inte. (1 p) c) Traversera trädet inorder, preorder och postorder. Beskriv i ord vad som karakteriserar de olika resultaten. (1p) 5 (5)