code parsed in 0.013 seconds
<div class="holder"> <h3>Pascalov trojuholn¡k</h3> <pre title="Pascalov trojuholn¡k" class="right"> 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1</pre> <ul> <li>raz</li> <li>dva</li> <li>tri</li> </ul> <p>Tento trojuholn¡k zostroj¡me tak, le na zaciatok nap¡aeme do prv‚ho riadku jednotku. Do druh‚ho riadku dve jednotky. Do tretieho riadku budeme p¡sa¯ c¡sla, ktor‚ s£ s£ctom dvoch c¡sel v riadku nad tymto c¡slom. Takto m“leme pokracova¯ al do nekonecna.</p> <p>Pascalov trojuholn¡k je matematicky vcelku zauj¡mav vec pretole c¡sla v riadkoch s£ koeficienty clenov polyn¢mu, ktory vznikne rozn soben¡m vyrazu <dfn>(a + b)<sup>n</sup></dfn> kde <var>n</var> je c¡slo riadku + 1.</p> <p>Napr¡klad pre <samp>(a + b)<sup>3</sup></samp> bude <dfn>n = 3</dfn> a tak budeme hæada¯ koeficienty v 4. riadku Pascalovho trojuholn¡ka, ktor‚ s£ 1, 3, 3, 1. A naozaj <samp>(a + b)<sup>3</sup> = 1a<sup>3</sup> + 3a<sup>2</sup>b + 3ab<sup>2</sup> + 1b<sup>3</sup></samp>.</p> <h3 class="cleaner">Sierpinsk‚ho trojuholn¡k</h3> <pre class="right">1 1 1 1 1 1 0 1 0 1 1 0 1 0 1</pre> <p>Teraz si predstavme, le si Pascalov trojuholn¡k prep¡aeme tak, le tam kde s£ p rne c¡sla d me 0 a tam kde s£ nep rne d me 1. Teraz tento trojuholn¡k eate prekresl¡me tak, le jednotky na æavej strane bud£ na osi y a jednotky na pravej strane trojuholn¡ka bud£ na osi x.</p> <p>Trojuholn¡k teda tvor¡me tak, le c¡slo, ktor‚ chceme z¡ska¯ je s£ctom c¡sla nalavo od neho a c¡sla nad n¡m. Samozrejme uvalujeme iba c¡sla 0 a 1 — pracujeme v <abbr title="dvojkovej">bin rnej</abbr> s£stave. Cile 1 + 1 = 0.</p> <div class="right"> <img src="/bordel/sierpinsky/sierpinsky.gif" title="Sierpinsk‚ho trojuholn¡k" alt="Sierpinsk‚ho trojuholn¡k" width="128" height="128" /> </div> <p>Teraz ul len stac¡ vaade tam kde je 1 nakresli¯ bod a kde je 0 bod nakresli¯ inou farbou. Ak toto urob¡me pre na dostatocne veækej ploche dostaneme zauj¡mavy obr zok.</p> <p>Ide o jednoduchy pr¡pad frakt lu. Cile £tvaru, ktor‚ho nejak cas¯ sa podob na £tvar cely. Existuj£ samozrejme aj komplexnejaie frakt ly a medzi tie najzn mejaie patr¡ urcite Mandelbrotova mnolina a Pytagorov strom. Ale to je ul in‚ rozpr vanie.</p> <h3 class="cleaner">Assembler</h3> <p>Al teraz sa dost veme sa ku korenu veci. Zaumienil som ti totil naprogramova¯ program, ktory vykresl¡ Sierpinsk‚ho trojuholn¡k na cel£ obrazovku. V mojom pr¡pade 640x480 bodov. Na tomto samotnom by nebolo nic zvl atne a tak som si povedal, le ten program mus¡ by¯ co najkrata¡.</p> <p>Prvy pokus mal nieco cez 60 bajtov ale za pol hodinku som to skresal na 54. O den nesk“r ma napadla finta vyul¡vaj£ca vypocet z predch dzaj£ceho kroku a tak som sa dostal pod hranicu 50 bajtov. Nakoniec mi <a href="http://www.hvge.sk">hvge</a> poradil krata¡ sp“sob ukoncenia programu, eate som to trochu odladil a tak som sa dostal na magick£ hranicu 41 bajtov.</p> <p>Tu je tych 41 bajtov (<a href="/bordel/sierpinsky/sierp3.com" title="DOS program sierp3.com">sierp3.com</a>), na ktor‚ som tak nesmierne hrdy: </p> <p class="code">B0 11 CD 10 BA E0 01 B9 7F 02 4A B0 01 E9 08 00 FE C4 42 CD 10 4A 30 D8 B4 0C 88 C3 CD 10 E2 F0 85 D2 75 E3 30 E4 CD 16 C3</p> <p>Pokiaæ by niekoho zauj¡mal <a href="/bordel/sierpinsky/sierp3.asm">kompletny zdroj k</a> tak si ho m“le v kæude stiahnu¯. Kompilova¯ ho vaak bude treba cez <a href="http://nasm.sourceforge.net"><acronym title="Netwide Assembler">NASM</acronym></a>.</p> </div> <!-- parsed by Pretty && Source 0.5.2 (http://johno.jsmf.net/knowhow/pretty_source/) (c) 2003 - 2004 johno -->