Diskreta strukturer –¨Ovning vecka 6 - Lunds Tekniska Högskola
Diskreta strukturer –¨Ovning vecka 6 - Lunds Tekniska Högskola
Diskreta strukturer –¨Ovning vecka 6 - Lunds Tekniska Högskola
Transform your PDFs into Flipbooks and boost your revenue!
Leverage SEO-optimized Flipbooks, powerful backlinks, and multimedia content to professionally showcase your products and significantly increase your reach.
<strong>Lunds</strong> <strong>Tekniska</strong> <strong>Högskola</strong><br />
Datavetenskap<br />
Lennart Andersson<br />
Övning<br />
EDAF10<br />
2012-10-04<br />
<strong>Diskreta</strong> <strong>strukturer</strong> – Övning <strong>vecka</strong> 6<br />
1 a. Förenkla (∀x.∃y.P (x, z))[z\g(x, y)].<br />
b. Förenkla (∀x.∃y.P (z, y))[z\y][y\z].<br />
c. Man kan visa att e[x\f][x\g] = e[x\f[x\g]] för alla aritmetiska uttryck e, f och g.<br />
Kontrollera att detta stämmer när e △ = x · y, f △ = x + 1 och g △ = 2 · x.<br />
2 a. Ange potensmängden för mängden {1} och dess kardinalitet.<br />
b. Ange potensmängden för mängden {∅} och dess kardinalitet.<br />
c. Ange ett element i P(P({0, 1})) med kardinaliteten 2.<br />
3 a. Bestäm alla partioneringar av mängden {a, b}.<br />
b. Bestäm alla partioneringar av mängden {a, b, c}.<br />
c. Hur många olika partioneringar av mängden {a, b, c, d} finns det? Försök beräkna<br />
detta utan att skriva upp alla partioneringar.<br />
d. Bestäm alla partioneringar av mängden ∅.<br />
4 Antag att A och B är ändliga mängder.<br />
a. Ange ett samband mellan |A ∪ B|, |A ∩ B|, |A| och |B|.<br />
b. Ange ett liknande samband där |A − B| ingår.<br />
c. Ange ett liknande samband där |P(A × B)| ingår.<br />
5 a. En operator ⋆ är kommutativ om a ⋆ b = b ⋆ a, associativ om (a ⋆ b) ⋆ c = a ⋆ (b ⋆ c) och<br />
idempotent om a ⋆ a = a för alla a, b och c. Är operatorn för att konkatenera språk,<br />
◦, kommutativ, associativ eller idempotent?<br />
b. Är L ⋆ och (L ⋆ ) ⋆ lika eller olika?<br />
c. Ge ett exempel på ett språk där L + = L ∗ .<br />
6 Konstruera reguljära uttryck som beskriver språket av alla strängar på {0, 1} som<br />
a. har 11 som ett prefix eller suffix.<br />
b. har 11 som en delsträng.<br />
c. har ett jämnt antal symboler och varannan symbol med början på det första är 0.<br />
Språket innehåller alltså ɛ, 00, 01, 0000, 0100, 0101, . . . .<br />
d*. har exakt en delsträng som är 11.<br />
e*. inte har delsträngen 11.<br />
7 a. Använd grammatiken<br />
expr ::= ’(’ expr ’)’ expr<br />
expr ::= ɛ<br />
för att härleda strängen ()(). Visa varje steg i härledningen och rita härledningsträdet.<br />
b. Gör samma sak för (()()).<br />
c*. Beskriv med vanligt språk vilka strängar som ingår i det språk som genereras av<br />
grammatiken.<br />
8 Härled strängen INT - INT - INT med följande grammatiker och rita härledningsträden.<br />
1
a.<br />
b.<br />
c.<br />
term ::= INT (’-’ INT )∗<br />
term ::= INT tail<br />
tail ::= ’-’term<br />
tail ::= ɛ<br />
term ::= head INT<br />
head ::= term’-’<br />
head ::= ɛ<br />
9 Följande grammatiker beskriver språk på alfabetet {a, b}. Konstruera reguljära uttryck<br />
som beskriver samma språk.<br />
a.<br />
b.<br />
S ::= aS<br />
S ::= b<br />
S ::= aT<br />
T ::= bT<br />
T ::= b<br />
10 Låt L = △ {ww | w ∈ {0, 1} ∗ } och låt G vara en grammatik med följande produktioner:<br />
S ::= W W<br />
W ::= (0 | 1) ∗<br />
Är L = L(G)? Svaret kräver en motivering.<br />
2
Lösningar<br />
1 a. (∀v 0 .∃v 1 .P (v 0 , g(x, y)))<br />
b. (∀x.∃v 0 .P (z, v 0 ))<br />
c. (x · y)[x\x + 1][x\2 · x] = ((x + 1) · y)[x\2 · x] = (2 · x + 1) · y<br />
(x · y)[x\(x + 1)[x\2 · x]] = (x · y)[x\2 · x + 1] = (2 · x + 1) · y<br />
2 a. {∅, {1}}, 2<br />
b. {∅, {∅}}, 2<br />
c. {∅, {0}}<br />
3 a. {{a, b}}, {{a}, {b}}<br />
b. {{a, b, c}}, {{a, b}, {c}}.{{a}, {b, c}}, {{a, c}, {b}}, {{a}, {b}, {c}}<br />
c. 15<br />
d. ∅<br />
4 a. |A ∪ B| = |A| + |B| − |A ∩ B|.<br />
b. |A − B| = |A| − |A ∩ B|.<br />
c. |P(A × B)| = 2 |A|·|B|<br />
5 a. ◦ är associativ men inte kommutativ eller idempotent.<br />
b. L ⋆ och (L ⋆ ) ⋆ är alltid samma språk.<br />
c. Detta är sant för alla språk som innehåller den tomma strängen. Det minsta språket med<br />
denna egenskap är {ɛ}.<br />
6 a. (11(0|1) ⋆ )|((0|1) ⋆ 11)<br />
b. (0|1) ⋆ 11(0|1) ⋆<br />
c. (0(0|1)) ∗<br />
d. (0|10) ⋆ 11(01|0) ⋆<br />
e. 0 ⋆ (100 ⋆ ) ⋆ (1|ɛ)<br />
7 a.<br />
expr<br />
expr => ( expr ) expr =><br />
( ) expr =><br />
() ( expr ) expr =><br />
() () expr => () ()<br />
(<br />
expr<br />
ɛ<br />
)<br />
(<br />
expr<br />
expr<br />
)<br />
expr<br />
ɛ<br />
ɛ<br />
3<br />
expr
(<br />
expr<br />
)<br />
expr<br />
(<br />
expr<br />
ɛ<br />
)<br />
(<br />
expr<br />
expr )<br />
expr<br />
ɛ<br />
(<br />
expr<br />
ɛ<br />
)<br />
expr<br />
ɛ<br />
b.<br />
ɛ<br />
expr<br />
ɛ<br />
expr =><br />
( expr ) expr=> ( expr )=><br />
( (expr) expr ) =><br />
( () expr )=> ( () (expr) expr)=><br />
(() (expr) )=> ( () () )<br />
(<br />
(<br />
(<br />
(<br />
expr<br />
expr ɛ<br />
expr<br />
expr )<br />
) (<br />
expr<br />
expr<br />
expr expr )<br />
expr<br />
)<br />
)<br />
expr<br />
expr ɛ<br />
ɛ<br />
ɛ<br />
(<br />
expr ɛ<br />
)<br />
expr ɛ<br />
ɛ<br />
ɛ<br />
c. Mängden av alla strängar med korrekt matchade parenteser på det sätt som kan förekomma<br />
i aritmetiska uttryck.<br />
term<br />
8 a. term => INT - INT - INT<br />
INT<br />
-<br />
INT<br />
-<br />
INT<br />
b.<br />
term<br />
INT<br />
tail<br />
1<br />
term => INT tail=> INT<br />
- term => INT - INT tail =><br />
INT - INT - term => INT - INT - INT<br />
tail=> INT - INT - INT<br />
- term<br />
INT tail<br />
- term<br />
1<br />
INT<br />
tail<br />
ɛ<br />
c. term => head INT => term - INT => head INT - INT =><br />
term - INT - INT => head INT - INT - INT => INT - INT - INT<br />
9 a. a ∗ b<br />
b. ab ∗ b<br />
10 Svaret är nej. Strängen 01 tillhör L(G) men ej L.<br />
2<br />
4