Jõulumõistatuse lahendus

Jõulumõistatuse lahendus🎄

Enne kui lahenduse juurde asume, pakume sulle viimase võimaluse ülesanne iseseisvalt lahendada ja anname ühe väärtusliku vihje: ühes euros on sada senti.

Kui see väga palju edasi ei aidanud, siis olgu pealegi 😊 Lahendus on siin.

Mida teame:

  • Päkapikk oleks pidanud saama x eurot ja y senti, aga talle anti hoopis y eurot ja x senti.
  • Pärast viie sendi kaotamist oli tal õigega võrreldes kahekordne summa, mida võib väljendada kui
    • 2x eurot ja 2y senti – aga oot! See kehtib ainult siis, kui õige sentide arv y oli väiksem kui 50. Kui sentide arv on 50 või enam, siis sentide summa on 100 või rohkem ja peame eurodele lisama 1 ja lahutama sentide arvust 100. Seega
    • 2x+1 eurot ja 2y – 100 senti, kui y ≥ 50.

Seega saame nüüd koostada võrrandisüsteemid:

  • Kui y < 50:

2x = y

2y = x – 5

  • Kui y ≥ 50:

2x + 1 = y

2y – 100 = x – 5

Kui oleme siiamaani jõudnud, siis edasi on juba üsna lihtne, aga kirjutame lahenduskäigu ikkagi lõpuni välja.

Lahendame kõigepealt teise võrrandisüsteemi:

  • Avaldame esimesest võrrandist y: y = 2x + 1.
  • Asendame selle teise võrrandisse: 2(2x+1) – 100 = x – 5.
  • Avame sulud: 4x + 2 – 100 = x – 5, viime x ühele poole: 4x – 98 = x – 5, siis 3x = 93 ja x = 31.
  • Leiame y: y = 2x+1 = 2⋅31+1 = 62+1 = 63.

Kui lahendame sarnaselt esimese võrrandisüsteemi, siis leiame, et seda rahuldab ainult negatiivne x, negatiivne eurode arv aga vastuseks ei sobi. Seega sobib vastuseks ainult teise võrrandisüsteemi lahend.

Vastus: päkapikk oleks pidanud saama 31 eurot ja 63 senti.

Alternatiiv on püstitada ülesanne ka ühe võrrandina:

100y  + x – 5 = 2(100x + y)

Seda nimetatakse diofantiliseks võrrandisüsteemiks, kus tundmatute arv on võrrandite arvust suurem ja otsitakse täisarvulisi lahendeid. Tulenevalt pühadeaegsest mõttelaiskusest ei hakka me süvenema selle keerulisematesse lahendamisvõimalustesse, vaid paneme arvuti võrrandit rahuldavaid täisarvude kombinatsioone läbi otsima (kasutades ära teadmist, et nii eurode kui sentide arv peab jääma alla 100). Kasutame selleks oma lemmiktarkvara R:

data.table::CJ(euro = 0:100, sent = 0:99) |> 
    _[sent * 100 + euro - 5 == (euro * 100 + sent) * 2]