Autorské riešenie
[stiahni]

V priestupnom roku má február 29 dní a rok 366 dní. Ktoré roky sú priestupné?
Základom kalendárneho roku je tropický rok. Tropický rok je obdobie medzi dvoma po sebe nasledujúcimi prechodmi Slnka jarným bodom. Tropický rok trvá 365,24219 dní alebo 365 dní, 5 hodín, 48 minút a 45,4 sekúnd. Počas tropického roku sa vystriedajú všetky štyri ročné obdobia. Ak by tropický rok trval 365,25 dní, na vyriešenie úlohy by postačoval jednoduchý test, či zadaný rok je deliteľný číslom 4.

V skutočnosti je to trochu komplikovanejšie. Ak by každý rok mal 365 dní, za 4 roky by nastala chyba:
365,24219 * 4 - 365 * 4 = 1460,96876 - 1460 = 0,96876, t.j. skoro jeden celý deň. Preto sa každý štvrtý rok pridáva jeden deň. Štyri roky teda trvajú 1460 + 1 = 1461 dní.

Ak by sme takýmto spôsobom počítali dlhšiu dobu, tak aj takáto malá chyba narastie na väčšiu. 100 rokov by trvalo (365 * 4 + 1) * 25 = 1461 * 25 = 36525 dní. V skutočnosti však 100 tropických rokov trvá 100 * 365,24219 = 36524,219 dňa. To je ale skoro o deň menej, než počet, keď každý štvrtý rok je priestupný. Aby sme túto chybu zmenšili, každých 100 rokov bude jeden z pôvodne priestupných rokov nepriestupný. 100 rokov teda bude trvať (365 * 4 + 1) * 25 - 1 = 1461 * 25 - 1 = 36525 - 1 = 36524 dní.

Každých 100 rokov teda nastane chyba v našom počítaní oproti presnému počítaniu tropických rokov 36524,219 - 36524 = 0,219 dňa, čo znamená že nám bude chýbať približne 1/4 dňa. Za 400 rokov táto chyba bude 0,219 * 4 = 0,876 dňa. Každých 400 rokov nám teda bude chýbať skoro celý deň. Takže raz za 400 rokov opäť pridáme jeden priestupný rok. 400 rokov teda bude trvať:
((365 * 4 + 1) * 25 - 1) * 4 + 1 = (1461 *25 - 1) * 4 + 1 = 36524 * 4 + 1 = 146097. 400 tropických rokov trvá 400 * 365,24219 = 146096,876. Za 400 rokov teda nastane chyba len 146096,876 - 146097 = -0,124. To je síce tiež chyba, ale pre praktické použitie je takmer zanedbateľná. Prehľadnejšie aj s presnejším výpočtom si to môžeme pozrieť v nasledujúcej tabuľke:

Platí teda že každý 4 rok (deliteľný 4) je priestupný, napr. 1996, 2004. Roky, ktoré sú deliteľné číslom 100 nie sú priestupné, napr. 1700, 1800, 1900. Ak je však rok deliteľný 400, je priestupný, napr. 1600, 2000. Týmito úpravami sa dokážeme priblížiť trvaniu tropického roku.

Výsledná procedúra môže vyzerať napríklad takto:

viem rokJePriestupny :rok
  ak2 zvysok :rok 4 = 0 [
   ak2 zvysok :rok 100 = 0 [
    ak2 zvysok :rok 400 = 0 [
     pis "priestupny
     ] [
    pis "nepriestupny
    ]
   ] [
   pis "priestupny
  ] [
  pis "nepriestupny
 ]
koniec

Vaše zaujímavé riešenia a najčastejšie chyby

Bezchybné riešenie poslali dva tímy - profík Dvaja Mušketieri a profík Kofoláci. V riešení tímu profík Majstrivobore sa vyskytli iba chyby z nepozornosti. Ostatné tímy počítali iba zvyšok po delení roku číslom 4 a na základe neho vypísali, či je rok priestupný alebo nie. Avšak existujú výnimky, kedy aj rok deliteľný 4 nie je priestupný ako je uvedené vyššie.