Tent­tiin 12.4.2019 pe­rus­tu­va it­se­opis­ke­lu­si­vu

Tä­män vep­pi­si­vun avul­la voit har­joi­tel­la kurs­sin TIEP1020 Disk­ree­tit ra­ken­teet tent­te­jä var­ten. Voit vas­ta­ta 12.4.2019 pi­de­tyn ten­tin ky­sy­myk­siin ja saa­da tie­tää on­ko vas­tauk­se­si oi­kein. Si­vul­la ker­ro­taan mik­si oi­kea vas­taus on sel­lai­nen kuin on ja an­ne­taan link­ke­jä muil­le si­vuil­le, joil­la voi har­joi­tel­la ky­sy­myk­sen kä­sit­te­le­mää asiaa.

To­del­li­nen tent­ti oli pa­pe­ri­lo­ma­ke, jos­sa vas­tat­tiin an­net­tuun tyh­jään ti­laan. Sii­nä ei saa­nut ol­la kir­jo­ja, las­kin­ta tms. Jo­kai­nen teh­tä­vä oli ta­san 6 pis­teen ar­voi­nen. Pis­teet ja­kau­tui­vat ta­san ala­koh­tiin (a), (b) jne., pait­si mis­sä sa­not­tiin toi­sin. Pis­tey­tys ei ol­lut ”kaik­ki tai ei mi­tään” -pe­riaat­teel­la, vaan oi­kean­suun­tai­nen vas­taus tuot­ti osan pis­teis­tä, teh­tä­väs­tä riip­puen jo­pa nel­jäs­osa­pis­teit­täin.

Eri ten­teis­sä on tie­ten­kin eri ky­sy­myk­set. Ai­he­pii­rit ovat kui­ten­kin pal­jol­ti sa­mo­ja. Tä­män ten­tin vas­taus­ten ul­koa opet­te­lu ei to­den­nä­köi­ses­ti au­ta pal­joa tu­le­vis­sa ten­teis­sä. Vas­taus­ten ta­ka­na ole­vien pe­riaat­tei­den opet­te­lu niin, et­tä osaa so­vel­taa nii­tä eri­lai­sis­sa ti­lan­teis­sa, aut­taa to­den­nä­köi­ses­ti hy­vin pal­jon. Al­la ole­vien se­li­tys­ten ja esi­merk­kien ta­voit­tee­na on aut­taa ym­mär­tä­mään ne.

Ly­hyt oh­je sym­bo­lei­den syöt­tä­mi­sek­si vas­taus­kent­tiin löy­tyy tääl­tä. Vas­taus­nap­pi ”oi­keal­le” tuot­taa pa­laut­teen oi­keal­la ole­vaan laa­tik­koon. Yleen­sä on kä­te­vin­tä en­sin kli­ka­ta si­tä. Vas­taus­nap­pi ”uu­teen” tuot­taa pa­laut­teen uu­teen vä­li­leh­teen tai uu­teen ik­ku­naan riip­puen se­lai­me­si ase­tuk­sis­ta. Si­tä kan­nat­taa käyt­tää, jos ”oi­keal­le”-na­pin tuot­ta­ma pa­lau­te ei mah­du laa­tik­koon.

Rus­keis­sa alueis­sa on pii­los­sa teks­te­jä, jot­ka tu­le­vat nä­ky­viin, kun siir­rät kur­so­rin niit­ten pääl­le. Ko­kei­le täs­tä!Toi­mii! Joi­den­kin pii­lo­teks­tien si­säl­lä on si­ni­nen alueTä­mä­kin toi­mii!, jos­sa on pii­los­sa li­sää teks­tiä. Ko­kei­le se­kin! (Jois­sa­kin iP­ho­neis­sa tä­mä ei toi­mi.)

1. (a) Piir­rä lau­sek­keen b + 1 ⋅ a + 0 lau­se­ke­puu.

Mie­ti en­sin it­se ky­nän ja pa­pe­rin kans­sa. Saat oi­kean vas­tauk­sen ja sen se­li­tyk­sen nä­ky­viin klik­kaa­mal­la nap­pia. tai

Ylei­nen vää­rä vas­taus se­li­tyk­si­neenAn expression tree Tä­mä puu on vää­rin, kos­ka ker­to­las­ku si­too voi­mak­kaam­min kuin yh­teen­las­ku, mut­ta tä­mä on piir­ret­ty ikään kuin yh­teen­las­ku si­toi­si voi­mak­kaam­min. Tä­mä oli­si oi­kein lau­sek­keel­le (b + 1) ⋅ (a + 0).

Eräs vää­rä vas­taus se­li­tyk­si­neenAn expression tree Tä­mä puu on vää­rin, kos­ka osuu­det 1 ⋅ a ja b ovat vaih­ta­neet paik­kaa. Sil­lä ei ole mer­ki­tys­tä, et­tä b + 1 ⋅ a ja 1 ⋅ a + b tuot­ta­vat ma­te­ma­tii­kas­sa sa­man tu­lok­sen. Lau­se­ke­puis­sa ei ote­ta huo­mioon mi­tä il­mauk­set tar­koit­ta­vat, vaan ai­noas­taan il­maus­ten ra­ken­ne.

Vie­lä yk­si vää­rä vas­taus se­li­tyk­si­neenAn expression tree Tä­mä puu on vää­rin, kos­ka yh­teen­las­ku on va­sem­mal­le lii­tän­näi­nen, mut­ta tä­mä on piir­ret­ty ikään kuin yh­teen­las­ku oli­si oi­keal­le lii­tän­näi­nen. Tä­mä oli­si oi­kein lau­sek­keel­le b + (1 ⋅ a + 0).

Kan­nat­taa opis­kel­la seu­raa­vat asiat:

Ai­hee­seen liit­ty­viä har­joi­tuk­sia: link­ki link­ki

(b) Piir­rä lau­sek­keen −x|n| − 2 − 3 lau­se­ke­puu.

Mie­ti en­sin it­se ky­nän ja pa­pe­rin kans­sa. Saat oi­kean vas­tauk­sen nä­ky­viin klik­kaa­mal­la nap­pia. tai

Ylei­nen vää­rä vas­taus se­li­tyk­si­neenAn expression tree Tä­mä puu on vää­rin, kos­ka po­tens­si­las­ku si­too voi­mak­kaam­min kuin etu­merk­ki, mut­ta tä­mä on piir­ret­ty ikään kuin etu­merk­ki si­toi­si voi­mak­kaam­min. Tä­mä oli­si oi­kein lau­sek­keel­le (−x)|n| − 2 − 3.

Eräs vää­rä vas­taus se­li­tyk­si­neenAn expression tree Tä­mä puu on vää­rin, kos­ka sii­nä on osia, joi­ta al­ku­pe­räi­ses­sä lau­sek­kees­sa ei ole: ⋅ ja 1. Tä­mä oli­si oi­kein lau­sek­keel­le (−1) ⋅ x|n| − 2 − 3. Vaik­ka se tar­koit­taa ma­te­maat­ti­ses­ti sa­maa kuin al­ku­pe­räi­nen lau­se­ke, on sii­tä syn­ty­vä puu kui­ten­kin eri puu, min­kä nä­kee mm. sii­tä, et­tä sii­nä on eri mää­rä sol­mu­ja.

Lau­sek­kees­sa ole­via sul­ku­ja ei piir­re­tä lau­se­ke­puu­hun sel­lai­si­naan, vaan nii­den vai­ku­tus il­me­nee lau­se­ke­puun ra­ken­tees­sa. Täs­tä on esi­merk­ke­jä edel­lä ol­leis­sa vää­ris­sä vas­tauk­sis­sa, kat­so ne nyt uu­del­leen jos asia ei jo ole si­nul­le sel­vä.

Po­tens­si­las­kul­le ei ole ma­te­ma­tii­kas­sa omaa sym­bo­lia, kos­ka se esi­te­tään nos­ta­mal­la eks­po­nent­ti kor­keam­mal­le kuin muu teks­ti. Lau­se­ke­puun sol­mus­sa pi­tää kui­ten­kin jo­ten­kin ker­toa, et­tä ky­sees­sä on po­tens­si­las­ku (ei­kä nä­ky­mä­tön ker­to­las­ku), jo­ten sol­muun kir­joi­te­taan ^. Vaa­ka­vii­van avul­la esi­tet­ty ja­ko­las­ku ai­heut­taa sa­man on­gel­man. Se esi­te­tään kir­joit­ta­mal­la sol­muun / tai ÷.

Täl­lai­sia poik­keuk­sia lu­kuun ot­ta­mat­ta lau­se­ke­puun sol­muis­sa esiin­ty­vät sa­mat sym­bo­lit yh­tä mon­ta ker­taa kuin al­ku­pe­räi­ses­sä lau­sek­kees­sa.

(c) Luet­te­le kaik­ki kie­leen
S ::= ε | aSbS
kuu­lu­vat merk­ki­jo­not, joi­den pi­tuus on enin­tään 4.

Ero­ta eri merk­ki­jo­not toi­sis­taan kir­joit­ta­mal­la vä­li­lyön­ti, pys­ty­vii­va ja vä­li­lyön­ti, siis | . (Vas­tauk­set tar­kas­ta­va oh­jel­ma ei va­li­tet­ta­vas­ti osaa pa­rem­pia ta­po­ja ot­taa vas­taan täl­lai­nen vas­taus.) Saat va­li­ta, mi­ten kir­joi­tat tyh­jän merk­ki­jo­non vas­taus­laa­tik­koon.
Ha­luan kir­joit­taa sym­bo­lin ε. (Niin pi­tää teh­dä ten­tis­sä­kin.)
Ha­luan kir­joit­taa kak­si lai­naus­merk­kiä, siis "". Ten­tis­sä kui­ten­kin kir­joi­tan ai­na ε.
tai

Teh­tä­vän kie­li­opin osuus ε tuot­taa tyh­jän merk­ki­jo­non.

Osuut­ta aSbS käy­te­tään si­ten, et­tä ote­taan jo­kin kie­leen kuu­lu­va merk­ki­jo­no, lai­te­taan se en­sim­mäi­sen S:n pai­kal­le, ote­taan jo­kin kie­leen kuu­lu­va merk­ki­jo­no (saa ol­la sa­ma tai eri merk­ki­jo­no kuin edel­li­nen), ja lai­te­taan se toi­sen S:n pai­kal­le.

Käyt­tä­mäl­lä mo­lem­pien S:ien pai­kal­la tyh­jää merk­ki­jo­noa saa­daan aεbε eli ab. Se on kir­joi­tet­ta­va vas­tauk­seen muo­dos­sa ab ei­kä aεbε, kos­ka ε edus­taa tyh­jää ja tar­koi­tus on, et­tä ε kir­joi­te­taan nä­ky­vil­le vain sil­loin kun sen kir­joit­ta­mat­ta jät­tä­mi­nen saat­taa ai­heut­taa se­kaan­nus­ta.

Al­la ole­va tau­luk­ko näyt­tää merk­ki­jo­no­jen muo­dos­ta­mis­ta niin pit­käl­le, et­tä kaik­ki enin­tään 4 mer­kin mit­tai­set merk­ki­jo­not ja kak­si pi­tem­pää on muo­dos­tet­tu.

en­sim­mäi­nen S  toi­nen S   vä­li­muo­to  lop­pu­tu­los
εεaεbεab
abεaabbεaabb
εabaεbababab
ababaabbabaabbab
aabbεaaabbbεaaabbb

Kir­joit­ta­kaa tent­ti­pa­pe­riin tyh­jäk­si merk­ki­jo­nok­si ε ei­kä esi­mer­kik­si ""! Näin sik­si, et­tä ma­te­ma­tii­kas­sa tyh­jän merk­ki­jo­non sym­bo­li on ε. Tar­kas­tus­oh­jel­ma käyt­tää mer­kin­tää "" vain sik­si, et­tä ε on ko­vin han­ka­la kir­joit­taa näp­päi­mis­töl­tä (li­sä­tie­to­ja).

Ai­hee­seen liit­ty­viä har­joi­tuk­sia: link­ki link­ki

2. (a) Luet­te­le lu­vun 18 te­ki­jät.

Ero­ta eri te­ki­jät toi­sis­taan kir­joit­ta­mal­la vä­li­lyön­ti, pys­ty­vii­va ja vä­li­lyön­ti, siis | . (Vas­tauk­set tar­kas­ta­va oh­jel­ma ei va­li­tet­ta­vas­ti osaa pa­rem­pia ta­po­ja ot­taa vas­taan täl­lai­nen vas­taus.)
tai

Ai­hee­seen liit­ty­viä har­joi­tuk­sia: link­ki

(b) Il­moi­ta seu­raa­vien lu­ku­jen vii­mei­nen nu­me­ro.

32
tai
33
tai
35
tai
32019
tai

Täs­sä tär­kei­tä osaa­mis­ta­voit­tei­ta ovat:

Ai­hee­seen liit­ty­viä har­joi­tuk­sia: link­ki

(c) b1, …, bn ovat bit­te­jä. Kuin­ka mon­ta eri ar­vo­yh­dis­tel­mää niil­lä on?

tai

Tä­män kaa­van voi kek­siä (tai muis­taa) seu­raa­val­la ajat­te­lul­la.

Yk­si bit­ti voi saa­da kak­si eri ar­voa: 0 ja 1. Kir­joi­ta kaik­ki ar­vo­yh­dis­tel­mät, jot­ka kak­si bit­tiä voi saa­da. Yk­si niis­tä on an­net­tu esi­mer­kin vuok­si val­miik­si. Ero­ta eri ar­vo­yh­dis­tel­mät toi­sis­taan kir­joit­ta­mal­la vä­li­lyön­ti, pys­ty­vii­va ja vä­li­lyön­ti, siis | .
tai

Kir­joi­ta kaik­ki ar­vo­yh­dis­tel­mät, jot­ka kol­me bit­tiä voi saa­da. Ero­ta eri ar­vo­yh­dis­tel­mät toi­sis­taan kir­joit­ta­mal­la vä­li­lyön­ti, pys­ty­vii­va ja vä­li­lyön­ti, siis | .
tai

Mer­ki­tään k:lla nii­den ar­vo­yh­dis­tel­mien mää­rää, jot­ka n bit­tiä voi saa­da. Kuin­ka mon­ta ar­vo­yh­dis­tel­mää n + 1 bit­tiä voi saa­da (il­mai­se vas­taus k:n funk­tio­na)? Vih­jeVoi­daan saa­da kaik­ki ne ar­vo­yh­dis­tel­mät, jot­ka n bit­tiä voi saa­da, jat­ket­tu­na 0:lla se­kä kaik­ki ne ar­vo­yh­dis­tel­mät, jot­ka n bit­tiä voi saa­da, jat­ket­tu­na 1:llä. Esi­mer­kik­si 4-bit­ti­ses­tä ar­vo­yh­dis­tel­mäs­tä 0100 saa­daan kak­si vii­si­bit­tis­tä ar­vo­yh­dis­tel­mää 01000 ja 01001.
tai

Jol­lei teh­tä­vä vie­lä­kään rat­kea, ko­kei­le tä­tä.

Kos­ka pa­ri opis­ke­li­jaa tar­jo­si vas­tauk­sek­si n!, pu­hu­taan hiu­kan sii­tä­kin. Se il­mai­see nii­den jär­jes­tys­ten mää­rän, joi­hin n kes­ke­nään eri­lais­ta olen­toa voi­daan lait­taa. Kir­joi­ta kaik­ki merk­ki­jo­not, jot­ka voi­daan muo­dos­taa mer­keis­tä a, b ja c, kun jo­kai­ses­sa merk­ki­jo­nos­sa täy­tyy käyt­tää jo­kai­nen merk­ki täs­mäl­leen yh­den ker­ran. Ero­ta eri merk­ki­jo­not toi­sis­taan kir­joit­ta­mal­la vä­li­lyön­ti, pys­ty­vii­va ja vä­li­lyön­ti, siis | .
tai

Kuin­ka mon­ta eri­lais­ta merk­ki­jo­noa voi­daan teh­dä li­sää­mäl­lä merk­ki­jo­noon abc jo­hon­kin koh­taan d (jol­loin syn­tyy merk­ki­jo­no, jos­sa on jos­sa­kin jär­jes­tyk­ses­sä yk­si a, yk­si b, yk­si c ja yk­si d)? Vih­jeMerk­ki d voi­daan li­sä­tä jo­non abc eteen, jol­loin syn­tyy dabc. Se voi­daan li­sä­tä myös jo­non abc pe­rään tai kah­teen eri koh­taan kes­kel­le.
tai

Kuin­ka mon­ta eri­lais­ta merk­ki­jo­noa voi­daan muo­dos­taa mer­keis­tä a, b, c ja d, kun jo­kai­nen merk­ki täy­tyy käyt­tää täs­mäl­leen yh­den ker­ran? Vih­jeÄs­ken muo­dos­tit kaik­ki merk­ki­jo­not mer­keis­tä a, b ja c. Nii­tä tu­li jo­kin mää­rä. Jo­kai­seen niis­tä voi­daan li­sä­tä d. Äs­ken sel­vi­tit, kuin­ka mo­nel­la eri ta­val­la d voi­daan li­sä­tä yh­teen merk­ki­jo­noon.
tai

Mer­ki­tään k:lla nii­den merk­ki­jo­no­jen mää­rää, jot­ka voi­daan muo­dos­taa n eri­lai­ses­ta mer­kis­tä, kun jo­kai­nen merk­ki täy­tyy käyt­tää täs­mäl­leen yh­den ker­ran. Kuin­ka mon­ta eri­lais­ta merk­ki­jo­noa voi­daan muo­dos­taa n + 1 eri­lai­ses­ta mer­kis­tä, kun jo­kai­nen merk­ki täy­tyy käyt­tää täs­mäl­leen yh­den ker­ran (il­mai­se vas­taus k:n ja n:n funk­tio­na)? Vih­je(n + 1):s merk­ki voi­daan li­sä­tä n-merk­ki­sen merk­ki­jo­non eteen, pe­rään tai mi­hin ta­han­sa vä­liin.
tai

Niin­pä, kun jo­kai­nen merk­ki täy­tyy käyt­tää täs­mäl­leen yh­den ker­ran, yh­del­lä mer­kil­lä saa yh­den merk­ki­jo­non, kah­del­la eri­lai­sel­la 1 ⋅ 2, kol­mel­la eri­lai­sel­la 1 ⋅ 2 ⋅ 3, nel­jäl­lä eri­lai­sel­la 1 ⋅ 2 ⋅ 3 ⋅ 4 ja niin edel­leen. Lu­kua 1 ⋅ 2 ⋅ ... ⋅ n mer­ki­tään n! ja kut­su­taan ni­mel­lä ns ker­to­ma. Myös nol­las ker­to­ma on mää­ri­tel­ty. Se on sel­lai­nen lu­ku, et­tä kun sen ker­too yk­kö­sel­lä, saa­daan 1!, siis 1 ⋅ 0! = 1!. Il­moi­ta seu­raa­vat ker­to­mat.

0! =
tai
1! =
tai
2! =
tai
3! =
tai
4! =
tai
5! =
tai
6! =
tai

(d) Täy­den­nä seu­raa­va oh­jel­ma si­ten, et­tä se tes­taa, on­ko tau­lu­kon T[1…n] si­säl­tö pa­lind­ro­mi eli sa­ma etu- ja ta­ka­pe­rin.

for i := 1 to n do
    if T[i] ≠ T[ ] then return false
return true
tai

Vas­tauk­sen voi kek­siä seu­raa­val­la ajat­te­lul­la.

Oh­jel­ma tes­taa tau­lu­kon al­kioi­ta pa­reit­tain. Jos yk­si­kin tes­tat­tu pa­ri koos­tuu eri­suu­rui­sis­ta al­kiois­ta, niin oh­jel­ma lo­pet­taa vas­tauk­sel­la false. Jos näin ei kos­kaan käy, niin oh­jel­ma lo­pet­taa vas­tauk­sel­la true kun kaik­ki pa­rit on tes­tat­tu. Teh­tä­vä­nä on sel­vit­tää sen al­kion in­dek­si, jo­ka tes­ta­taan al­kion i pa­ri­na.

Tau­lu­kon en­sim­mäi­nen in­dek­si on ja vii­mei­nen in­dek­si on .
tai

Tau­lu­kon en­sim­mäi­nen al­kio pi­tää tes­ta­ta tau­lu­kon vii­meis­tä al­kio­ta vas­taan, toi­nen al­kio pi­tää tes­ta­ta toi­sek­si vii­meis­tä al­kio­ta vas­taan ja niin edel­leen. Mis­sä koh­das­sa si­jait­se­vaa al­kio­ta vas­taan koh­dan i al­kio pi­tää tes­ta­ta?

täs­sä si­jait­se­va tes­ta­taan täs­sä si­jait­se­vaa vas­taan
1
tai
2
tai
3
tai
i
tai

Yh­del­lä pie­les­sä ole­vaa vas­taus­ta n − i tu­li pal­jon. Sen yk­kö­sen saa tä­män­ta­pai­sis­sa teh­tä­vis­sä koh­dal­leen va­lit­se­mal­la jon­kin i:n ar­von jol­la lu­vut ovat help­po­ja ja huo­leh­ti­mal­la, et­tä vas­taus an­taa sil­le oi­kean lu­vun. Täs­sä esi­mer­kis­sä tau­lu­kon en­sim­mäi­nen in­dek­si on 1 ja vii­mei­nen on n, jo­ten kun i = 1 pi­tää vas­tauk­sen tuot­taa n.

Tä­mä­kin kik­ka kan­nat­taa osa­ta ja pi­tää työ­ka­lu­pa­kis­sa käyt­tö­val­mii­na. Sil­le on val­ta­vas­ti so­vel­lus­koh­tei­ta esi­mer­kik­si oh­jel­moi­taes­sa. Vaik­ka yk­sit­täis­ta­pauk­sen saa­mi­nen koh­dal­leen ei ta­kaa et­tä vas­taus on oi­kein, se usein pa­ran­taa olen­nai­ses­ti mah­dol­li­suut­ta et­tä vas­taus on oi­kein. Sik­si yk­sit­täis­ta­pauk­sil­la tes­taa­mi­nen kan­nat­taa.

Ai­hee­seen liit­ty­viä har­joi­tuk­sia: link­ki

(e) Oh­jel­man ylim­män ri­vin n voi­daan kor­va­ta pie­nem­mäl­lä ar­vol­la niin et­tä oh­jel­ma toi­mii sil­ti oi­kein. Mi­kä on pie­nin täl­lai­nen ar­vo?


tai

Vih­jeJos vas­taus on true, niin oh­jel­ma ver­taa en­sim­mäi­se­nä on­ko T[1] ≠ T[n] ja vii­mei­se­nä on­ko T[n] ≠ T[1]. Vii­mei­nen ver­tai­lu on eri­päin kuin en­sim­mäi­nen, mut­ta tuot­taa sil­ti sa­man tu­lok­sen. Sik­si vii­mei­nen ver­tai­lu on hyö­dy­tön. Toi­se­na oh­jel­ma ver­taa on­ko T[2] ≠ T[n − 1] ja toi­sek­si vii­mei­se­nä on­ko T[n − 1] ≠ T[2], ja niin edel­leen. Jo­kai­sen täl­lai­sen pa­rin jäl­kim­mäi­nen ver­tai­lu on hyö­dy­tön. Ne voi jät­tää pois pie­nen­tä­mäl­lä si­tä ar­voa, jon­ka koh­dal­la for-sil­muk­ka lo­pet­taa.

Mi­tä ta­pah­tuu kes­kel­lä tau­luk­koa, jos n on pa­ri­ton?Jos n on pa­ri­ton, niin oh­jel­ma ver­taa kes­kim­mäis­tä al­kio­ta it­seen­sä ja vain yh­den ker­ran. Esi­mer­kik­si jos n = 5, niin oh­jel­ma te­kee ver­tai­lun T[3] ≠ T[3] täs­mäl­leen yh­den ker­ran. Tar­vit­see­ko kes­kim­mäis­tä al­kio­ta ver­ra­ta it­seen­sä?Ei tar­vit­se, kos­ka jo­kai­nen sel­lai­nen ver­tai­lu tuot­taa false riip­pu­mat­ta tau­lu­kon si­säl­lös­tä. Esi­mer­kik­si T[3] ≠ T[3] tuot­taa false.

Edel­lä pää­tel­lyn pe­rus­teel­la oi­kea vas­taus on suun­nil­leen sel­vä, mut­ta ”yh­del­lä pie­les­sä” -tyyp­pis­ten vir­hei­den vaa­ra vaa­nii nyt­kin. Sen vält­tä­mi­sek­si ko­kei­lem­me muu­ta­mal­la pie­nel­lä n:n ar­vol­la. Il­moi­ta suu­rin i:n ar­vo, jol­la tes­ti T[i] ≠ T[…] tar­vit­see teh­dä.

n  for-sil­mu­kan lo­pe­tus­ar­vo
2
tai Se­li­tysJos n = 2, niin tau­lu­kon en­sim­mäi­nen al­kio pi­tää ver­ra­ta vii­mei­seen eli T[1] pi­tää ver­ra­ta T[2]:een. Mui­ta ver­tai­lu­ja ei tar­vi­ta. Niin­pä lo­pe­tus­ar­vok­si pi­tää tul­la 1.
3
tai Se­li­tysJos n = 3, niin T[1] pi­tää ver­ra­ta T[3]:seen mut­ta T[2]:sta ei tar­vit­se ver­ra­ta it­seen­sä. Niin­pä nyt­kin lo­pe­tus­ar­vok­si pi­tää tul­la 1.
4
tai Se­li­tysJos n = 4, niin T[1] pi­tää ver­ra­ta T[4]:seen ja T[2] pi­tää ver­ra­ta T[3]:seen. Niin­pä lo­pe­tus­ar­vok­si pi­tää tul­la 2.
5
tai Se­li­tysJos n = 5, niin T[1] pi­tää ver­ra­ta T[5]:seen ja T[2] pi­tää ver­ra­ta T[4]:seen, mut­ta T[3]:sta ei tar­vit­se ver­ra­ta it­seen­sä. Niin­pä nyt­kin lo­pe­tus­ar­vok­si pi­tää tul­la 2.
6
tai
1
tai Se­li­tysJos n = 1, niin tau­lu­kos­sa on vain yk­si al­kio T[1]. Si­tä ei tar­vit­se ver­ra­ta it­seen­sä, jo­ten lo­pe­tus­ar­vok­si kel­paa mi­kä ta­han­sa ar­vo, jo­ka saa for-sil­mu­kan suo­rit­ta­maan nol­la kier­ros­ta. Edel­li­sis­tä vas­tauk­sis­ta il­me­ne­vää sään­nön­mu­kai­suut­ta nou­dat­ta­va ar­vo on sel­lai­nen. Tä­hän ruu­tuun pi­tää lait­taa se.
0
tai
n
tai

(f) Mi­tä hyö­tyä kor­vaa­mi­ses­ta on?

Mal­li­vas­tausOh­jel­ma no­peu­tuu mel­kein kak­sin­ker­tai­sek­si sil­loin kun vas­taus on true.

3. Mit­kä seu­raa­vis­ta ko­ko­nais­lu­ku­ja kos­ke­vis­ta päät­te­ly­as­ke­lis­ta ovat pä­te­viä? An­na epä­pä­te­vil­le vas­ta­esi­merk­ki ja pä­te­vil­le ly­hyt pe­rus­te­lu.

(a) nm > 0  ⇒  n > 0

Mal­li­vas­tausEi, kos­ka jos n = m = −1, niin nm = 1 > 0 mut­ta ei n > 0.

Päät­te­le­mi­sen pe­rus­kä­sit­teis­tä ei vie­lä ole kun­nol­lis­ta teh­tä­vä­si­vua, jo­ten kä­sit­te­lem­me täs­sä nii­tä hie­man.

Päät­te­lyis­sä kä­si­tel­lään väit­tei­tä. Väit­teis­sä on usein (mut­ta ei ai­na) va­pai­ta muut­tu­jia. (Ker­ron myö­hem­min muut­tu­jis­ta, jot­ka ei­vät ole va­pai­ta. Sii­hen saak­ka kaik­ki esi­mer­keis­sä esiin­ty­vät muut­tu­jat ovat va­pai­ta.)

Kun va­pai­den muut­tu­jien ar­vot kiin­ni­te­tään, väi­te saa to­tuus­ar­von, jo­ka on jo­ko to­si, epä­to­si tai mää­rit­te­le­mä­tön. Esi­mer­kik­si väi­te 2x < 1 on to­si jos x = 0 (kos­ka 2 ⋅ 0 = 0 < 1) mut­ta epä­to­si jos x = 1 (kos­ka 2 ⋅ 1 = 2 ja 2 < 1 ei pä­de). Väi­te
1
n
≥ 0 on to­si kun n > 0, epä­to­si kun n < 0 ja mää­rit­te­le­mä­tön kun n = 0 (kos­ka nol­lal­la ei voi ja­kaa). Jos väit­tees­sä ei ole va­pai­ta muut­tu­jia, niin se on sel­lai­se­naan to­si, epä­to­si tai mää­rit­te­le­mä­tön. Klas­si­nen esi­merk­ki to­des­ta täl­lai­ses­ta väit­tees­tä on 1 + 1 = 2.

Vas­ta­esi­merk­ki väit­teel­le on va­pai­den muut­tu­jien ar­vo­yh­dis­tel­mä, jol­la väi­te ei ole to­si. Esi­mer­kik­si ar­vo­yh­dis­tel­mä a = 2 ja b = 1 on vas­ta­esi­merk­ki väit­teel­le a = b, kos­ka 2 = 1 on epä­to­si. Esi­mer­kik­si n = 0 on vas­ta­esi­merk­ki väit­teel­le
1
n
≥ 0, kos­ka
1
0
≥ 0 on mää­rit­te­le­mä­tön, kos­ka
1
0
ei ole mää­ri­tel­ty.

Jos va­pai­ta muut­tu­jia si­säl­tä­vää väi­tet­tä sa­no­taan to­dek­si il­man et­tä sa­mal­la an­ne­taan va­pail­le muut­tu­jil­le ar­vot, niin tar­koi­te­taan, et­tä väi­te on to­si kai­kil­la mah­dol­li­sil­la va­pai­den muut­tu­jien ar­vo­yh­dis­tel­mil­lä. Toi­sin sa­noen, va­pai­ta muut­tu­jia si­säl­tä­vä väi­te on to­si jos ja vain jos sil­le ei ole vas­ta­esi­merk­ke­jä. Esi­mer­kik­si |x| ≥ 0 on to­si mut­ta |y| ≥ 3 ei ole, kos­ka y = 1 on sil­le vas­ta­esi­merk­ki.

Jos väit­tees­sä ei ole va­pai­ta muut­tu­jia, niin tul­kit­sem­me, et­tä sil­loin va­pail­la muut­tu­jil­la on täs­mäl­leen yk­si ar­vo­yh­dis­tel­mä. Tä­mä ar­vo­yh­dis­tel­mä on vas­ta­esi­merk­ki jos ja vain jos väi­te ei ole to­si. Tä­män tul­kin­nan an­sios­ta äs­kei­nen huo­mio yk­sin­ker­tais­tuu seu­raa­vaan muo­toon: väi­te on to­si jos ja vain jos sil­le ei ole vas­ta­esi­merk­ke­jä.

Asia­yh­teys mää­rää, mi­tä ar­vo­ja muut­tu­jat voi­vat saa­da. Sik­si asia­yh­teys voi vai­kut­taa sii­hen, on­ko väi­te to­si. Esi­mer­kik­si x2x on to­si, jos pu­hu­taan ko­ko­nais­lu­vuis­ta. Se ei ole to­si, jos pu­hu­taan reaa­li­lu­vuis­ta, sil­lä x =
1
2
on sil­le vas­ta­esi­merk­ki. Jos pu­hu­taan ne­ga­tii­vi­sis­ta reaa­li­lu­vuis­ta, niin se on to­si, kos­ka sil­loin x2 ≥ 0 > x.

Väit­tei­den to­tuus­ar­voi­hin liit­ty­viä har­joi­tuk­sia: link­ki

Ol­koot V1 ja V2 väit­tei­tä. Päät­te­ly­as­kel V1V2 tar­koit­taa, et­tä kai­kil­la niil­lä va­pai­den muut­tu­jien ar­vo­yh­dis­tel­mil­lä, jot­ka ovat mah­dol­li­sia pu­hee­na ole­vas­sa asia­yh­tey­des­sä ja joil­la V1 on to­si, myös V2 on to­si.

Päät­te­ly­as­kel ei ole to­si, epä­to­si ei­kä mää­rit­te­le­mä­tön. Päät­te­ly­as­kel on jo­ko pä­te­vä tai epä­pä­te­vä (eli vir­heel­li­nen).

Ai­noa ta­pa, jol­la V1V2 voi ol­la vir­heel­li­nen, on et­tä on ole­mas­sa muut­tu­jien ar­vo­yh­dis­tel­mä, jon­ka asia­yh­teys sal­lii ja jol­la V1 on to­si mut­ta V2 ei ole to­si. Sel­lais­ta ar­vo­yh­dis­tel­mää sa­no­taan ⇒-muo­toi­sen päät­te­ly­as­ke­leen vas­ta­esi­mer­kik­si. Siis V1V2 on pä­te­vä jos ja vain jos sil­le ei ole vas­ta­esi­merk­ke­jä.

Mer­kit­se ruu­tui­hin TT, FF tai UU sen mu­kaan ovat­ko väit­teet to­si, epä­to­si vai mää­rit­te­le­mä­tön. Va­lit­se ne ri­vit, jot­ka si­säl­tä­vät vas­ta­esi­mer­kin päät­te­ly­as­ke­leel­le nm > 0  ⇒  n > 0.

nmnm > 0n > 0
23
   tai
20
   tai
2−3
   tai
03
   tai
00
   tai
0−3
   tai
−23
   tai
−20
   tai
−2−3
   tai

Päät­te­ly­as­kel voi ol­la myös muo­toa V1V2. Se tar­koit­taa, et­tä kun va­li­taan mi­kä ta­han­sa asia­yh­tey­den sal­li­ma va­pai­den muut­tu­jien ar­vo­yh­dis­tel­mä, niin jo­ko mo­lem­mat tai ei kum­pi­kaan väit­teis­tä V1 ja V2 ovat to­sia. Toi­sin sa­noen, se tar­koit­taa sa­maa kuin V1V2 ja V2V1 yh­des­sä. Myös tä­män­muo­toi­nen päät­te­ly­as­kel on pä­te­vä jos ja vain jos sil­le ei ole vas­ta­esi­merk­ke­jä. Täs­sä ta­pauk­ses­sa vas­ta­esi­merk­ki on muut­tu­jien ar­vo­yh­dis­tel­mä, jol­la toi­nen puo­li on mut­ta toi­nen puo­li ei ole to­si.

Kan­nat­taa siis ta­koa pää­hän:

Päät­te­ly­as­kel on pä­te­vä jos ja vain jos sil­le ei ole vas­ta­esi­merk­ke­jä.

Jot­ta tä­tä voi­si tar­peen tul­len hyö­dyn­tää, kan­nat­taa ta­koa pää­hän myös, mi­tä väit­teen vas­ta­esi­merk­ki, ⇒-as­ke­leen vas­ta­esi­merk­ki ja ⇔-as­ke­leen vas­ta­esi­merk­ki tar­koit­ta­vat.

(b) n < mn + 1  ⇒  m = n + 1

Mal­li­vas­tausOn, kos­ka ko­ko­nais­lu­kua n suu­rem­mat ko­ko­nais­lu­vut ovat n + 1, n + 2, …, ja niis­tä vain n + 1 to­teut­taa eh­don mn + 1.

Se­li­tys
Jos pu­he oli­si reaa­li­lu­vuis­ta, niin esi­mer­kik­si n = 0 ja m =
1
2
oli­si vas­ta­esi­merk­ki, kos­ka 0 <
1
2
≤ 0 + 1 on to­si mut­ta
1
2
= 0 + 1 ei ole. Teh­tä­väs­sä kui­ten­kin sa­no­taan, et­tä ky­se on ko­ko­nais­lu­vuis­ta. Niil­lä n < mn + 1  ⇒  m = n + 1 on pä­te­vä.

Pe­rus­te­le­mi­sek­si täy­tyy osoit­taa, et­tä jos n < mn + 1 on to­si, niin myös m = n + 1 on to­si. Jos n < mn + 1 on to­si, niin n < m, jo­ten m = n + 1 tai m = n + 2 tai … kos­ka ky­se on ko­ko­nais­lu­vuis­ta. Toi­saal­ta n < mn + 1 lu­paa myös, et­tä mn + 1. Nä­mä kak­si yh­des­sä var­mis­ta­vat, et­tä m = n + 1 on to­si.

Sen li­säk­si et­tä päät­te­ly­as­kel voi ol­la pä­te­vä tai epä­pä­te­vä, se voi ol­la myös hy­vin tai huo­nos­ti pe­rus­tel­tu. Päät­te­ly­as­kel on hy­vin pe­rus­tel­tu, jos ja vain jos se on niin yk­sin­ker­tai­nen et­tä lu­ki­ja nä­kee mik­si se on pä­te­vä, tai hä­nel­le an­ne­taan niin pal­jon li­sä­tie­toa et­tä hän ym­mär­tää mik­si se on pä­te­vä. Lu­ki­ja voi ol­la var­ma, et­tä päät­te­ly­as­kel on pä­te­vä vain jos se on pe­rus­tel­tu hy­vin.

Sik­si ihan­ne on, et­tä päät­te­ly­as­ke­leet pi­tää pe­rus­tel­la hy­vin. Va­li­tet­ta­vas­ti asia ei ole yk­sin­ker­tai­nen. Kos­ka toi­nen lu­ki­ja ym­mär­tää vä­hem­mäl­lä kuin toi­nen, pe­rus­te­lun hy­vyys ei ole ma­te­maat­ti­sen tark­ka kä­si­te vaan su­mea.

Ma­te­maat­ti­sis­sa päät­te­lyis­sä ei yleen­sä esi­te­tä nii­tä yk­si­tyis­koh­tia, jot­ka ko­ke­nut lu­ki­ja pys­tyy hel­pos­ti it­se kek­si­mään. Muu­ten teks­tis­tä tu­li­si pit­kä, ja sen suu­ret lin­jat huk­kui­si­vat lu­kui­sien pik­ku­asioi­den al­le. Lu­ki­jan, jo­ka on sil­lä ma­te­ma­tii­kan alueel­la aloit­te­li­ja, voi ol­la työ­läs­tä tai jo­pa mah­do­ton­ta lu­kea täl­lais­ta päät­te­lyä, vaik­ka hän oli­si vah­va jol­lain toi­sel­la ma­te­ma­tii­kan alueel­la.

Jos tent­ti­ky­sy­myk­ses­sä pyy­de­tään ly­hyt­tä pe­rus­te­lua, niin vas­tauk­ses­sa kan­nat­taa kes­kit­tyä olen­nai­sim­piin syi­hin mik­si väi­te on to­si tai päät­te­ly­as­kel on pä­te­vä. Se on var­min kei­no saa­da pis­tei­tä.

Tä­män koh­dan ta­pauk­ses­sa päät­te­ly­as­kel ei ole pä­te­vä reaa­li­lu­vuil­le mut­ta on pä­te­vä ko­ko­nais­lu­vuil­le. Sik­si pe­rus­te­lus­sa on tär­keää ve­do­ta sii­hen, et­tä ky­se on ko­ko­nais­lu­vuis­ta. Tent­ti­lo­mak­kees­sa an­net­tu vas­taus­ti­la riit­tää sen sa­no­mi­seen, et­tä vä­lil­lä n < xn + 1 ei ole mui­ta ko­ko­nais­lu­ku­ja kuin n + 1. Edel­lä rus­kean sa­nan ”Se­li­tys” al­la on pi­tem­pi pe­rus­te­lu, jo­ka yrit­tää ol­la riit­tä­vä sil­loin kun lu­ki­ja­na on tä­män kurs­sin opis­ke­li­ja.

(c) n2 < 0  ⇒  0n = 3

Mal­li­vas­tausOn, kos­ka va­sen puo­li on ai­na epä­to­si.

Edel­lä to­det­tiin, et­tä päät­te­ly­as­kel on pä­te­vä jos ja vain jos sil­le ei ole vas­ta­esi­merk­ke­jä. Sii­tä seu­raa, et­tä jo­kai­nen sel­lai­nen ⇒-as­kel on pä­te­vä, jon­ka va­sen puo­li ei ole kos­kaan to­si.

Tä­mä voi ol­la yl­lät­tä­vää. Nik­si on sii­nä, et­tä se voi joh­taa omi­tui­siin lop­pu­tu­lok­siin, mut­ta vain sel­lais­ten asioi­den ta­pauk­ses­sa, joi­ta ei ole ole­mas­sa. Voi­daan to­dis­taa, et­tä jo­kai­nen pyö­reä ne­liö on kol­mi­kul­mai­nen, mut­ta täs­tä ei ole hait­taa, kos­ka pyö­rei­tä ne­liöi­tä ei ole ole­mas­sa. Ole­mas­sa ole­vil­le asioil­le saa­daan vain oi­kei­ta joh­to­pää­tök­siä.

On ol­lut tar­peel­lis­ta ra­ken­taa lo­giik­ka täl­lai­sek­si. Usein on vai­keaa sel­vit­tää, on­ko jo­kin väi­te tot­ta mis­sään ti­lan­tees­sa. Jos ⇒-as­ke­leen pä­te­vyy­den mää­ri­tel­mä si­säl­täi­si vaa­ti­muk­sen, et­tä va­sem­man puo­len täy­tyy voi­da ol­la tot­ta, niin pä­te­vyy­den pe­rus­te­le­mi­nen vai­keu­tui­si huo­mat­ta­vas­ti ai­van tur­haan. Myös­kään niin sa­not­tu­ja ris­ti­rii­ta­to­dis­tuk­sia ei voi­tai­si käyt­tää. Ris­ti­rii­ta­to­dis­tus on tyyp­piä ”jos V1 ei oli­si to­si, niin sii­tä seu­rai­si V2, mut­ta V2 on mah­do­ton, jo­ten V1 on to­si”.

Sie­ven­nä seu­raa­vat väit­tä­mät mah­dol­li­sim­man ly­hyeen muo­toon.

(d) ¬P ∧ ¬Q  ⇔

tai

Lo­gii­kas­sa on pie­ni mää­rä kaa­vo­ja, jot­ka kan­nat­taa osa­ta ul­koa. De Mor­ga­nin kaa­vat kuu­lu­vat nii­hin. Teh­tä­vän vas­taus saa­daan täl­lä De Mor­ga­nin kaa­val­la¬(PQ)  ⇔  ¬P ∧ ¬Q.

Jos he­rää epäi­lys, muis­tin­ko kaa­van oi­kein, kan­nat­taa so­vel­taa si­tä jo­hon­kin tut­tuun ti­lan­tee­seen. Voi­daan va­li­ta vaik­ka, et­tä P tar­koit­taa ”otan kah­via” ja Q tar­koit­taa ”otan pul­laa”. Sil­loin ¬P ∧ ¬Q tar­koit­taa, et­tä en ota kah­via ja en ota pul­laa. Siis en ota kum­paa­kaan, en kah­via en­kä pul­laa. Vas­taa­vas­ti ¬(PQ) tar­koit­taa, et­tä ei ole niin et­tä otan kah­via tai otan pul­laa. Se­kin tar­koit­taa et­tä en ota kum­paa­kaan, en kah­via en­kä pul­laa. Sik­si ¬(PQ) tar­koit­taa sa­maa kuin ¬P ∧ ¬Q ja on oi­kea vas­taus.

Toi­saal­ta ¬(PQ) tar­koit­taa, et­tä ei ole niin et­tä otan kah­via ja otan pul­laa. Se kiel­tää sen et­tä otan mo­lem­pia ja sal­lii kol­me vaih­to­eh­toa: otan pel­käs­tään kah­via, otan pel­käs­tään pul­laa tai en ota kum­paa­kaan. Kos­ka se sal­lii et­tä otan pel­käs­tään kah­via, se on eri asia kuin ¬P ∧ ¬Q jo­ka tar­koit­taa et­tä en ota kum­paa­kaan. Sik­si ¬(PQ) oli­si vää­rä vas­taus.

Ai­hee­seen liit­ty­viä har­joi­tuk­sia: link­ki

Pe­rus­te­len nyt, et­tä ly­hyem­pää oi­keaa vas­taus­ta ei ole ole­mas­sa kuin ¬(PQ). Jos se­kä P et­tä Q ovat epä­to­si, niin ¬P ∧ ¬Q on to­si. Jos P vaih­de­taan to­dek­si, niin ¬P ∧ ¬Q muut­tuu epä­to­dek­si. Sa­moin käy jos P pi­de­tään epä­to­te­na mut­ta Q vaih­de­taan to­dek­si. Näin ol­len kaa­van ¬P ∧ ¬Q to­tuus­ar­vo riip­puu se­kä P:stä et­tä Q:sta. Sik­si jo­kai­ses­sa kaa­vas­sa, jo­ka sa­noo sa­man asian kuin ¬P ∧ ¬Q, esiin­tyy se­kä P et­tä Q. Ly­hyem­piä sel­lai­sia kaa­vo­ja on vain kah­dek­san: PQ, PQ, PQ, PQ ja sa­mat toi­sin­päin. Jo­kai­ses­ta voi no­peas­ti to­de­ta, et­tä se ei sa­no sa­maa kuin ¬P ∧ ¬Q.

Ten­tis­sä vas­taa­jan ei kui­ten­kaan tar­vit­se pe­rus­tel­la, et­tä ly­hyem­pää oi­keaa vas­taus­ta ei ole ole­mas­sa, kos­ka si­tä ei ky­syt­ty. Opis­ke­li­ja voi kir­joit­taa ly­him­män kek­si­män­sä kaa­van jo­ka sa­noo oi­kean asian, ja toi­voa et­tä se oli­si ly­hin mah­dol­li­nen tai et­tä se tuot­tai­si edes osan pis­teis­tä, jos vie­lä ly­hyem­pi kaa­va on ole­mas­sa.

(e) ¬P ∨ (QP) ∧ R  ⇔

Ten­tin vuon­na kurs­sil­la ei kä­si­tel­ty mää­rit­te­le­mä­tön­tä to­tuus­ar­voa U. Sik­si ten­tis­sä ole­tet­tiin, et­tä se ei ole käy­tös­sä.

tai

Tä­män rat­kai­se­mi­nen kan­nat­taa aloit­taa ha­vain­nos­ta, et­tä se on muo­toa ¬P ∨ (…). Jos P on epä­to­si, ko­ko kaa­va on to­si riip­pu­mat­ta sii­tä, mi­tä (…) on. Jos P on to­si, ko­ko kaa­va tuot­taa sen mi­tä (…) tuot­taa. Kos­ka (…) on (QP) ∧ R, niin kun P on to­si se tuot­taa (QT) ∧ R eli TR eli R. Ei tar­vit­se kä­si­tel­lä ta­paus­ta jos­sa P on mää­rit­te­le­mä­tön, kos­ka ten­tis­sä ole­tet­tiin, et­tä U ei ole käy­tös­sä. Teh­tä­vän kaa­va tar­koit­taa siis sa­maa kuin ¬PR.

Voi­ko sen saa­da vie­lä ly­hyem­mäk­si?Kyl­lä voi: PR. Ku­kaan tent­tiin vas­tan­neis­ta ei ol­lut huo­man­nut tä­tä. On­nek­si täy­den pis­teen sai myös vas­tauk­sel­la ¬PR.

Ai­hee­seen liit­ty­viä har­joi­tuk­sia: link­ki (link­ki)

(f) n < 2 ∧ m > 5 ∨ ¬(m < nn = m)  ⇔

tai

En­sin kan­nat­taa sie­ven­tää osuus ¬(m < nn = m). Sii­tä tu­lee
tai

n-m-koordinaatisto Nyt kaa­va on muo­toa (n < 2 ∧ m > 5) ∨ (…)m > n. Sen kum­mas­ta­kin puo­les­ta kan­nat­taa piir­tää ku­va. Piir­räm­me en­sin n < 2 ∧ m > 5. Si­tä var­ten ko­pioi ohei­nen koor­di­naa­tis­to ky­näl­lä pa­pe­ril­le. Sit­ten li­sää sii­hen kat­ko­vii­val­la suo­ra n = 2. Tu­lok­sen pi­täi­si näyt­tää täl­täsuora n=2. Li­sää ku­vaan m = 5suora m=5. Tum­men­na alue n < 2 ∧ m > 5alue n < 2 ∧ m >
5.

Nyt piir­räm­me ku­van osuu­des­ta (…)m > n. Vih­je 1Ko­pioi ohei­nen koor­di­naa­tis­to uu­del­leen. Piir­rä ko­pioon kat­ko­vii­val­la suo­ra n = m. Vih­je 2Tum­men­na se puo­li, jol­la n < m eli m > n. Tum­men­net­ta­van puo­len tun­nis­ta­mi­sek­si et­si jo­kin pis­te, jos­sa m > n. Pis­te m = 1 ja n = 0 kel­paa. Tu­lok­sen pi­täi­si näyt­tää täl­täalue m > n.

Kun mo­lem­mat ku­vat lai­te­taan pääl­lek­käin, niin saa­daan täl­lai­nen ku­vayhdistetty m-n-2-5 kuva. Teh­tä­vän vas­taus on sii­tä poi­mit­ta­vis­sa.

Nyt kun vas­taus tie­de­tään, on help­po jäl­ki­vii­saa­na näh­dä, et­tä se oli­si ol­lut pää­tel­tä­vis­sä il­man ku­vien piir­tä­mi­sen vai­vaa: jos n < 2 ∧ m > 5, niin n < 2 < 5 < m, jo­ten n < m. Niin­pä ai­na kun n < 2 ∧ m > 5 on to­si, myös n < m on to­si, jo­ten n < 2 ∧ m > 5 ∨ n < m  ⇔  n < m.

4. (a) Suo­men­na tau­lu­kos­ta T[1…n] pu­hu­va pre­di­kaat­ti
n > 0 ∧ ∀ i; 2 ≤ in: T[i] < 0

Mal­li­vas­tausMuut kuin en­sim­mäi­nen al­kio ovat ne­ga­tii­vi­sia. (Tä­tä voi täy­den­tää to­tea­muk­sel­la, et­tä en­sim­mäi­nen al­kio on ole­mas­sa. Myös voi ol­la hy­vä mai­ni­ta, et­tä ei ote­ta kan­taa sii­hen, on­ko en­sim­mäi­nen al­kio ne­ga­tii­vi­nen.)

Suo­men­nok­ses­sa ta­voi­tel­laan il­maus­ta, jo­ka on ih­mi­sil­le mah­dol­li­sim­man sel­keä ja luon­te­va mut­ta sa­mal­la asia­si­säl­lön osal­ta mah­dol­li­sim­man tark­ka. Il­maus ”n on suu­rem­pi kuin nol­la ja jo­kai­sel­la i jo­ka on vä­hin­tään kak­si ja enin­tään n pä­tee et­tä T[i] on pie­nem­pi kuin nol­la” ei ole suo­men­nos vaan kaa­van lu­ke­mi­nen sa­noil­la sel­lai­se­naan.

Osuus n > 0 tar­koit­taa, et­tä tau­luk­ko T ei ole tyh­jä. Mal­li­vas­tauk­ses­sa tä­tä ei sa­no­ta erik­seen, kos­ka osuus ”Muut kuin en­sim­mäi­nen” vih­jaa mel­ko sel­väs­ti, et­tä en­sim­mäi­nen al­kio on ole­mas­sa eli et­tä T ei ole tyh­jä. Sen saa kui­ten­kin sa­noa erik­seen var­muu­den vuok­si, kos­ka eri ih­mi­set tul­kit­se­vat luon­nol­li­sen kie­len il­mauk­sia eri ta­voil­la.

Ei ole ole­mas­sa sel­vää ra­jaa sil­le, mil­loin luon­nol­li­sen kie­len il­maus sa­noo asia­si­säl­lön tar­kas­ti oi­kein. Ma­te­maat­ti­sia mer­kin­tö­jä on ke­hi­tet­ty juu­ri sik­si, et­tä asioi­ta voi­tai­siin il­mais­ta yk­si­kä­sit­tei­sen tar­kas­ti ja sa­mal­la tii­viis­ti. Nii­tä har­joi­tel­laan täl­lä kurs­sil­la sik­si, et­tä tark­kuus ja yk­si­kä­sit­tei­syys ovat olen­nai­sia oh­jel­mien vaa­ti­mus­mää­rit­te­lys­sä.

Osuus ∀ i; 2 ≤ in: tar­koit­taa, et­tä i käy lä­pi ar­vot 2, 3, …, n ja kak­sois­pis­teen jäl­keen väi­tet­ty asia pä­tee niis­tä jo­kai­sel­le. Täs­sä i on si­dot­tu ei­kä va­paa muut­tu­ja. Muut­tu­jat n ja T ovat va­pai­ta. Nii­den ar­vot tu­le­vat väit­tä­män ul­ko­puo­lel­ta. Teh­tä­vän pre­di­kaat­ti on to­si esi­mer­kik­si sil­loin kun n = 3 ja T = [1, −2, −3] ja epä­to­si esi­mer­kik­si sil­loin kun n = 4 ja T = [1, −2, 3, −1]. Siis n ja T saa­vat ar­von­sa sii­tä tau­lu­kos­ta, jos­ta kul­loin­kin pu­hu­taan. Sa­ma ei pä­de i:hin, vaan se saa ar­von­sa osuu­des­ta ∀ i; 2 ≤ in:. Siis i on väit­tä­män si­säi­nen apu­muut­tu­ja.

Kak­sois­pis­teen jäl­keen lu­kee T[i] < 0, mi­kä tar­koit­taa, et­tä koh­das­sa i si­jait­se­va al­kio on ne­ga­tii­vi­nen. Siis ∀ i; 2 ≤ in: T[i] < 0 tar­koit­taa, et­tä koh­dis­sa 2, 3, …, n si­jait­se­vat al­kiot ovat kaik­ki ne­ga­tii­vi­sia. Kos­ka tau­lu­kon in­dek­soin­ti­alueek­si on il­moi­tet­tu 1…n, edel­lä mai­ni­tut koh­dat kat­ta­vat tau­lu­kon kaik­ki muut al­kiot pait­si en­sim­mäi­sen. Siis muut kuin en­sim­mäi­nen al­kio ovat ne­ga­tii­vi­sia.

Al­kion T[1] ar­vos­ta ei sa­no­ta mi­tään. Sik­si se voi ol­la ne­ga­tii­vi­nen, mut­ta se voi ol­la myös ei-ne­ga­tii­vi­nen.

Ai­hee­seen liit­ty­viä har­joi­tuk­sia: link­ki

Esi­tä seu­raa­vat tau­lu­kos­ta T[1…n] pu­hu­vat väit­tä­mät pre­di­kaat­tei­na.

(b) Lu­ku 5 esiin­tyy sii­nä ai­na­kin kah­des­ti.

Ha­luan yrit­tää kir­joit­taa mah­dol­li­sim­man ly­hyen vas­tauk­sen

tai

Kir­joi­tam­me har­joi­tuk­sen vuok­si hel­pom­man kaa­van, jo­ka sa­noo, et­tä lu­ku 5 esiin­tyy sii­nä ai­na­kin ker­ran. Vih­jeTä­mä saa­daan sa­not­tua sa­no­mal­la, et­tä tau­lu­kos­sa on paik­ka, jos­sa lu­ku 5 esiin­tyy. Pai­kal­le täy­tyy an­taa ni­mek­si jo­kin muut­tu­ja. Mi­kä ta­han­sa käy. Va­lit­sem­me muut­tu­jan i. ”Lu­ku 5 esiin­tyy pai­kas­sa i” sa­no­taan T[i] = 5. Tä­män eteen tar­vi­taan jo­ta­kin sa­no­maan, et­tä i on jo­kin tau­lu­kon paik­ka. Il­maus ”∃ i” sa­noo et­tä i on jo­kin, ja tau­lu­kon pai­kak­si se saa­daan ra­joit­ta­mal­la i:n ar­vok­si tau­lu­kon in­dek­seil­le lail­li­set ar­vot. Jäl­kim­mäi­nen on­nis­tuu il­mauk­sel­la ”1 ≤ in”. Näi­den vä­liin tar­vi­taan vä­li­mer­kik­si ; jot­ta lu­ki­ja nä­ki­si et­tä ra­joit­ta­va osuus on il­mauk­ses­sa mu­ka­na, ja pe­rään : erot­ta­maan tä­hän­as­ti­nen osuu­des­ta T[i] = 5.

tai

Sit­ten li­sä­tään il­maus, jo­ka sa­noo, et­tä 5 esiin­tyy toi­sen­kin ker­ran. Sa­man­lai­nen il­maus kuin äs­ken kel­paa, mut­ta jou­du­taan käyt­tä­mään eri muut­tu­jaa. Saa­daan j; 1 ≤ j ≤ n: T[j] = 5 Täy­tyy myös sa­noa, et­tä edel­lä mai­nit­tu ja tä­mä paik­ka ovat eri pai­kat, eli ij Kos­ka sii­nä käy­te­tään mo­lem­pia muut­tu­jia, se täy­tyy si­joit­taa si­ten, et­tä se on mo­lem­pien kvant­to­rien vai­ku­tus­pii­ris­sä. Kos­ka eri osien täy­tyy ol­la yh­tä­ai­kaa voi­mas­sa, ne yh­dis­te­tään ope­raat­to­ril­la

Vas­taus­ta saa ly­hen­net­tyä näinRa­jaa mo­lem­mat muut­tu­jat sa­mal­la ra­jaa­jal­la si­ten, et­tä toi­nen muut­tu­ja il­mai­see en­sim­mäi­sen ja toi­nen jäl­kim­mäi­sen pai­kan..

Ai­hee­seen liit­ty­viä har­joi­tuk­sia: link­ki link­ki

(c) Lu­ku 5 esiin­tyy sii­nä täs­mäl­leen kah­des­ti.


tai

Vih­jeEdel­li­sen koh­dan vas­tauk­seen li­sä­tään osuus, jo­ka sa­noo, et­tä kol­mat­ta koh­taa ei ole, jos­sa al­kio on 5. Se voi­daan sa­noa esi­mer­kik­si sa­no­mal­la, et­tä jo­kai­sel­la k, jo­ka on lail­li­sel­la alueel­la ei­kä ole i ei­kä j, koh­das­sa k ole­va al­kio ei ole 5.

5. (a) (2 pis­tet­tä) Kir­joi­ta ja­ko­yh­tä­lö käyt­täen sa­no­ja ”div” ja ”mod”. Ker­ro mil­lä vä­lil­lä ja­ko­jään­nös on.

Mal­li­vas­taus n = m(n div m) + n mod m
0 ≤ n mod m < |m|

Kal­lel­la oli 93 kark­kia. Kal­len syn­ty­mä­päi­vil­lä oli 8 las­ta Kal­le it­se mu­kaan­lu­kien. Kal­le ja­koi kar­kit niin et­tä jo­kai­nen sai yh­tä pal­jon ja muu­ta­ma jäi yli. Ku­kin sai kark­kia ja yli jäi kark­kia.
tai

Täs­sä esi­mer­kis­sä
jaet­ta­va on
ja­ka­ja on (vas­taus ”Kal­le” ei kel­paa ☺)
osa­mää­rä on
ja­ko­jään­nös on
tai

Lap­set sai­vat yh­teen­sä kark­kia.
tai

Kal­lel­la oli n kark­kia. Kal­len syn­ty­mä­päi­vil­lä oli m las­ta Kal­le it­se mu­kaan­lu­kien. Kal­le ja­koi kar­kit niin et­tä jo­kai­nen sai yh­tä pal­jon ja muu­ta­ma jäi yli. Ku­kin sai kark­kia ja yli jäi kark­kia.
tai

Sym­bo­lei­ta n ja m täl­lä ta­val­la käy­tet­täes­sä
jaet­ta­va on
ja­ka­ja on
osa­mää­rä on
ja­ko­jään­nös on
tai

Las­ten yh­teen­sä saa­mien kark­kien mää­rä voi­daan il­mais­ta kah­del­la ly­hyel­lä ta­val­la.

il­man sa­naa div
Vih­jekark­kien ko­ko­nais­mää­rä vä­hen­net­ty­nä yli jää­nei­den mää­räl­lä tai
il­man sa­naa mod
Vih­jeyh­den lap­sen saa­mien kark­kien mää­rä ker­rot­tu­na las­ten mää­räl­lä tai

Ja­ko­yh­tä­lö saa­daan mer­kit­se­mäl­lä ne yh­tä­suu­rik­si ja siir­tä­mäl­lä ter­me­jä si­ten, et­tä jaet­ta­va on yk­sin omal­la puo­lel­laan. Siis
=
tai

Sa­noil­la il­mais­tu­na: jaet­ta­va on yh­tä­suu­ri kuin ja­ka­ja ker­taa osa­mää­rä plus ja­ko­jään­nös.

Muis­tam­me, et­tä ja­ka­ja ei voi ol­la nol­la. Ole­tam­me vä­hän ai­kaa, et­tä jaet­ta­va ja ja­ka­ja ei­vät ole ne­ga­tii­vi­sia. Ja­ko­jään­nös on ai­na vä­hin­tään , kos­ka Se ei voi ol­la pie­nem­pi kuin nol­la, kos­ka muu­toin lap­sil­le yh­teen­sä oli­si jaet­tu enem­män kark­ke­ja kuin nii­tä yh­teen­sä on. Se voi ol­la nol­la, kos­ka se on nol­la esi­mer­kik­si sil­loin kun ja­ka­ja on yh­tä­suu­ri kuin jaet­ta­va. Ja­ko­jään­nös on ai­na enin­tään , kos­ka Se ei voi ol­la suu­rem­pi ei­kä yh­tä­suu­ri kuin ja­ka­ja, kos­ka muu­toin jo­kai­sel­le lap­sel­le voi­tai­siin an­taa ai­na­kin yk­si kark­ki li­sää. Se voi ol­la yh­tä pie­nem­pi kuin ja­ka­ja, kos­ka niin käy esi­mer­kik­si sil­loin kun kark­kien mää­rä on yh­tä vail­le kak­si ker­taa las­ten mää­rä. Kaa­va­na tä­män voi il­mais­ta näin0 ≤ n mod m < m.
tai

Kun ja­ka­ja on ne­ga­tii­vi­nen, niin ja­ko­jään­nös ei voi ol­la äs­ken il­moi­te­tul­la vä­lil­lä, kos­ka eh­dos­ta 0 ≤ n mod m < m seu­raa 0 < m, mi­kä m:n ol­les­sa ne­ga­tii­vi­nen on mah­do­ton­ta. Kun ja­ka­ja, jaet­ta­va tai mo­lem­mat saa­vat ol­la ne­ga­tii­vi­sia, niin asia on mo­ni­mut­kai­nen. Wi­ki­pe­dias­sa on hy­viä ku­via ja pal­jon muu­ta tie­toa. On ole­mas­sa ai­na­kin kol­me va­kiin­tu­nut­ta käy­tän­töä:

Ohei­nen tau­luk­ko ha­vain­nol­lis­taa, mi­ten se­ka­va asia on oh­jel­moin­ti­kie­lis­sä. Se ker­too, min­kä mu­kaan ja­ko­jään­nök­sen etu­merk­ki va­li­taan. Sen tie­dot on poi­mit­tu Wi­ki­pe­dian pal­jon isom­mas­ta tau­lu­kos­ta.

kie­lijaet­ta­van ja­ka­jan
AppleScriptmod
C++ 2011%
C#%
Haskellremmod
Java%Math.floorMod
Perl%
Pythonmath.fmod%
Rubyremainder()%, modulo()

Tär­keää on osa­ta

(b) (4 pis­tet­tä) Kir­joi­ta en­nal­ta miet­ti­mä­si es­see al­le tai eri pa­pe­ril­le (saat sen pyy­tä­mäl­lä, muis­ta kir­joit­taa sin­ne ni­me­si ja syn­ty­mä­ai­ka­si).

Kurs­sil­la ei enää ole es­see­tä.