Prvočísla v PostScriptu


Original: http://www.cs.unh.edu/~charpov/Programming/PostScript-primes/

Pokaždé, když jsem se učit nový programovací jazyk, můj první kus kódu je program pro výpočet prvočísel. To vede k typu programů, které byste očekávali v jazyce Pascal, C nebo Lisp, ale v poslední době jsem se rozhodl naučit kousky PostScript.

PostScript, jako jazyk určený pro grafiky, má veškeré aritmetický potřebné pro výpočet prvočísel. Není divu, že je poměrně snadné napsat soubor PostScript, který tiskne prvočíslo tabulky, s tou zvláštností, že tiskárna počítá prvočísla. Zde je takový soubor. To počítá prvočísla mezi 2 a 9973, ale můžete editovat soubor pro výpočet větších tabulek.

Co je pravděpodobně ještě zajímavější je kombinovat grafické schopnosti jazyka PostScript je s prvočíslo výpočty. Kdysi dávno, jsem viděl v knize obraz vypadá jako to (myslím, že to bylo v knize Martina Gardnera):

 

V tomto obrázku, který se nazývá Ulam spirála, přirozená čísla jsou umístěny podél čtvercové spirály a tečka je vytištěna na každé prvočíslo, jako je tento (pro záhadného důvodu jsem se rozhodl začít svůj spirály s 1 místo 0, prosím, don ‘t říct Dijkstra):

 

Pokud se přiblížíte k centru na předchozím obrázku, je skutečně něco takového (pomocí myši pro zobrazení čísla a linky spirály):

Pěkná věc je, když si uvědomíte, dostatečně velký počet prvočísel, začnete vidět nějaké vzory a především zarovnání objeví. V prvním obrázku můžete vidět nějaké diagonální čáry.

Zde je soubor PostScript, který čerpá přesně to. Jde arround spirály a tiskne černý disk pro každé prvočíslo. Můžete upravit zdroj pro změnu rozlišení (v DPI) a vybrat si, aby se linie spirály a čísla se objeví, nebo ne.

Díky rozlišení 72 dpi, rendering s ghostscript je poměrně rychlý.Skutečný tisk, na druhé straně (zejména na tiskárně HP) …

Zde jsou některé pěkné odkazy jsem našel související s Ulam spirály:

  • http://yoyo.cc.monash.edu.au/ ~ Bunyip / prvočísla
  • http://platon.lacitec.on.ca/ ~ dmorin / applet / obec

Comments are closed.