Nyní Vám představím svoje řešení, které najdete v souboru PYRAM.LST jako listing programu v TURBOBASICU. (Je uveden jako listing ze dvou důvodů. Hlavním důvodem je to, že si jej můžete prohlédnout rovnou zde, v hypertextu. A také - listing je kratší o jeden sektor.) Tento program musíte do TURBOBASICu načíst povelem:

ENTER"D:PYRAM.LST"

(tohle za vás udělá volba 8 v "AUTORUN.BAS" na straně B) poté jej normálně spustíte. Nyní ale již popis:

Řádky 10 - 60: vynulují se vestavěné TURBOBASICovské hodiny a vypíše hlavička.

Řádek 70: definice pole proměnné A(9,9), kde bude vlastní pyramida počítána.

Řádky 80 - 100: definují se tři známá čísla ve spodní řadě (2., 5. a 8. číslo v 9. řadě).

Řádek 110: cyklus, definující první a třetí číslo spodní řady. Tady existuje jednoduchý vztah: pokud bude první číslo I, druhé číslo je definičně dané jako 4 a třetí bude J, potom dvě čísla nad nimi, 1. a 2. v řádku 8. budou 4+I a 4+J. Stejným způsobem musí být 1. číslo v řádku jejich součtem, neboli 8+I+J a to se musí rovnat 10. Jednoduchým řešením zjistíme, že I+J=2 a možné kombinace I a J jsou 0,2; 1,1; 2,0.

Řádek 120: cyklus definující sedmé a deváté číslo M, N. Ze stejných důvodů musí být jejich součet roven 4.

Řádky 130 a 140: cykly definující čtvrté a šesté číslo spodní řady. Protože roste možnost kombinací, zkoušejí se všechna čísla od 0 do 3. Více nemá cenu, protože i kdyby byly na ostatních místech nejnižší řady pouze nuly, v pátém řádku by na příslušných místech vycházela čísla větší jak 20.

Řádky 150 a 160: přiřazení čísel I až N do spodní řady pole A(x,9)

Řádky 170 - 200: nyní máme předpokládanou podobu spodní řady. V těchto dvou cyklech se vypočítají všechny členy pyramidy podle zadání - každý prvek je součtem dvou pod ním ležících.

Řádky 210-240: na těchto řádcích testujeme, zda vypočítané členy na vyšších patrech odpovídají definovaným (kromě desítek na 7 řádku, které tam budou vždy - viz řádky 110 a 120). Pokud se najde chyba, přeskočí se výpis řešení.

Řádek 250: výpis správného výsledku (správných výsledků).

Řádky 260-290: konce cyklů definujících prvky spodní řady.

Řádky 300 - 340: výpis času potřebného k výpočtu ve formátu hhmmss.

Tento program reprezentuje pouze jedno z možných řešení. Je založen na principu "vyzkoušej všechno", který je vylepšen o úvahu, které kombinace vyloučit předem. Program takto testuje 240 kombinací a Vy víte, že máte podchycena všechna řešení. Kdybyste například na všech místech nezávisle předpokládali třeba čísla 0 až 9, potom by testovaných pozic bylo 1000000 a časová náročnost by byla podstatně větší.

Jaksi "nejčistším" řešením by bylo uvažovat soustavu 6 rovnic o 6 neznámých. Jednalo by se o vyčíslení 6 známých čísel na vyšších patrech pomocí 6 proměnných na spodním řádku. To by se ale ztěží dalo dělat na počítači.

Jan Walla