Računari 107

Umesto stote Pitalice

Sve na svetu ima svoj početak, ali i svoj kraj, pa smo tako i mi stigli do kraja desetogodišnjeg druženja u ovoj rubrici. Počeli smo 1985. godine u "Računarima 8" i, u ovoj po mnogo čemu jedinstvenoj seriji tekstova, objavili i detaljno rešili 99 programerskih, matematičkih, logičkih i ostalih problema, organizovali osam godišnjih takmičenja, pregledali preko 10,000 (uglavnom tačnih) rešenja koja su čitaoci poslali, i "uzgred" proučili ne samo mnoge teme iz oblasti prirodnih nauka nego i pomalo istorije, geografije, gramatike...

Dejan Ristanović

Brojevi i kvadrati

Devedeset osma Pitalica, objavljena u "Računarima 105", nije, moramo priznati, zalazila u bilo koju nauku osim matematike: trebalo je rasporediti cifre 1, 2, 3, ..., 9 tako da se dobiju brojevi X i Y pri čemu je kvadrat broja X jednak Y. Napomenuli smo da se ni jedna od cifara ne sme izostavitim, niti se neka sme ponavljati, kao i da zadatak ima dva rešenja.

Probleme ovoga tipa nije lako rešiti bez kompjutera, dok se uz njihovu pomoć sve svodi na nekoliko minuta, sati ili dana računanja - zavisno od algoritma za koji ste se opredelili. U konkretnom primeru, vlasnici solidnog PC računara ne bi morali previše da brinu o optimizaciji, pošto broj koji se kvadrira mora imati tri cifre da bi, zajedno sa svojim kvadratom, "potrošio" svih devet cifara - proveriti nekih 900 brojeva neće zahtevati neko pomena vredno vreme. Da li bismo možda mogli da zaposlimo male sive ćelije i olakšamo posao računaru?

Najmanji šestocifreni broj sa različitim ciframa je 123456, čiji je koren veći od 351, što znači da treba proveravati samo kvadrate brojeva između 352 i 999 (možda 994?). Mnoge brojeve iz ovoga intervala takođe ne bismo morali da proveravamo, jer sadrže nulu, završavaju se cifrom 1, 5 ili 6 (tada će se kvadrat završavati istom cifrom, pa bi došlo do ponavljanja koje uslovi zadatka ne dopuštaju), završavaju se sa 2 ili 8 i sadrže cifru 4, završavaju sa 3 ili 7 i sadrže cifru 9... korak po korak, skup bi se mogao svesti na jedva tridesetak kandidata. Međutim, i optimizacija ima neku meru - veći je posao napisati i izvršiti program koji uzima u obzir sve ove uslove, nego napisati i izvršiti jednostavnu proceduru sa slike 1 koja će "trenutno" generisati rezultat, brojeve 567 i 854 (5672 = 321489, 8542 = 729316).

Sve nagrade smo izvukli: prvu (100 dinara) je dobila Sanja Mrvaljević iz Beograda, drugu (80 dinara) Dejan Vranić iz Niša a treću (40 dinara) Desimir Pavlović iz Beograda. Od preostalih 179 korektnih rešenja izdvajamo priloge koje su poslali: Jelica Maksimović, Lorens Al-Hazam, Filip Crnogorac, Igor Ikodinović, Uroš Midić, Đorđe Mišljenović (zadatak rešen na Spektrumu, kao u stara dobra vremena), Branko Papić, Miodrag Penčić, Vladimir Pjević, Jan Slivka, Milutin Smiljanić i Đorđe Vuković.

program kvadrati;
{
        -- KVADRATI --
     Resenje 97. Pitalice
prema prilogu Milosa Djermanovica
        "Racunari 106"
}
var i, j, k: Byte;
procedure Proveri;
var C: set of 1..9;
    X, Y: Longint;
    l, pom: Byte;
begin
   X := i * 100 + j * 10 + k;
   Y := Sqr(X);
   C := [I, J, K];
   for l := 1 to 6 do
   begin
      pom := Y mod 10;
      if (pom = 0) or (pom in C) then Exit;
      C := C + [pom];
      Y := Y div 10;
   end;
   Writeln(X, ' ^ 2 = ', Sqr(X));
end;
begin
   for i := 3 to 9 do
   for j := 1 to 9 do if j <> i then
   for k := 1 to 9 do if (k <> j) and (k <> i) then Proveri;
end.

Marijini lanci

99. Pitalica, postavljena u prošlim "Računarima", bila je znatno teža nego što izgleda na prvi pogled - do sada nismo primili ni jedno optimalno rešenje! Naravno, rok koji smo, zbog kašnjenja januarskih "Računara", primetno produžili još nije istekao pa će rešenja svakako biti, ali da je jednostavno... nije! Podsetimo se, pre svega, problema: preturajući po podrumu, Marija je našla dvadeset komade lanca koji su imali 2, 3, 4, 5, ... 21 kariku. Želela je da od njih napravi jedan lanac koji sadrži 230 karika, ali ju je kovač "obradovao" cenama: raskivanje jedne karike (odvajanje od lanca) košta 1 dinar, a zakivanje karike (njeno uključivanje u lanac, ili spajanje dva dela lanca preko jedne karike) košta 2 dinara. Trebalo je pomoći Mariji da prođe što jeftinije.

Na prvi pogled (a i na nekoliko sledećih) reklo bi se da će Marija, kako god radila, "štetovati" 60 dinara. Međutim, poneko raskivanje se može i prištedeti - ako, recimo, kovač raskuje jednu od dve ulančane karike, ona druga je automatski "oslobođena" i ne mora se plaćati dinar za njeno raskivanje. Treba, dakle, raskovati nekoliko kraćih lanaca kako bi se na svakom od njih "uštedeo" po dinar, a ipak dobilo dovoljno karika za spajanje preostalih delova.

Najbolji rezultat dobija se raskivanjem lanaca sa 2, 3, 4 i 6 karika - biće 1+2+3+5 = 11 raskivanja (trošak: 11 dinara) i dobiće se 15 karika koje su sasvim dovoljne da se, uz trošak od 15*2 = 30 dinara, spoji preostalih 16 delova lanca. Rezultat je lanac od 230 karika plaćen 41 dinar... a verovatno i kovač koji će se sledećih mesec dana pitati šta ga je snašlo, gde je izgubio 19 dinara i kako da napravi novi cenovnik tako da ga neka buduća Marija ne "pokrade"!

Ostaje još da se zahvalimo Nedeljku Kužetu iz Inđije koji je predložio ovaj zanimljivi problem. Imena nagrađenih objavićemo u sledećim "Računarima".

Rezultati godišnjeg takmičenja

Pitalicom iz novembarskog broja "Računara" završeno je osmo godišnje takmičenje rešavača Pitalica. Tokom 1994. godine smo, na žalost, objavili manje zadataka nego prethodnih: izašlo je samo 8 brojeva našeg časopisa. Manji broj Pitalica rezultirao je nešto manjim brojem odgovora, ali je odziv i dalje bio na zadovoljavajućem nivou: u godišnjem takmičenju učestvovala su 242 rešavača koji su poslali 533 korektna rešenja. Posebno smo zadovoljni kvalitetom pristiglih priloga: naši čitaoci su pokazali mnogo znanja, programerske veštine, snalažljivosti i upornosti, pa ni jedna Pitalica nije ostala bez odgonetke. I "našu stranu" ove rubrike poslužila je fortuna: ni u jednom zadatku nije bilo štamparskih ili (sačuvaj Bože) logičkih grešaka, pa čak ni dvosmislenih postavki. Objavljena rešenja su položila "test javnosti" - ni jedno nije osporeno, ali smo primili nekoliko zanimljivih dopuna: ako jednom od svih ovih Pitalica napravimo knjigu, mnoga rešenja će imati zanimljiv post scriptum!

Najveće interesovanje izazvala je "kladionica" iz "Računara 104" i "Božićni stroj" iz "Računara 97". Najteži zadatak (ujedno i naš omiljeni) bio je "bazen koji se večito puni" iz "Računara 98", a nije bilo lako ni sa geometrijskim problemom iz "Računara 103": upravo su ove Pitalice odlučile o konačnom redosledu na našoj rang listi. Ta lista je formirana na osnovu standardnih kriterijuma po kojima svako korektno rešenje donosi jedan poen uz dva dodatna poena za osvojenu prvu i jedan dodatni poen za drugu nagradu. Ovoga puta su prvoplasirani imali različit broj poena pa nije bilo potrebe da se "prisećamo" dodatnog kriterijuma po kome nagrada, pri jednakom broju poena, odlazi onome ko je osvojio više prvih nagrada. Rang lista izgleda ovako:

  1. Vinko Marinković, Beograd - 10 poena
  2. Vladimir Nešić, Beograd - 9 poena
  3. Miloš Đermanović, Beograd - 8 poena
  4. Milutin Smiljanić, Beograd - 6+ poena
  5. Filip Crnogorac, Novi Beograd - 6 poena
  6. Desimir Pavlović, Beograd - 6 poena

Pobednik našeg osmog godišnjeg takmičenja je Vinko Marinković iz Beograda koji je uspešno rešio sve postavljene zadatke i osvojio dve druge nagrade, za rešenje 91. i 95. Pitalice. Gospodinu Marinkoviću, koji je sa dosta uspeha učestvovao i u našim ranijim takmičenjima (prošle godine se našao na četvrtom mestu) pripada godišnja nagrada.

Drugo mesto je zauzeo Vladimir Nešić iz Beograda koji je takođe rešio sve postavljene zadatke i dobio drugu nagradu za rešenje 93. Pitalice. Na trećem mestu je Miloš Đermanović iz Beograda koji je uspešno rešio šest zadataka i osvojio jednu prvu (90. Pitalica) i jednu treću nagradu. Četvrto mesto zauzeo je Milutin Smiljanić koji se nešto kasnije uključio u takmičenje, ali je osvojio jednu prvu i jednu drugu nagradu, slede Desimir Pavlović, Filip Crnogorac i mnogi drugi.

Ovo je i dobra prilika da se podsetimo pobednika naših prethodnih takmičenja - 1993. godine pobedio je Stojan Miloradović iz Beograda, 1992. godine Biljana Srdanov iz Žagubice, 1991. i 1990. Slavko Kukrika iz Ljubljane, 1989. je prvo mesto osvojio Jadran Krašovec iz Kozine, 1988. godine Milomir Aleksić iz Novog Beograda dok je prvi pobednik godišnjeg takmičenja, 1987. godine, bio Milan Grbić iz Sremčice. Pobednicima naših takmičenja, nagrađenim rešavačima, kao i svima onima čiji su prilozi tokom ovih deset godina predstavljali životnu supstancu ove rubrike, iskreno se zahvaljujemo na uloženom trudu i želimo puno uspeha pri suočavanju sa problemima koje će budućnost staviti pred njih - budite uspešni u životu bar onoliko koliko ste bili uspešni u virtuelnoj stvarnosti naših Pitalica!

I na kraju...

Kojim bih rečima mogao da zaključim poslednje poglavlje ove desetogodišnje priče? Da kažem da je uređivanje "Pitalica" za mene bilo veliki izazov, priličan napor ali i veliko zadovoljstvo? Da se "požalim" da sam, i pored sveg truda, uspeo da zadam samo jedan zadatak koji niko nije rešio? Da obećam da ću zapamtiti broj 99 i da ćete, možda u neko drugo vreme ili na drugom mestu, a svakako posle (usuđujem se da kažem zasluženog) odmora, videti i stotu Pitalicu? Zašto da čekate - najbolji epilog ove rubrike biće jedan zadatak koji možda nije jednostavan, ali je u svakom pogledu prigodan. Rešenje tog zadatka koje sam, u leto 1980. godine, poslao časopisu "Galaksija" preporučilo me je za urednika rubrike koja je prethodila Pitalicama; tako je sve počelo, pa neka se tako i završi! Ko zna, možda će ovaj zadatak i za nekoga od vas predstavljati svojevrsnu životnu prekretnicu...

Dakle, neko je zamislio dva broja koja su (strogo) veća od 1 i (strogo) manja od 21. Njihov zbir je saopštio matematičaru A, a njihov proizvod matematičaru B. Posle nekoliko dana A i B se sretnu, i počnu razgovor. A: "Nema načina da saznaš zbir". B: "Ali ja ga sada znam". A: "Sada i ja znam proizvod". Znate li koji su brojevi zamišljeni?