26.01.2013 Views

Matematiske foruds tninger 1 Udsagn

Matematiske foruds tninger 1 Udsagn

Matematiske foruds tninger 1 Udsagn

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Matematiske</strong> <strong>foruds</strong> <strong>tninger</strong><br />

Vi begynder med at repetere nogle matematiske <strong>foruds</strong> <strong>tninger</strong> | alle knyttet til begreberne<br />

udsagn og m ngder. Det meste er formentligt velkendt, men de kvanti cerede<br />

udtryk er nok nyt stof for de este.<br />

Dern st behandles induktionsbeviser, som spiller en stor rolle i de f lgende kapitler.<br />

Til sidst introduceres m ngdekonstruktionerne potensm ngde og m ngdeprodukt, som<br />

nok er ukendte for de este, og vi ser pa, hvorledes datatypen Set kan implementeres.<br />

1 <strong>Udsagn</strong><br />

Lad os kort repetere, hvad et udsagn er:<br />

De nition 1<br />

Et udsagn er en s tning, som enten er sand eller falsk.<br />

Eksempel<br />

Betragt f lgende s <strong>tninger</strong>:<br />

a) Jorden er en planet<br />

b) Manen er lavet af gr n ost<br />

c) Hvad er klokken?<br />

d) Din l rer er klog.<br />

Af disse er kun a) og b) udsagn | a) er et sandt udsagn, mens b) er falsk. c) er ikke et<br />

udsagn, men derimod et sp rgsmal. d) er heller ikke etudsagn (og da slet ikke etfalsk<br />

udsagn!), da begrebet 'klog' ikke erviderevelde neret.<br />

Som bekendt kan man opbygge nye udsagn ud fra gamle. Normalt arbejder man med<br />

f lgende operationer:<br />

^ konjunktion eller 'og'<br />

_ disjunktion eller 'eller'<br />

: negation eller 'ikke'<br />

) implikation eller 'medf rer'<br />

, biimplikation eller 'ensbetydende'.<br />

Sandhedsv rdien af et sammensat udsagn afh nger af de enkelte deludsagn efter f lgende<br />

sandhedstabel:<br />

A B A ^ B A _ B :A :B A ) B A , B<br />

S S S S F F S S<br />

S F F S F S F F<br />

F S F S S F S F<br />

F F F F S S S S<br />

1


hvor S betyder 'sand' og F 'falsk'.<br />

Den eneste operation, som kr ver en n rmere forklaring, er implikationen:<br />

En far siger til sin s n: "Hvis du ikke spiser din spinat, sa slar jeg dig." Dette kan skrives<br />

som udsagnet A ) B, hvor udsagnene A og B er henholdsvis "S nnen spiser ikke sin<br />

spinat" og "Faderen slar s nnen".<br />

Lad os unders ge de re mulige tilf lde:<br />

Hvis bade A og B er sande, sa spiser s nnen ikke sin spinat, og faderen slar ham. Faderen<br />

talte altsa sandt, og det sammensatte udsagn A ) B er sandt.<br />

Hvis A falsk og B er sand, sa spiser s nnen sin spinat, men faderen slar ham alligevel.<br />

Det virker maske uretf rdigt, indtil man husker, at s nnen kunne blive slaet af andre<br />

arsager |maske spiste han ikke sin rosenkal.<br />

Hvis bade A og B er falske, sa spiser s nnen sin spinat, og faderen slar ham ikke. Faderen<br />

talte ogsa sandti dette tilf lde.<br />

Endelig hvis A er sand, og B falsk, sa spiser s nnen ikke sin spinat, men slipper alligevel<br />

for at fa bank. Faderen har altsa ikke staet ved sin trussel, og udsagnet A ) B er falsk.<br />

Der g lder en lang r kke formler for regning med disse udsagn. Vi vil ikke skrive dem<br />

alle op, men kun n jes med et par enkelte, nemlig de Morgans love:<br />

S tning 2<br />

Lad A og B v re udsagn. Sa g lder:<br />

:(A ^ B) =:A _:B<br />

og tilsvarende<br />

:(A _ B) =:A ^:B<br />

Bevis<br />

Vi n jes med at bevise den f rste formel. Ideen er at lave en sandhedstabel, hvori<br />

vi opstiller alle muligheder for sandhedsv rdierne af A og B, og dern st beregner<br />

sandhedsv rdierne for venstre- og h jresiden af formlen. Hvis disse altid er ens,<br />

har vi bevist formlen. Undervejs kan man i tabellen medtage forskellige mellemregninger:<br />

A B A ^ B :(A ^ B) :A :B :A _:B<br />

S S S F F F F<br />

S F F S F S S<br />

F S F S S F S<br />

F F F S S S S<br />

Vi ser, at de to s jler i tabellen for udsagnene :(A ^ B) og :A _:B er ens, og<br />

dette beviser formlen.<br />

Den anden formel kan bevises tilsvarende.<br />

2


Et abent udsagn er et udsagn, hvori der indgar en eller ere ubekendte variabler. Et<br />

eksempel pa etabent udsagn er x>3, hvori vi har variablen x.<br />

Til et abent udsagn h rer en grundm ngde, som er m ngden af de v rdier, hvori x kan<br />

ligge, og en l sningsm ngde, som bestar af de elementer fra grundm ngden, som g r<br />

udsagnet sandt.<br />

Eksempel<br />

Betragt f lgende abne udsagn: x 2 < 30. Som regel vil grundm ngde fremga af problemstillingen,<br />

men her v lger vi den selv til at v re m ngden af alle naturlige tal,<br />

f::: �;3� ;2� ;1� 0� 1� 2� 3� 4�:::g.<br />

L sningsm ngden ses at v re f;5� ;4� ;3� ;2� ;1� 0� 1� 2� 3� 4� 5g.<br />

Opgave 1.1 Opskriv en sandhedstabel for udsagnet<br />

(A _ B) ) ((A ^ B) _ B)<br />

Opgave 1.2 Bevis den anden formel i s tning 2.<br />

Opgave 1.3 Lad A, B og C betegne udsagnene "Det regner i dag", "Solen skinner i<br />

dag"og"Deteretgodtvejr i dag".<br />

Skriv danske s <strong>tninger</strong>, der svarer til nedenstaende udsagn:<br />

a) A _ B b) :A c) :A ^:B<br />

d) B ) C e) A , B f) :(A , B)<br />

Opgave 1.4 Skriv udsagn, som svarer til nedenstaende danske s <strong>tninger</strong>. De ner selv<br />

nogle grundudsagn:<br />

a) Hvis jeg drikker ka e, sa far jeg ondt i maven.<br />

b) Hvis jeg farondtimaven, sa har jeg drukket ka e.<br />

c) Jeg har ikke ondtimaven.<br />

d) Jeg kan godt lide at drikke bade ka e og te.<br />

e) Hvis jeg drikker te, sa far jeg ikke ondt i maven.<br />

f) Det er ukorrekt at pasta, at tedrikning giver mig ondt i maven.<br />

3


2 M ngder<br />

Et af de mest fundamentale begreber indenfor matematikken er m ngden. Da vi i forbindelse<br />

med adskillige algoritmer far brug for m ngder, repeterer vi her de vigtigste<br />

begreber indenfor m ngdel ren:<br />

De nition 3<br />

En m ngde er en samling af objekter, kaldet elementer.<br />

Hvis objektet x er element i m ngden A, sa skriver vi x 2 A.<br />

Hvis x ikke er element iA, sa skrives x =2 A.<br />

Eksempel<br />

Man angiver ofte en m ngde pa listeform, dvs. ved en opremsning af elementerne:<br />

A = f1� 2� 3� 4� 5� 6� 7� 8� 9g<br />

Her g lder udsagnene 3 2 A, 0=2 A og 9 2 A.<br />

Nogle vigtige talm ngder er<br />

De naturlige tal: N = f1� 2� 3� 4� 5�:::g<br />

N 0 = f0� 1� 2� 3� 4� 5�:::g<br />

De hele tal: Z = f:::; 3� ;2� ;1� 0� 1� 2� 3�:::g<br />

De rationale tal: Q = f:::; 3 2<br />

22<br />

� ; � ;1� 0� 2 3 7 :::g<br />

De reelle tal: R = f;2� 2<br />

3� p 2� :::g<br />

Symbolerne for disse talm ngder stammer oprindeligt fra tysk: die naturliche Zahlen,<br />

die Zahlen, die Quotienten og die reellen Zahlen.<br />

En anden made at angive m ngder pa er vha. den sakaldte m ngdebygger-notation:<br />

Eksempel<br />

M ngden B = f3� 4� 5� 6� 7g kan opskrives som<br />

B = fx 2 N j x 3 ^ x 7g<br />

og l ses som:<br />

B bestar af de naturlige tal x, som opfylder udsagnet x 3 _ x 7.<br />

Nogen gange misbruges m ngdebygger-notationen, f.eks. som i<br />

fx j x 3 ^ x 7g<br />

hvor vi ikke angiver grundm ngden. Dette er lidt farligt, for er x her et naturligt,<br />

et rationelt eller et reelt tal? Derfor: Angiv altid grundm ngden, med mindre det er<br />

indlysende ud fra sammenh ngen, hvad den er.<br />

Indenfor datalogien far vi ofte brug for m ngden af hele tal mellem to givne tal:<br />

4


De nition 4<br />

Lad a og b v re hele tal. Sa de nerer vi m ngden [a::b] som<br />

[a::b] =fx 2 Z j a x bg<br />

Tilsvarende har vi<br />

[a::] =fx 2 Z j a xg<br />

[::b] =fx 2 Z j x bg<br />

Et vigtigt princip indenfor m ngdel ren er, at en m ngde er bestemt ved sine elementer.<br />

Dette betyder, at enhver operation mellem m ngder kan de neres vha. m ngdernes<br />

elementer.<br />

For at undga komplikationer antager vi fra nu af, at alle mulige elementer i vores m ngder<br />

ligger i en stor, underliggende m ngde, U | ofte kaldet universet, den universelle<br />

m ngde eller grundm ngden.<br />

De nition 5<br />

To m ngder A og B er ens, skrevet A = B, hvis og kun hvis der for alle elementer<br />

x i grundm ngden U g lder, at<br />

x 2 A , x 2 B<br />

M ngden A er en delm ngde af m ngden B,hvis og kun hvis der for alle elementer<br />

x i U g lder, at<br />

x 2 A ) x 2 B<br />

Vi skriver A B.<br />

Bem rk, at man ofte anvender symbolet i stedet for . Omvendt anvendes ogsa<br />

ofte som betegnende gte delm ngde:<br />

A B , (A B ^ A 6= B)<br />

Eksempel<br />

Talm ngderne fra f r opfylder<br />

se gur 1.<br />

N N 0 Z Q R<br />

En prominent m ngde er den tomme m ngde, � = fg. Den tomme m ngde er en<br />

delm ngde af enhver m ngde.<br />

Vi kan nu de nere forskellige operationer pa m ngder:<br />

5


Figur 1<br />

De nition 6<br />

Lad A og B v re to m ngder. Vi de nerer da f lgende m ngder<br />

F llesm ngden mellem A og B: A \ B = fx 2 U j x 2 A ^ x 2 Bg.<br />

Foreningsm ngden mellem A og B: A [ B = fx 2 U j x 2 A _ x 2 Bg.<br />

Di erensen mellem A og B: A ; B = fx 2 U j x 2 A ^ x =2 Bg.<br />

Komplement rm ngden til A: A = U ; A = fx 2 U j x =2 Ag<br />

Man kan illustrere disse begreber vha. Venn-diagrammer |se gur 2.<br />

Bem rk, at operationerne \, [ og komplement rm ngde n je svarer til de logiske<br />

operationer ^, _ og :.<br />

Eksempel<br />

Betragt universet U = f0� 1� 2� 3� 4� 5� 6� 7� 8� 9g og m ngderne A og B bestemt ved A =<br />

f2� 4� 6� 7� 8g og B = f1� 2� 3� 4� 9g. Sa fas<br />

A \ B = f2� 4g A [ B = f1� 2� 3� 4� 6� 7� 8� 9g<br />

A ; B = f6� 7� 8g B ; A = f1� 3� 9g<br />

A = f0� 1� 3� 5� 9g B = f0� 5� 6� 7� 8g<br />

| se gur 3<br />

Endelig en sidste de nition:<br />

De nition 7<br />

To m ngder, A og B, kaldes disjunkte, hvis A \ B = �.<br />

6


Figur 2<br />

Der g lder en hel r kke regneregler for m ngdeoperationerne. Vi vil kun omtale m ngdeversionen<br />

af de Morgans regler:<br />

S tning 8<br />

a) A [ B = A \ B c) A \ B = A [ B<br />

Bevis<br />

Vi beviser kun regel a:<br />

x 2 A [ B , :(x 2 A [ B) , :((x 2 A) _ (x 2 B)) ,<br />

:(x 2 A) ^:(x 2 B) , x 2 A ^ x 2 B , x 2 A \ B<br />

Bem rk, at vi her brugte de Morgans regel<br />

:(x _ y) ,:x ^:y<br />

7


fra logikken.<br />

Figur 3<br />

Opgave 2.1 Betragt universet U = f0� 1� 2� 3� 4� 5� 6� 7� 8� 9g med delm ngderne A =<br />

f1� 2� 7g, B = fx 2 U j x>6g og C = f3� 5� 8g.<br />

a) Opskriv B pa listeform.<br />

b) Lav etVenn-diagram over U, A, B og C, som pa gur 3.<br />

c) Bestem A [ B, A \ C, A ; C, A ; B, B ; A, C.<br />

d) Er A og C disjunkte.<br />

Opgave 2.2 Den symmetriske m ngdedi erens, A B de neres som<br />

A B = fx 2 U j x 2 A [ B ^ x =2 A \ Bg<br />

a) Lav etVenn-diagram som pa gur 2, der viser A B.<br />

b) Vis, at A B =(A ; B) [ (B ; A)<br />

c) Find formler for A A og A � og bevis disse.<br />

d) Bevis, at A \ (B C) =(A \ B) (A \ C)<br />

e) Hvad skal der g lde for A og B, for at A B = A [ B?<br />

f) Hvilken logisk operation svarer til?<br />

Opgave 2.3 Find en m ngde, som er disjunkt med sig selv. (Der ndes faktisk en!)<br />

Opgave 2.4 Kardinaliteten af en m ngde er de neret som antallet af elementer i m ngden.<br />

(Vi <strong>foruds</strong> tter, at m ngden ikke er uendelig stor). Man anvender ofte notationen<br />

jAj for kardinaliteten af m ngden A.<br />

a) Hvad er j�j?<br />

b) Vis, at jA [ Bj = jAj + jBj;jA \ Bj. BrugerVenn-diagram.<br />

c) Hvornar g lder, at jA [ Bj = jAj + jBj ?<br />

8


3 Kvanti cerede udtryk<br />

Vi vil i det f lgende ofte fa brug for kvanti cerede udtryk. Der ndes adskillige af disse,<br />

men vi vil kun omtale alkvantoren, eksistenskvantoren og summationssymbolet.<br />

Lad os betragte det abne udsagn x 2 0 med grundm ngde N. Dette udsagn er jo sandt<br />

for alle naturlige tal x, ogvikan derfor sige, at for alle naturlige tal x g lder, at x 2 0.<br />

Denne s tning formaliseres til det kvanti cerede udsagn:<br />

8x 2 N : x 0<br />

Vi har her vores f rste eksempel pa enalkvantor.<br />

Generelt opbygges en alkvantor pa f lgende made:<br />

8x 2 A : p(x)<br />

hvor A er en m ngde og p(x) er et abent udsagn i variablen x. Dette udsagn er sandt,<br />

netop nar p(x) er sandt for alle x 2 A.<br />

Variablen x kaldes ofte for en bundet variabel, idet den ikke kan antage nogen v rdi<br />

'udenfor' udsagnet.<br />

Eksempel<br />

<strong>Udsagn</strong>et 8x 2 N : x 6= x + 1 er sandt, da alle tal opfylder udsagnet x 6= x +1.<br />

<strong>Udsagn</strong>et 8x 2 [1::10] : x > 7 er falsk, da der jo er tal i m ngden [1::10], som ikke<br />

opfylder udsagnet x>7, f.eks. tallet 1.<br />

Eksistenskvantoren er en anden logisk kvantor. Lad os introducere denne ved et par<br />

eksempler:<br />

Eksempel<br />

<strong>Udsagn</strong>et "Der ndes et naturligt tal x, som opfylder, at x 2 =4"kan skrives som<br />

9x 2 N : x 2 =4<br />

Der er intet krav om, at der kun skal ndes netop et x, som opfylder betingelsen |<br />

saledes er f lgende kvanti cerede udsagn sandt:<br />

9x 2 Z : x>5<br />

Den sidste type kvanti cerede udtryk, vi skal besk ftige os med, er summationer. Her<br />

er hele det kvanti cerede udtryk ikke et udsagn, men derimod et tal:<br />

Betragt udtrykket<br />

5X<br />

i=1<br />

i 2<br />

9


Dette tal beregnes som f lger: For ethvert tal i mellem 1 og 5 (inklusive) beregnes tallet<br />

i 2 . Derefter adderes alle disse tal:<br />

10X<br />

i 2 =1 2 +2 2 +3 2 +4 2 +5 2 =1+4+9+16+25=55<br />

i=1<br />

Lidt handfast kan man opfatte en summation som en for-l kke:<br />

sum = 0�<br />

for ( int i =1, i 0<br />

e) 9x 2 [;10:: ; 2] : x 2 =25<br />

f) 8x 2 Z : x 2 =(;x) 2<br />

g) 9x 2 N : x =2x +1<br />

h) 9x 2 R : x =2x +1<br />

i) 8x 2 Z : :(x =2x +1)<br />

Opgave 3.2 Udtryk nedenstaende s <strong>tninger</strong> vha. kvantorer:<br />

a) For alle naturlige tal x g lder, at x 6= x +1.<br />

b) Der ndes et tal, som er st rre end 8.<br />

c) For alle naturlige tal x kan vi ndet et naturligt tal y, saledes at x 2 = y.<br />

d) Der ndes ingen naturlige tal x opfyldende, at x 2 =5.<br />

e) Alle naturlige tal er rationale.<br />

Opgave 3.3 Beregn f lgende summer<br />

a)<br />

10X<br />

i=1<br />

i b)<br />

10X<br />

x=1<br />

x c)<br />

3X<br />

i=1<br />

i ; 1 d)<br />

10<br />

X10<br />

i 2<br />

i=1<br />

e)<br />

10X<br />

i=1<br />

5 f)<br />

8X<br />

i=1<br />

x


4 Induktionsbeviser<br />

En indenfor datalogien meget anvendt bevisteknik er induktionsbeviset. Lad os illustrere<br />

denne bevisform med et eksempel:<br />

nX<br />

Antag, at vi skal bevise formlen<br />

i=1<br />

i =<br />

n(n +1)<br />

2<br />

for alle naturlige tal n.<br />

En naturlig strategi er at bevise formlen for n =1,n =2,n =3,... | dette kan g res<br />

ved simpel udregning:<br />

1X<br />

2X<br />

i=1<br />

3X<br />

i=1<br />

i=1<br />

i =1=<br />

1 2<br />

2<br />

i =1+2=3=<br />

2 3<br />

2<br />

i =1+2+3=6=<br />

3 4<br />

2<br />

men denne virker ikke i praksis, da vi skal bevise uendeligt mange specialtilf lde. I<br />

stedet anvender vi induktion:<br />

Vi beviser f rst formlen for den mindste v rdi af n, dvs. n = 1. Igen kan dette g res<br />

ved simpel udregning:<br />

1X<br />

i=1<br />

i =1=<br />

1 2<br />

2<br />

Dern st beviser vi, at hvis formlen g lder for det naturlige tal n, sa g lder den ogsa<br />

for n +1.Saviantager altsa, at formlen<br />

nX<br />

i=1<br />

i =<br />

n(n +1)<br />

2<br />

g lder, og skal ud fra denne bevise, at<br />

n+1 X<br />

i=1<br />

i =<br />

(n + 1)(n +2)<br />

2<br />

g lder. (Bem rk, at dette er den oprindelige formel, hvor vi har erstattet alle forekomster<br />

af n med n +1.)<br />

Dette g res som f lger:<br />

n+1 X<br />

i=1<br />

i =<br />

nX<br />

i=1<br />

i +(n +1)=<br />

n(n +1)<br />

2<br />

+(n +1)= (n2 + n)<br />

2<br />

11<br />

+ 2n +2<br />

2<br />

=


n 2 + n +2n +1<br />

2<br />

= n2 +3n +1<br />

2<br />

= (n + 1)(n +2)<br />

2<br />

(Den sidste ligning kan lettest ses ved at regne bagl ns.)<br />

Vi har nu bevist formlen for alle naturlige tal n. Hvorfor nu det? Jo, antag, at vi skal<br />

argumentere for, at formlen er korrekt for f.eks. n = 7. Men vi har direkte bevist, at<br />

formlen er sand for n = 1, og i anden del af beviset argumenterede vi for, at hvis formlen<br />

gjaldt for n, sa gjaldt den ogsa forn + 1. Dvs. formlen g lder for n = 2, og dermed for<br />

n =3,og dermed for n =4,og dermed for n =5,og dermed for n =6,og dermed for<br />

n =7.<br />

Pa tilsvarende made kan det ses, at formlen g lder for alle andre naturlige tal.<br />

Lad os formalisere denne bevisteknik. Vi nsker at bevise, at det abne udsagn P (n) er<br />

sandt for alle v rdier af n. Dette g res i to trin: Induktionsstarten, hvor vi beviser P (1),<br />

og induktionsskridtet, hvor vi beviser implikationen P (n) ) P (n +1).<br />

S tning 9<br />

Hvis udsagnene P (1) og P (n) ) P (n + 1) g lder, sa g lder<br />

8n 2 N : P (n)<br />

Induktionsbeviser ndes i ere varianter, saledes beh ver man ikke at starte med n =1,<br />

men kan starte med en vilkarlig v rdi af n (udsagnet g lder dog kun i dette tilf lde<br />

for v rdier af n, som er mindst lig med startv rdien). I en anden variant antager man<br />

i induktionsskridtet, at P (j) g lder for alle j n.<br />

Ofte er det trivielt at gennemf re induktionsstarten, mens induktionsskridtet kr ver<br />

normalt meget mere snilde.<br />

Eksempel<br />

Lad os bevise, at for ethvert helt tal n gar 3 op i n 3 +2n.<br />

Vi nedskriver f rst det udsagn, der skal bevises:<br />

P (n) : 3gar op i n 3 +2n<br />

Induktionsstarten er nem: For n =1ern 3 +2n =3,og3gar op i 3.<br />

I selve induktionsskridtet nedskriver f rst, hvad vi kan antage, og dern st, hvad vi skal<br />

bevise:<br />

Antagelse: P (n) : 3gar op i n 3 +2n<br />

Skal bevise: P (n +1): 3gar op i (n +1) 3 +2(n +1)<br />

Vores eneste mulighed for at komme videre er at reducere udtrykket (n +1) 3 +2(n +1)<br />

og habe, at n 3 +2n dukker op:<br />

(n +1) 3 +2(n +1)=n 3 +3n 3 +3n +1+2n +1=(n 3 +2n)+3n 2 +3n +1<br />

Men if lge induktionshypotesen P (n) gar3opin 3 +2n, og3gar ogsa op i de andre led<br />

3n 3 ,3n og 3. Vi kan derfor konkludere, at 3 gar op i (n +1) 3 +2(n + 1), og vi har altsa<br />

bevist implikationen P (n) ) P (n +1).<br />

Opgave 4.1 Bevis, at 1 + 3 + :::+(2n ; 1) = n 2 .<br />

12


Opgave 4.2 Vis, at for alle reelle tal a 6= 1 g lder:<br />

X<br />

i=0<br />

n = an+1 ; 1<br />

a ; 1<br />

Hvordan ser formlen ud for a =1?<br />

Opgave 4.3 Lad funktionen f v re de neret ved f lgende:<br />

a) f(1) = 1<br />

b) For n>1erf(n) =f(n ; 1) + n<br />

Beregn f(1)�f(2)�f(3)�f(4) og f(5).<br />

Bevis ved induktion, at f(n) =n(n +1)=2.<br />

Opgave 4.4 Lad funktionen f v re de neret ved f lgende:<br />

a) f(1) = 1<br />

b) For n>1erf(n) =2 f(n ; 1) + 1<br />

Beregn f(1)�f(2)�f(3)�f(4) og f(5).<br />

Bevis ved induktion, at f(n) =2 n ; 1.<br />

13


5 Flere m ngdeoperationer<br />

Vi skal nu se, hvorledes man kan skabe nye m ngder ud fra gamle:<br />

De nition 10<br />

Lad A og B v re m ngder. Produktm ngden A B de neres som m ngden af<br />

ordnede par:<br />

A B = f(a� b) j a 2 A ^ b 2 Bg<br />

Naturligvis kan man ogsa tageproduktet af tre eller ere m ngder:<br />

A B C = f(a� b� c) j a 2 A ^ b 2 B ^ c 2 Cg<br />

Produktet af en m ngde med sig selv opskrives ofte vha. potensnotationen:<br />

A 2 = A A og A 3 = A A A<br />

Eksempel<br />

Fra geometrien kendes tallinien R, planen R 2 og rummet R 3 .<br />

Fra relativitetsteorien kendes(?) den re-dimensionale rum-tid R 4<br />

Elementerne i produktm ngderne A n | de sakaldte n-tupler | spiller en stor rolle<br />

indenfor programmering | her kaldes et sadant element for et array. Lad os se pa<br />

sammenh ngen:<br />

For et naturligt tal n de nerer vi m ngden [n] =f0� 1� 2�::: �n; 1g.<br />

Et n-tupel (a 0�a 1�a 2�:::a n;1) kan da opfattes som den funktion [n] ! A, som afbilder<br />

tallet i 2 [n] i elementet a i.<br />

Faktisk kan vi opfatte m ngden A n som m ngden af funktioner [n] ! A.<br />

En anden interessant konstruktion er potensm ngden for en m ngde.<br />

De nition 11<br />

Potensm ngden, P(A), af m ngden A, er m ngden af samtlige delm ngder af A.<br />

Man kan ogsa komme ud for notationen 2 A for potensm ngden af A.<br />

Eksempel<br />

Lad A = fx� y� zg. SaerP(A) m ngden bestaende af de 8 elementer:<br />

�� fag� fbg� fcg� fa� bg� fa� cg� fb� cg� fa� b� cg<br />

Kan man lide m ngdeklammer, sa kan vi skrive<br />

P(A) =f�� fag� fbg� fcg� fa� bg� fa� cg� fb� cg� fa� b� cgg<br />

14


Igen kan vi identi cere P(A) med en m ngde af funktioner, nemlig funktionerne A ! [2]:<br />

Til en delm ngde B af A kan vi tildele den karakteristiske funktion B : A ! [2]. Denne<br />

funktion har forskriften:<br />

B(x) =<br />

1 x 2 B<br />

0 x =2 B<br />

Omvendt, har vi en afbildning f : A ! [2], sa kan vi let se, at f faktisk er den karakteristiske<br />

funktion for delm ngden fx 2 A j f(x) =1g<br />

Endelig b r n vnes den disjunkte forening:<br />

De nition 12<br />

Den disjunkte forening af m ngdene A og B er<br />

A q B =(A f1g) [ (B f2g)<br />

Det der sker her, er at vi 'markerer' elementerne i A med et 1-tal og elementerne i B med<br />

et 2-tal. Nar vi derefter tager foreningsm ngden, sa sikrer vi os, at eventuelle elementer<br />

i A \ B kommer med to gange.<br />

Opgave 5.1 Angiv et element ihver af m ngderne nedenfor:<br />

a) N Z R<br />

b) P(N N)<br />

c) P(�) N<br />

d) (N N) ; ((N ;f0� 1g) N)<br />

e) P(P(P(�)))<br />

Opgave 5.2 Vis, at for en m ngde A g lder A �= � A = �.<br />

Opgave 5.3 Bevis nedenstaende regler:<br />

a) A (B \ C) =(A B) \ (A C)<br />

b) (A \ B) C) =(A C) \ (B C)<br />

c) A (B [ C) =(A B) [ (A C)<br />

d) (A [ B) C) =(A C) [ (B C)<br />

Opgave 5.4 Opskriv P(�) pa listeform.<br />

Opgave 5.5 Bevis nedenstaende regler, hvor A og B er vilkarlige m ngder:<br />

a) P(A) 6= �<br />

b) A B ,P(A) P(B)<br />

c) P(A \ B) =P(A) \P(B)<br />

d) P(A) [P(B) P(A [ B)<br />

15


6 Implementering af m ngder<br />

Vi skal nusepa, hvorledes man kan implementere datatypen Set. Lad os f rst speci cere<br />

de metoder, vi nsker i Set. Viantager, at vi har en underliggende datatype Element,<br />

som ikke er konkretiseret pa nuv rende tidspunkt.<br />

void insertElement (Element x)<br />

void deleteElement(Element x)<br />

boolean isElementIn (Element x)<br />

Set union ( Set s)�<br />

Set intersection ( Set s)�<br />

Element [] toArray ()�<br />

De este af disse metoder er selvforklarende� men metoden toArray returnerer et array<br />

bestaende af m ngdens elementer. (I praksis ville man bruge mere avancerede mader at<br />

fa fat pa m ngdens elementer pa | f.eks. en iterator. )<br />

Den f rste made at implementere Set pa, kan kun bruges, hvis vores m ngder altid er<br />

delm ngder af en fast grundm ngde U: Viordnerelementerne i U ienfastr kkef lge,<br />

og repr senterer en delm ngde af U som et array af jUj booleans. Hvis elementet x<br />

er indeholdt i delm ngden, sa lader vi den tilsvarende position i arrayet v re true, og<br />

ellers er positionen false. Vi har i virkeligheden opskrevet den karakteristiske funktion<br />

for arrayet.<br />

Denne repr sentation optager pladsen O(jUj) for hver delm ngde, men hvis U ikke ret<br />

stor, sa er dette ganske glimrende: De este compilere vil pakke et array af booleans<br />

sammen, saledes at der er 8 booleans (bits) i hver byte i hukommelsen. Har U 1000<br />

elementer, sa vil en delm ngde af U kunne repr senteres ved 125 bytes.<br />

Metoderne insertElement, deleteElement og isElementIn vil kunne udf res i konstant<br />

tid, da der her bare er tale om simple a sninger eller opdateringer i arrayet.<br />

union og intersection har tidskompleksiteten O(jUj), men er alligevel meget hurtige |<br />

union kan implementeres som en bitvis or, og intersection som en bitvis and.<br />

toArray har ogsa kompleksiteten O(jUj), hvilket ikke ersa godt, is r for m ngder med<br />

meget far elementer i forhold til U.<br />

Et grundm ngden U meget stor | eller maske uendelig | sa b r man anvende en<br />

liste-baseret implementation i stedet: Hver enkelt m ngde repr senteres som en liste af<br />

sine elementer, hvilket betyder, at pladsbehovet for at repr sentere m ngden A bliver<br />

O(jAj).<br />

De forskellige operationer kan implementeres mere eller mindre smart. Noget af det mest<br />

e ektive er at opbevare elementerne i A i sorteret r kkef lge | dette kr ver dog, at<br />

datatypen Element kan sorteres.<br />

Anvendes bin r s gning, sakan metoderne isElementIn, insertElement og deleteElement<br />

udf res i tiden O(log(jAj). union og intersection kan udf res i line r tid ved at l be de to<br />

m ngde-lister igennem samtidigt | lidt som merge-metoden i MergeSort-algoritmen.<br />

toArray kan ogsa udf res i line r tid.<br />

Opgave 6.1 Implementer en m ngde af heltal i intervallet [0::1000] ved hj lp af begge<br />

metoder.<br />

16


Facitliste<br />

Opgave 1.1<br />

Opgave 1.2<br />

Opgave 1.3<br />

A B A _ B A ^ B (A ^ B) _ B A _ B ) (A ^ B) _ B<br />

S S S S S S<br />

S F S F F F<br />

F S S F S S<br />

F F F F F S<br />

A B A _ B :(A _ B) :A :B :A ^:B<br />

S S S F F F F<br />

S F S F F S F<br />

F S S F S F F<br />

F F F S S S S<br />

a) Det regner i dag, eller solen skinner i dag.<br />

b) Det regner ikke idag<br />

c) Det regner ikke idag,og solen skinner heller ikke i dag.<br />

d) Hvis solen skinner i dag, sa er det godt vejr i dag.<br />

e) Det regner i dag, hvis og kun hvis solen skinner idag.<br />

f) Det er ukorrekt at pasta, at det regner i dag, hvis og kun hvis solen skinner i dag.<br />

Opgave 1.4<br />

A = "Jeg drikker ka e", B = "Jeg drikker te", C = "Jeg har ondt i maven"<br />

a) A ) C<br />

b) A ) C<br />

c) :A<br />

d) A ^ B<br />

e) B ):C<br />

f) :(B ) C)<br />

Opgave 2.1<br />

a) B = f7� 8� 9g<br />

c) A[B = f1� 2� 7� 8� 9g, A\C = �, A;C = f1� 2� 7g, A;B = f1� 2g, B;A = f8� 9g,<br />

C = f0� 1� 2� 4� 6� 7� 9g<br />

d) Ja<br />

17


c) A A = �, A � = A<br />

Opgave 2.2 e) A B = A [ B , A \ B = �<br />

Opgave 2.3<br />

f) xor<br />

Den tomme m ngde, �, erdisjunkt med sig selv.<br />

Opgave 2.4<br />

a) 0 c) A \ B = �<br />

Opgave 3.1<br />

a) F b) S c) F d) F e) S f) S g) F h) S i) F<br />

Opgave 3.2<br />

a) 8x 2 N : x 6= x +1<br />

b) 9x 2 R : x>8<br />

c) 8x 2 N9y 2 N : x 2 = y<br />

d) :(9x 2 Nx 2 =5)eller 8x 2 N : x 2 6=5<br />

e) 8x 2 N : x 2 Q<br />

Opgave 3.3<br />

a) 55 b) 55 c) 5 d) 385 e) 50 f) 8x<br />

Opgave 5.4<br />

f�� f�gg<br />

18

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!