En tiedä onko tämä oikea sivusto/alue kysyä tällaista mutta koska tehtävä liittyy osittain ohjelmointiin niin ajattelin hakea apua täältä Ohjelmointiputkasta. Olen siis abiturientti ja hakemassa TKT:lle tänä keväänä joten valmistaudun parhaillaan pääsykokeeseen mm. pänttäämällä pitkän matikan logiikan kirjaa. Nyt löytyi algoritmeihin liittyvä tehtävä joka ei ihan heti ole auennut. Kysymys kuuluu:
"Esitä algoritmi, miten syötteenä annettu propositiolauseen A muunnetaan loogisesti ekvivalentiksi lauseeksi A', jossa ei esiinny muita konnektiiveja kuin negaatio tai disjunktio. Toteuta algoritmi jollain tunnetulla ohjelmointikielellä."
Suomeksi kysymys kuuluu, miten lause A muunnetaan muotoon, jossa esiintyy vain konnektiiveja ¬ (negaatio, "ei") ja ∨ (disjunktio, "tai"). Toisin sanoen kaikki muut konnektiivit eli ∧ (konjunktio, "ja"), → (implikaatio, "seuraa") ja ↔ (ekvivalenssi, "sama kuin") pitää osata esittää vain noita kahta sallittua käyttäen.
Logiikan kannalta tehtävän idea on siinä, että keksit korvikkeet lauseille x∧y, x→y ja x↔y. Mielestäni kaksi viimeistä muuttuvat luontevasti ensin välimuotoon, jossa on myös ∧-konnektiivi.
Algoritmi tarkoittaa selostusta siitä, miten mielivaltainen lause A saadaan muutettua. ("Etsi X, korvaa Y:llä, toista, kunnes ei löydy X:ää.") Ohjelmoinnin kannalta suurin vaiva on käsitellä lauseessa olevat sulut oikein. Toki ilman aiempaa ohjelmointikokemusta algoritmin ohjelmointi voi olla vaivalloista.
Joo, siis kyllä konnektiivit ovat jo entuudestaan tuttuja ja ohjelmoinnistakin olen ehtinyt muutaman kielen alkeet opetella. Tuo termi 'algoritmi' vain vähän hämäsi uutena ja sitten sen yhdistäminen tuohon koko tehtävään. Mutta kyllä tuo nyt aukesi, eli kiitos neuvosta!
Aihe on jo aika vanha, joten et voi enää vastata siihen.