Důležité upozornění!

Policie České republiky a šéfcensor Ústavu pro studium totalitních režimů Jaroslav Čvančara varují: citovat jakékoli texty z tohoto blogu způsobuje vážné risiko trestního stíhání! Četba na vlastní nebezpečí!

Že nejdůležitějším dělítkem mezi lidmi není pohlaví, jsem tušil odedávna. Byly doby, kdy jsem měl za to, že tato pomyslná hranice vede mezi kuřáky a nekuřáky. Dnes vím, že je tomu jinak, a minimálně vzdělanější část populace se dělí na ty, kteří věří v existenci záporné nuly, a ty, kdo její existenci popírají. Sám se sice řadím vášnivě a nekompromisně mezi antiminusnulisty, avšak mám za vnitřně obohacující všímat si argumentů, s nimiž minusnulisté přicházejí a jimiž oblažují laický, jakož i pseudoodborný diskurs.

Co je podle nich minus nula? Zkuste se jich zeptat, a po chvilkovém dotazování z nich nejspíše vymámíte odpověď, že je to největší možné záporné číslo – případně takové, o kterém víme, že je ještě záporné, ale jehož absolutní hodnota je nula. Tedy ta kladná.

Což mi trochu připomíná příběh z mého (notně útlého) dětství, kdy jsem, robě již tehdy nesnesitelně zvídavé, neustále obtěžoval otce dotazy, jak se jmenují velká přirozená čísla, a když mi otec vysvětlil, co je to miliarda (milion jsem znal již dříve), bilion, biliarda, trilion, triliarda, kvadrilion, kvadriliarda, až po decilion a deciliardu, nevěda, kterak dál, pravil, že nejvyšší přirozené číslo se zove špuntilion; s čímž jsem se, nevím arci již přesně, proč, spokojil.

Minus nula je podobného druhu: tak jako u špuntilionu víme, že pro každé přirozené n platí, že n ≤ špuntilion, nemůže existovat žádné takové reálné x, aby platila nerovnost −0 < x < 0; a přitom ovšem minus nula je ostře menší než nula, protože i minusnulisté věří u nerovností v pravidlo tertium non datur. A jak podle minusnulistů k této efemerní entitě dojít? Jednoduše, stačí vynásobit např. −1 * 0 a vyjde nám: −0.

Armáda minusnulistů je silná: patří do ní kupř. všichni javisté (důkaz), a právě o minulém week-endu jsem málem učinil ústupek a přidal se k ní. Šlo o to, že v mém portfoliu drobných, původně jythonových, poté javových utilit, které jsem si kdysi napsal a používám je např. pro podepisování elektronických dokumentů nebo jejich označování razítkem Doručeno dne:, rozlišuji, od kterého okraje se má poloha bodu na stránce počítat: pokud je souřadnice kladná, počítá se v souřadném systému, který je v PDF běžný, tedy od levého dolního rohu, pokud záporná, jde se zprava nalevo, případně shora dolů: pro příklad, počáteční bod razítka na tomto dokumentu má souřadnice [−130, −30].

U původní verse programu nevznikal se zápornou nulou problém, protože kromě umístění nápisu na první stranu dokumentu nic jiného neuměla – a nápis se souřadnicemi [−0, y] nebo [x, −0] by byl neviditelný, protože by ležel mimo plochu stránky.

V nové versi jsem doplnil řadu možností, třeba kreslení obdélníka s určením, který jeho roh má být výchozí, a začal jsem minus-nulu potřebovat, pročež můj vnitřní boj za její neexistenci dostal reálnou konturu. Kdybych totiž nechal String extrahovaný z argumentů převést na float nebo double a ten pak porovnal s nulou, mohl jsem ušetřit několik řádků a můj program by byl i o pár nanosekund rychlejší. Trvám-li ideologicky a zatvrzele na tom, že záporná nula neexistuje, musím parametr extrahovat ještě jednou, jako řetězec, a zkoumat jeho první znak, zda to náhodou není minus.

Ale co: Giordana Bruna za jeho přesvědčení upálili, není proto důvodu, proč bych i já nepřinesl vědeckému pokroku nějakou tu oběť!

Komentáře   

0 # Mormegil 2019-10-04 11:11
Jsem vašimi definicemi poněkud zmaten. V existenci záporné nuly vskutku věří všichni příznivci IEEE 754 včetně té Javy. Ovšem u toho tertium non datur jste mě poněkud ztratil. IEEE 754 pochopitelně netvrdí, že by minus nula byla ostře menší než nula, naopak: Comparisons shall ignore the sign of zero (so +0 = -0). (Aneb přímo na té vámi odkazované stránce: Positive zero and negative zero are considered equal.)
0 # Tomáš Pecina 2019-10-04 17:14
Pokud by −0 byla rovna nule, šlo by o identické číslo a pouhé alternativní označení pro nulu. Minusnulisté ale tvrdí, že −0 == 0 (tedy že přímé srovnání dává shodu), ale není to jedno a to samé. Pak musí platit, že −0 < 0, protože buď a < b, a > b nebo a = b; to je ten zákon vyloučeného třetího který nepopírají.
0 # Mormegil 2019-10-18 15:35
No jenže z některých z těchto předpokladů musíte ustoupit, v IEEE 754 prostě všechny neplatí. -0 == 0, přestože to není identické číslo, naopak NaN != NaN, přestože to identické číslo je. A třeba právě u NaN neplatí ani a < b, ani a > b, ani a == b, tertium non datur nedatur. Prostě v IEEE 754 není == ani ekvivalence, b) , takže vaše odvození neplatí. Ostatně, zákon vyloučeného třetího, řekl bych, tvrdí jen věci typu (a == b) ∨ ¬(a == b), což pochopitelně platí pořád. Cokoli nad to už musí poskytnout věty platné v příslušné algebraické struktuře, kterých v IEEE 754 zase tolik není…

P.S. Server zapomněl mou uživatelskou registraci, takže jsem se musel zaregistrovat podruhé.
0 # Tomáš Pecina 2019-11-02 10:13
Mýlíte se, pokud tvrdíte, že NaN je "identické číslo". Není; NaN totiž vůbec není číslo. Jestliže a ani b nejsou instancí třídy C, nevyplývá z toho automaticky, že a == b.

Osobně jsem arci přesvědčen, že myšlenka využít volnou hodnotu "minus" nula pro kreativní hrátky v postu i ve vašich komentářích popsaného typu byla chybným krokem. Minus nula je prostě "plus" nula, se všemi jejími atributy, a ty dvě nelze nijak odlišit.

Citace:
Server zapomněl mou uživatelskou registraci, takže jsem se musel zaregistrovat podruhé.
To byla nutnost způsobená přechodem z hostovaného blogu na vlastní; Blogspot neumožňuje přenést uživatelské účty.

Komentovat články mohou pouze registrovaní uživatelé; prosím, zaregistrujte se (v pravém sloupci dole)