neděle 21. března 2021

Mocninná závislost a cejní anomálie

V dnešní době se všude mluví o exponenciálním růstu, který vykazují různé systémy s iterativním vývojem, ale mezi exponenciálním a lineárním růstem je ještě jeden důležitý typ růstu a sice mocninný. Ten se zpravidla objevuje všude, kde se srovnávají běžné veličiny, jejich prostorová závislost, a v podstatě dominuje celé fyzice.

Napřed něco málo k růstu obecně. Je tím myšlena rostoucí hodnota nějaké závislé veličiny na jiné veličině. Spousta těžkých problémů v informatice má například jednoduché řešení, ale s exponenciální složitostí, což v praxi znamená, že pokud se třeba zvýší velikost nějaké struktury, kterou zpracováváme, o 1, čas, který celý proces zabere, vzroste 2×. To moc fajn není (jako tomu u exponenciálního růstu bývá), protože (z opačného pohledu) významné zlepšení našeho procesoru nám umožní zpracovat jen o trochu více dat.

Nyní hádanka. Máme-li krychli s nějakou délkou strany, jak se změní objem krychle, pokud všechny strany zvětšíme třikrát (tedy nová délka bude trojnásobek původní)?

 

Správná odpověď je 27krát. Pokud jste odpověděli něco jiného, bude lepší si občas zopakovat geometrii, ale žádné strachy, většina lidí stejně intuitivně zvládá jen závislost lineární. Ta je taky nejjednodušší: x-násobná změna vstupu odpovídá x-násobné změně výstupu. Oproti tomu v případě mocninné závislosti je výstup změněn xk-krát, kde k je konstanta konkrétní závislosti.

Pokud je k celočíselné, dostáváme speciální případ takzvané polynomiální závislosti, která třeba pro k = 2 by vypadala takto: y = ax2 + bx + c. Ve fyzice se s obecně polynomiální závislostí nesetkáme prakticky nikdy, protože každý ze členů by měl jinou jednotku a to sčítat nelze. Proto si tedy vystačíme většinou jen s mocninnou závislostí s předpisem y = axk (parametr a ovlivňuje pouze zvětšení celé křivky, nikoliv tvar). Členy s nižším exponentem mají navíc specifický efekt na tvar křivky – absolutní člen (bez x) křivku svisle posouvá, zatímco lineární člen určuje počáteční sklon a ani jedno nemá znatelný vliv na růst (tomu dominuje člen s nejvyšším stupněm).

Mnoho geometrických, fyzikálních i biologických veličin odpovídá mocninné závislosti. Obsah i objem závisí takto na délce (k = 2 a 3), kinetická energie závisí na rychlosti (k = 2) a hmotnost člověka závisí na výšce (k = 2). Poslední pozorování vychází ze vzorce pro výpočet BMI, kde onen index není nic než parametr a ze vzorce (x je výška a y je hmotnost). O parametru k můžeme navíc v určitém smyslu hovořit jako o rozměru/dimenzi jedné veličiny v závislosti na druhé (jako objem je trojrozměrný oproti délce).

Případ BMI je docela zajímavý, neboť je i vcelku neintuitivní. V homogenní látce je hmotnost závislá na objemu (přes hustotu) lineárně, takže se dá říct, že má dimenzi 3 oproti délce. V případě lidského téla má však dimenzi stejnou jako jeho povrch.

Na závěr biologická zajímavost. Celý můj zájem o mocninnou závislost způsobilo studium ryb a jejich hmotnost v závislosti na délce. Zjistil jsem (podle dat odsud) zajímavou věc: v podstatě všechny ryby mají vcelku pravidelnou mocninnou závislost (s exponentem okolo 3, což bych očekával), jako například kapr s k = 3,1469:

Všechny až na cejna. Nevím, zda se jedná o chybu v datech, ale na cejní hmotnost mocninná závislost nestačí:

Doposud jsem nezjistil, co tuto cejní anomálii způsobilo.

středa 8. dubna 2020

Procenta nefungují

I narazil jsem náhodou na jeden lehký příklad z matematiky s ekonomickým nádechem (takže by mohl být i trochu praktický). Začínal takto:

Roční míra inflace je 5 %. To znamená, že za rok bude všechno zboží stát o 5 % více a tedy si (se stejnou sumou peněz) toho budeme moci koupit o 5 % méně než nyní.

Smyslem příkladu bylo představit si, kolik bychom měli mít peněz tento rok, abychom na tom byli stejně jako s původním obnosem, ale po roce. Kladná míra inflace totiž značí, že kupní síla peněz klesá, takže i když budeme mít pořád 1000 Kč, po roce budeme chudší (proto obchody zvyšují ceny, aby nezchudly). Můžete si zkusit tento příklad zodpovědět a zjistit tedy, jak vlastně klesne kupní síla.


Správná odpověď je 952,38 Kč. Pokud vše stojí o 5 % více, stojí to vlastně 1,05× více a tedy za rok vlastně máme 1,05× méně peněz (vzhledem k jejich kupní síle). Výsledek je 1000 Kč ÷ 1,05. Jenomže v zadání je jedna zavádějící nepřesnost, která nám umožňuje je interpretovat i jiným způsobem a dojít k jinému výsledku. Ona nepřesnost bude lépe patrná, jakmile změním čísla, která se zdála býti stejná:

Roční míra inflace je 100 %. To znamená, že za rok bude všechno zboží stát o 100 % více a tedy si (se stejnou sumou peněz) toho budeme moci koupit o 100 % méně než nyní.

„O 100 % více“ je jen zbytečně komplikované vyjádření faktu, že vše bude stát dvakrát více (tedy dvakrát tolik co teď). Ale „o 100 % méně“ je zcela jiná situace – je to 0, ať byla původní hodnota jakákoliv. V původním zadání mělo být, že si budeme moci koupit o 4,76 % méně, než nyní, protože to je přesnější hodnota (ale mohla být zaokrouhlena na 5 %, takže nemůžeme vyloučit, že se jednalo o chyták, i když to by způsobilo celý interval správných hodnot, pokud i skutečná inflace mohla být zaokrouhlena).

Mohli bychom vinit autory zadání z neznalosti matematiky a správného chování procent a postesknout si nad upadající kvalitou školství (nebo si zanadávat, že dávají chytáky na taková pitomá místa, a nad upadající kvalitou školství si postesknout jen z principu), ale nebylo by spíše lepší najít něco, co by mohlo fungovat lépe? Procenta totiž nefungují. Násobení procenty je ještě v pořádku (5 % ze 100 Kč = 5 % × 100 Kč = 0,05 × 100 Kč = 5 Kč) a vykazuje normální chování násobení, ale co sčítání?

100 + 5 % = 100 × 1,05 = 105
100 + 10 % = 100 × 1,10 = 110
100 + 5 % + 5 % = 100 × 1,05 × 1,05 =  110,25
100 + 5 % − 5 % = 100 × 1,05 × 0,95 = 99,75
 100 + 200 + 5 % = 100 + 200 × 1,05 = 315
100 + 5 % + 200 = 100 × 1,05 + 200 = 305

Sčítání procent není ani komutativní, ani asociativní a odčítání není opačná operace k přičítání. Dá se říct, že „+“ a „“ si ani nezasluhují, aby se jim v tomto případě říkalo sčítání a odčítání. A pokud byste si říkali, že takhle divně se to chová jen v situacích, kdy přičítáme procenta k hodnotě s jinou nebo žádnou „jednotkou“, stačí si vzpomenout, jaké zmatky panují při sčítání procent samotných:

50 % + 50 % = 50 % × 1,50 = 75 %
50 % + 50 % = 100 %

Z tohoto důvodu se musely zavést procentní body, na které ale stejně všichni raději zapomínají, takže zmatek trvá.

Existuje tedy nějaký lepší způsob či nějaká lepší „jednotka“, která by se dala použít k vyjádření změny velikosti, měla by stále stejný přičítací a odčítací charakter, ale chovala by se aspoň trochu konzistentněji?

Ano, třeba decibel. Přestože vznikl původně pro použití při měření intenzity zvuku a jiných signálů, jeho definice je platná kdekoliv, kde se vyskytuje nějaký poměr hodnot, neboť je to prostě desetinásobek logaritmu (při základu 10) takového poměru. Máme-li nějakou kladnou hodnotu, kterou můžeme použít pro upevnění stupnice (třeba hranice slyšitelnosti u zvuku), pak můžeme v decibelech vyjádřit jakoukoliv jinou kladnou hodnotu z téhož rozměru pomocí poměru ku danému základu.

Základní hodnota (odpovídající 0 dB) není ani potřeba, pokud chceme jen vyjádřit změnu oproti původní hodnotě, stejně jako u procent. Výhodou decibelů je však narozdíl od procent fakt, že se pohybujeme v logaritmické škále, takže sčítání a odčítání v této škále je ekvivalentní násobení a dělení v lineární škále:

100 + 10 dB = 100 × 101 = 1000
100 + 20 dB = 100 × 102 = 10000
100 + 1 dB = 100 × 100,1 = 125,89
100 − 10 dB = 100 × 10−1 = 100 × 0,1 = 10
100 + 10 dB − 10 dB = 100 × 10 × 0,1 = 100
100 + 5 dB + 5 dB = 100 × 100,5 × 100,5 = 1000

Decibely se prostě chovají mnohem ukázněněji, když dojde na vlastnosti operací. Zároveň už také nikoho nenapadne vyjádřit změnu růstu v decibelech pomocí decibelů, takže i tomuto zmatku lze předejít. Kromě toho nám logaritmická stupnice umožňí vyjádřit i velmi vysoké (či nízké) řády pomocí rozumných hodnot. A pokud bychom snad potřebovali větší přesnost, můžeme použít centibely (zvýšení o 5 % by bylo zhruba o 2 centibely). Jediná jejich nevýhoda pak je už jen v tom, že z hlavy lze vypočítat poměr jen pro celé bely (jako celé mocniny 10), ale dnes má přeci u sebe kalkulačku každý.

Logaritmická stupnice má přesně ty výhody, které jsou potřeba, aby práce s těmito jednotkami byla intuitivní a konzistentní, ale základ 10 má jednu nevýhodu – přestože jsme schopni vyjádřit desetinásobné, stonásobné, tisícinásobné atd. zvětšení, možná by to chtělo základ, který by vytvořil jednotku podobnější procentům, aby třeba zvýšení či snížení o 1 až 5 % bylo nějak analogicky vyjádřitelné, pokud to vůbec jde.

První nápad je vzít místo základu 10 základ 1,01, tedy tolik, kolik dostaneme přičtením 1 % k 1. Sice nedostaneme zcela stejné hodnoty, ale 1,015 je pořád ještě dost blízko 1,05 pro běžné zaokrouhlování. Problémem tohoto přístupu ovšem je to, že jsme příliš vázáni na ono jedno procento, a navíc ještě pouze na zvyšování – 1,0110 je blízko 1,1, ale 1,01−10 už se na 0,9 nezaokrouhlí (taky bychom jako základ mohli vzít 0,99, pak by to šlo, ale zase 0,99−10 není blízko 1,1).

Chce to něco mezi 1,01 a 0,99−1, aby byla jistá rovnováha mezi kladným a záporným rozdílem. Ono ideální číslo najdeme, když si uvědomíme, že chceme pro hodnoty blízké nule, aby se funkce ax chovala stejně jako 1 + x %. Jenom jedné exponenciální funkci je 1 + x tečnou v nule, a to je ex. Je to tedy Eulerovo číslo (méně známý kamarád Ludolfova čísla), které představuje onen ideální základ, respektive v tomto případě jeho stá odmocnina (která je překvapivě blízko průměru 1,01 a 0,99−1).

Jakmile víme, že stačí základ e (nebo jeho mocnina), můžeme sáhnout po už používané jednotce zvané neper (a opravdu nemyslím prací prášek). Ta funguje stejně jako bel, akorát místo dekadického logaritmu je použit přirozený logaritmus, tedy o základu e. Setina této jednotky je tedy centineper (cNp) a je to právě ta jednotka, kterou je ideální použít v případě, kdy chceme hovořit o malých rozdílech (jinak řečeno x + y Np = x × eyx + y pro malé y).

Tím jsme tedy našli jednotku, která je dokonalou opravou procent. Protože název centineper je trochu těžkopádný, navrhuji ho zkracovat na centil. Na závěr ještě přikládám tabulku, jaké procentuální změně přibližně odpovídá změna v centilech.

cNp %
−15 −13,9292
−14 −13,0642
−13 −12,1905
−12 −11,3080
−11 −10,4166
−10 −9,5163
−9 −8,6069
−8 −7,6884
−7 −6,7606
−6 −5,8235
−5 −4,8771
−4 −3,9211
−3 −2,9554
−2 −1,9801
−1 −0,9950
+1 +1,0050
+2 +2,0201
+3 +3,0455
+4 +4,0811
+5 +5,1271
+6 +6,1837
+7 +7,2508
+8 +8,3287
+9 +9,4174
+10 +10,5171
+11 +11,6278
+12 +12,7497
+13 +13,8828
+14 +15,0274
+15 +16,1834

Od −10 cNp do 9 cNp je alespoň zaokrouhlená změna v procentech stejná, a navíc čím víc se rozdíl blíží k 0, tím se obě hodnoty přibližují. Díky tomu můžeme bez obtížní nahradit i promile (‰) za milinepery (mNp) a klidně i promyrie (‱) za myrionepery (moNp). No není to pěkné?

středa 16. října 2019

Zajímavost: nadace

V češtině, jak tomu již u neizolovaných jazyků bývá dobrým zvykem, je nezanedbatelné množství cizích slov. Velká část těchto slov má latinský původ; jsou to slova jako operace, pozice, gravitace, exekuce, populace, fixace apod. (a samozřejmě i jinak zakončená slova, ale přípona -ce je pro tento článek momentálně relevantní).

Přípona spojující všechna tato slova měla v latině podobu -tio a používala se pro vytvoření podstatného jména představujícího nějakou činnost či její výsledek. Etymologie jí dokonce přisuzuje příbuznost s českou slovesnou koncovkou -t/-ti a její ekvivalenty se dají najít i v jiných indoevropských jazycích, byť pouze ve slovanských a románských jazycích je stále produktivní (pokud není přejatá).

Jak již název tohoto článku napovídá, zaujalo mě slovo nadace. Díky latinské příponě zní velmi vznešeně, ba skoro odborně, ale přesto, když se nad ním zamyslím, něco mi na něm nesedí. Výše uvedený seznam cizích slov má totiž svoje (zpravidla téměř doslovné) ekvivalenty i v jiných jazycích, kam se dostaly podobně jako do češtiny (např. anglické operation, position, gravitation atd.), ale nadace je anglicky foundation (tomu by byl český ekvivalent fundace) a neznám ani jiná příbuzná slova např. ve vztahu podobném jako operaceoperovat. K jakému spiknutí zde dochází?

Inu, ukradneme-li slovu nadace jeho latinskou příponu, odhalíme za ní skryté zcela obyčejné české sloveso nadáti (z nějž známe dnes nadávat nebo nadání), které bylo pouze účinně zamaskováno (Rejzek uvádí, že tak vzniklo nejspíš kontaminací se slovem donace). Všem puristům natruc tak v češtině máme slovo s domácím kořenem, ale cizí koncovkou a nikomu to nevadí. Koneckonců to není jediný příklad, houslista je na tom stejně („správně“ by to byl houslař nebo violinista), patrně opět kontaminací se slovy pianista, basista či podobnými.

I napadlo mě zjistit, jestli se někdo náhodou nedopustil toho překladatelského hříchu, že omámen iluzí mezinárodního slova nepoznal český původ slova nadace a jal se ho překládat doslovně. Nu... dopustil a nejen jednou. Trochu mně z toho krvácejí oči, byť to je hezký pokus o export českého slova, ale pramení z ignorance a lenosti a to nemůže ospravedlnit. Dokonce jsem našel i zmínky o die Nadation v němčině, ale ani celkově toho moc není (a všechno samozřejmě na cizojazyčných verzích českých stránek).

sobota 17. srpna 2019

Programovací a skriptovací jazyky

Počítačových jazyků dnes existuje nepřeberné množství, proto bývá užitečné je seskupovat do různých kategorií podle míry abstrakce, využití, způsobu běhu apod. Jedním z nich je i rozdělení jazyků na programovací a skriptovací (pojem "programovací jazyky" může být brán obecně jako všechny jazyky i konkrétně jako opak skriptovacích).

Jak už to tak bývá, i toto rozdělení je vcelku vágní. Už jsem viděl situace, kdy byl třeba jazyk C (drtivě programovací) použit pro psaní skriptů nebo kdy v JavaScriptu (převážně skriptovacím jazyce) byly napsány velké programy. Obecně se dá říct, že jazyky programovací jsou určené pro psaní programů, zatímco skriptovací jsou určené pro psaní skriptů, ale některé lze použít i pro druhý účel.

Jenomže jsme si tím moc nepomohli, neboť už ani samotné pojmy program a skript nejsou dobře definované. Program bývá tradičně izolovaný kus kódu, který může běžet samostatně, zatímco skript běží v rámci nějakého prostředí. Problém ale nastane, když si uvědomíme, že i programy vlastně běží pod operačním systémem, se kterým musejí komunikovat (pomocí API), takže i v jejich případě existuje nějaké prostředí. Můžeme z možných prostředí odstranit operační systém, ale co virtuální běhové prostředí .NET a JRE pro C# a Javu? Je kód v Lue, PHP či Haskellu, spuštěný v korespondujícím interpretru, stále program, či už skript? A co kus JavaScriptu spuštěný prohlížečem na webové stránce?

Napadlo mě, že bych tyto pojmy definoval přesněji, což by možná pomohlo při klasifikaci některých jazyků. Podle mé nové definice je program kód, jehož části mohou být vykonávány jen současně s jeho tělem. Tělo je pak hlavní procedura celého programu, s jejímž začátkem program vzniká a s jejímž koncem program zaniká. Když skončí tělo programu, už z něj nic nezbyde.

Oproti tomu skript po sobě často něco zanechává. Obsluha webové stránky v JavaScriptu či herní kód v Lue často reaguje na určité podněty generované prostředím, jejichž kód bývá vyvolán i poté, kdy skončí tělo skriptu.

Kupříkladu aplikace, která při spuštění vytvoří okno kalkulačky, reaguje na stisknutí tlačítek a počítá výsledky operací, je program, pokud součástí kódu je nějaká hlavní procedura, na jejímž začátku okno ještě neexistuje a na jejímž konci je už okno definitivně zavřené. Pokud hlavní procedura chybí (uživatelský kód jej neinicializuje), musí logicky existovat nějaké řídící prostředí, které se postará o jeho vytvoření. To zní trochu ezotericky, ale webová kalkulačka je perfektní příklad takového případu: webový prohlížeč (zde program) vytvoří reprezentaci stránky (pomocí deklarativního HTML) a poté spouští různé kusy kódu v JavaScriptu v závislosti na tom, co uživatel na stránce udělal. Pokud by existovalo nějaké newebové prostředí, které by fungovalo stejně (např. WPF neumožňující metodu Main), nebyl by v tom žádný rozdíl.

Pokud bych do své kalkulačky přidal podporu pluginů/zásuvných modulů, které bych informoval o všem, co se v kalkulačce děje (pomocí událostí), stává se moje aplikace prostředím pro skripty, ať jsou psané v C++ nebo Lue. Pokud by ale nějaký plugin převzal řízení nad aplikací (např. vytvořil modální okno), kde by kupříkladu kreslil grafy, stane se z něj program. Řízení klidně může předávat aplikaci zpět (koneckonců to samé dělá multitasking v OS), ale jeho průběh musí být jasně určen tělem.

Toto rozlišení nám umožní definovat jazyky ryze programovací (musí obsahovat tělo, které podmiňuje běh kódu programu) a ryze skriptovací (nemohou obsahovat tělo; vše je řízeno obsluhou událostí). Pokud bych vynutil v jazyce C funkci main, bude to jazyk ryze programovací, neboť vše v něm definované musí na jejím konci zaniknout. Naopak pokud bych v Lue zabránil vykonávat příkazy mimo funkci (např. tím, že globální prostředí poskytnu až po skončení těla skriptu) kromě inicializace se nebude moci takový skript nijak navenek projevovat, a tedy takový jazyk bude ryze skriptovací.

Jak je patrné z příkladů, reálné jazyky zapadají někam mezi tyto dvě kategorie. I programovací jazyk C++ mohu použít jako skriptovací v jiném programu tak, že spustím kompilátor, za běhu dynamicky načtu výsledek a zavolám v něm exportované funkce, a stejně tak interpretr JavaScriptu můžu spustit na kódu tak, že zanikne, jakmile skončí jeho tělo.

Skutečnost se má tak, že mnohdy to, zdali je nějaký jazyk programovací či skriptovací, závisí na konfiguraci prostředí. Operační systém či interpretr Luy jsou programy určené ke spouštění jiných programů a tak s nimi zacházejí, zatímco webový prohlížeč či hra je prostředí určené ke spouštění skriptů.

Příklad jazyka, který by se dal označit za hybridní, je Pawn. Ačkoliv je staticky typovaný, kompilovaný a má funkci main (tedy obsahuje rysy programovacích jazyků), je primárně určen pro psaní vnořeného kódu pro existující systémy, tedy pro psaní skriptů. Vstupní body v Pawnu jsou všechny veřejné (exportované) funkce a funkce main, přičemž má-li kód pouze veřejné funkce (a nikoliv main), jeho běh je zcela řízen prostředím a tudíž se jedná o skript, zatímco pokud kód má pouze funkci main, má jen jediný možný průběh a jedinou možnost, jak se projevit, a tudíž se jedná o program.

Tato definice není nikterak absolutní a jako podobné definice těchto termínů nemusí být ani tak užitečná, ale podle mého názoru je rozhodně zajímavé přemýšlet o návrzích jazyků z různých úhlů pohledu, zvláště když to určuje, na co se jazyky dají použít a na co nikoliv.

Na závěr je ještě nutno dodat, kam patří jazyky jako HTML či XML. Nikam, protože to nejsou aktivní jazyky, tedy jazyky umožňující zápis kódu, který něco vykonává. Pokud by programy byly na jedné straně škály a skripty na druhé, kód v HTML by přečníval dál za skripty, protože v takovém případě má prostředí absolutní moc nad tím, jak jej interpretovat.
 
Dodatek: Mluvit o webových stránkách v rámci tohoto srovnání je možná trochu nešikovné, protože každá stránka se skládá z mnoha komponent, kde ty aktivní nemají zdaleka tak velkou váhu, jako tomu bývá u klasických programů. Kód v HTML, CSS i JS existuje v rámci jednoho celkového programu, který vzniká otevřením stránky a zaniká jejím zavřením, ale ačkoliv zde prohlížeč figuruje podobně jako OS spuštěním tohoto programu, zároveň ho i (narozdíl od OS) také vytváří z poskytnutých součástí.

Druhý dodatek: Mimo toto rozdělení stojí i některé kódy, které se též tradičně nazývají programy, například lineární programy. Ty stojí na stejném místě jako XML, protože pouze popisují proměnné a jejich vztahy a slouží jen k vybudování nějakého objektu.

úterý 14. května 2019

Tolerance

Na úvod obligatorní informace, že se neztotožňuji s názory, které vedou k nadřazování skupin obyvatelstva nad jiné ani které legitimizují trestné činy. Pokud by to nebylo zřejmé.

Říkám si, kdy to začalo. Kdy se ve společnosti něco změnilo, co způsobilo, že tolerance, respekt a úcta mezi lidmi se už přestala nosit. Či jsem možná jen naivní a bylo to takhle vždycky... nevím.

Začal jsem o tom přemýšlet už v době, kdy začala kampaň MeToo, jejímž cílem bylo poukázat na sexuální obtěžování. S uplynulým časem ale mám stále větší a větší pocit, že ačkoliv důvody pro její vznik mohly být ctnostné, bylo by lepší ji spíš přirovnat k atomové pumě, kterou může každý její člen shodit na kohokoliv, s kým má nějaký problém, bez nějakých důkazů nebo soudu, bez čehokoliv. To není spravedlnost ani morálka, to je pouze msta.

Nedávno zase došlo k jakémusi „odhalení“ zpěváka Michaela Jacksona ze sexuálního obtěžování dětí. Ponechme stranou, zdali k tomu opravdu došlo; to by měl rozhodnout soud a ne já. Reakce některých lidí na tuto událost mi ale přišly naprosto odporné. Jako lavina se začaly odstraňovat Jacksonovy písničky, různé zmíňky o něm, dokonce i díl Simpsonových, kde byla jeho postava. Jako by lidi zapomněli, čím přispěl ke kultuře a k rozvoji hudby. Když už neměl přežít on, jeho dílo mělo.

Asi je jasné, proč tyto odstavce píši. Nesouhlasím s premisou, že každý člověk musí být svatý, aby měl nárok na respekt. Pokud ve společnosti stačí pouze někoho obvinit, aby se z něj stal veřejný nepřítel číslo jedna, aby mu bylo znemožněno vystupovat a být pro společnost prospěšný, pak taková společnost není soudná ani spravedlivá. Je dobře, že státy východní Evropy si už takovou dobou prošly, takže si snad jejich občané zachovají rozum, ale o budoucnost západu se upřímně bojím.

Kdyby jenom zůstalo u skutků, které mohou být trestné činy, tak budiž. Skutečnost nám však bohužel ukazuje, že i odlišnost názorů mnohdy k odstranění osoby bohatě postačí. Nedávno byl tvůrce populární hry Minecraft, známý jako Notch, odstraněn z různých textů ve hře jen kvůli tomu, že má názory, které by se daly označit jako kontroverzní. Ať jsou jeho názory jakékoliv, má na ně přeci svaté právo a to, že je ve hře zmíněno jeho jméno, jim přeci nedává žádnou větší váhu. Vždyť o tom Minecraft vůbec není.

Kdyby jenom zůstalo u názorů... Internetový tvůrce PewDiePie nemá nijak „závadné“ názory, ale přesto se už poněkolikáté média snažila vést různé kampaně na jeho zničení, přisuzujíce mu různé názory a přesvědčení podložené chabými a vymyšlenými důkazy. Opět se ukazuje, jak lehké je šířit svoji vlastní moc, když ji skryjete morálkou a dobrými úmysly. Kdo nesouhlasí, je nepřítel, rasista, xenofob; kdo se přidá, ocitne se na výsluní, je mu dána popularita, protože on je přeci ten dobrý. Přitom důležitější jsou činy než slova. Jediný dobrý důsledek toho všeho je, že ukáže lidi, kteří nemají čest ani svědomí (že, Wile Wheatone?).

Kdy už si konečně lidi uvědomí, že jde někoho uznávat a zároveň s ním nesouhlasit? Že nic není černobílé a každý člověk má mnoho stránek, které nemůžeme přehlížet všechny jen kvůli jediné z nich?

čtvrtek 7. února 2019

Zajímavost: Paradox prajazyka

Okruh lidského poznání se neustále zvětšuje. Stále nacházíme nové a nové skutečnosti, které je potřeba pojmenovat a popsat, a tak se zdá být logické předpokládat, že tak se rozšiřuje a roste i náš jazyk. Ale ouha!

Čeština se možná rozšiřuje co do nových slov a pojmů, neboť je nutno popsat nové skutečnosti, ale jazyk jako takový neroste, ba naopak. Vždyť ve srovnání se staročeštinou jsme přišli o:
  • Tři minulé časy (aorist, imperfektum a antepréteritum).
  • Dvojné číslo (duál).
  • Předbudoucí čas (futurum exactum).
  • Přechodníky (tedy ještě ne, ale brzo o ně přijdeme).
Jiné slovanské jazyky jsou na tom ještě hůř, třeba vokativ (5. pád) se z mnoha vytrácí. Už jsem si jednou posteskl nad okleštěností angličtiny, která se z původního syntetického jazyka stala jazykem analytickým, ustrnulým a neohybatelným. A všude po Evropě dochází ke zjednodušování, mizí rody (vzniká jednotný mužský a ženský), mizí pády (vokativ, dativ), mizí a sjednocují se koncovky tvarů...

Když si srovnáme vývoj indoevropských jazyků, můžeme se pokusit rekonstruovat jejich společného předka – protoindoevropštinu. Podle stávajících teorií měl tento jazyk 9 pádů, 3 vidy, 4 způsoby a svojí komplexností byl na úrovni latiny či staré řečtiny.

Co od té doby indoevropské jazyky získaly? Napadá mě akorát budoucí čas a členy jako příklady prvků, které se v mnoha jazycích vyvinuly až po rozdělení onoho prajazyka.

Paradox spočívá v tom, že není zcela jasné, co nastartovalo proces zjednodušování jazyků a proč k tomu došlo. Očekávali bychom, že na začátku vznikala z různých pazvuků podstatná jména pro popis konkrétních věcí, pak přídavná jména pro abstrakce a slovesa pro změny stavu a mohli bychom jít dál a dál ve vývoji jazyka, ale je zvláštní, že kdysi dávno si patrně indoevropské národy řekly, že už mají moc složitý jazyk, a tak se jaly jej zjednodušovat.

Tuto změnu nelze ani spojovat s rozvojem písma či s kodifikací jazyků, neboť k ní došlo nejspíš už před 4000 lety. Jedno možné vysvětlení by bylo, že jazyk byl vynálezem úzké skupiny rozumově pokročilých lidí, kteří jej rozšířili do celého svého národa, protože v jakékoliv větší skupině lidí by už žádné pokročilosti samy od sebe neprošly.

Další vysvětlení je možnost, že inteligence lidstva se v průměru spíš snižuje než zvyšuje, ale tomu moc neodpovídá očekávaná primitivita lidí v době, kdy tento jazyk vznikl.

Třetí vysvětlení je, že nám jazyk dal Stvořitel.

středa 30. ledna 2019

Nejoptimálnější článek

Tento spor se táhne historií české lingvistiky už po desetiletí. Není-li to patrno z nadpisu tohoto článku, myslím tím spor o to, zdali slovo "nejoptimálnější" (a slova jemu podobná) vůbec dávají smysl.

Po rychlém hledání lze najít mnoho argumentů pro i proti. Napřed bych se rád podíval na některé z nich:

Nedává to smysl, protože slovo "optimální" je vlastně samo o sobě ve 3. stupni.
V latině je opravdu optimus ve třetím stupni (slova bonus – dobrý), ale ani tento fakt není dobrým argumentem. Jednak jsme v češtině, kde to slovo žije vlastním životem, ale ani tak to nemůže zcela dobře být navrhovaný gramatický pleonasmus, protože to slovo samotné se vztahuje k jinému slovu, a sice k podstatnému jménu optimum (to nejlepší). Původní třetí stupeň už není relevantní.

Dává to smysl, protože nic optimálního vlastně ve skutečnosti neexistuje; můžeme se tomu pouze blížit a tedy určovat, jak moc se daná věc blíží optimu.
Nic nám nebrání mluvit o věcech, které nejsou reálné, pak můžeme docela dobře mluvit i o absolutním optimu. Krom toho vybíráme-li si ze dvou věcí, z nichž jedna je pro nás špatná a druhá dobrá, je vcelku evidentní, že v tomto souboru existuje optimální věc. Navíc tento argument skrývá i logický spor – můžeme-li se optimu pouze blížit, věc nejoptimálnější nemůže existovat, protože by vždy existovala věc optimálnější a tedy by ona původní nebyla ve skutečnosti ta nej.

Nedává to smysl, protože pokud je něco už optimální, nemůže být nic lepšího.
Zde se porovnávají špatná slova. "Optimální" a "lepší" nejsou synonyma. Tak jako "lepší" neznamená "dobré", tak ani "optimálnější" neznamená "optimální". Přeci není ani záruka, že věc nejlepší je vůbec dobrá.


Abychom se dobrali nějakého závěru, napřed je potřeba podívat se, co vlastně věc optimální je. Věc optimální je optimum, stejně tak jako věc ideální je ideál či věc maximální je maximum, v dané skupině věcí. Optimum jest něco, co nám vyhovuje nejvíce (pro daný účel), tedy vyhovuje více než všechny alternativy (jako maximum je větší než všechny ostatní prvky).

Teď přejdeme k druhému stupni. Zatímco první stupeň (pozitiv) prostě stanovuje určitou vlastnost, druhý stupeň (komparativ) porovnává míru dané vlastnosti mezi dvěma objekty. Věc optimálnější je tedy doslova to, co je více optimální než něco jiného. Třetí stupeň (superlativ) je pak už lehký, věc nejoptimálnější je optimálnější než všechny ostatní (nebo, mám-li zabrousit do matematiky, k ní neexistuje optimálnější věc, což ale není úplně ekvivalentní).

Vše nyní stojí na tom, zdali může něco být "více optimální". Vrátíme-li se zpět k našemu spojitému adjektivu "dobré", jeho míry můžeme lehce najít. Věci mohou být dobré, hodně dobré, málo dobré, trochu dobré, ne zcela dobré, vůbec dobré atd., tedy alespoň vágně lze určitou míru stanovit. Oproti tomu může být něco "málo optimální"? Podle mě taková věc není optimální vůbec, stejně tak i věc "ne zcela optimální". "Hodně optimální" už je teprve nesmysl, přeci když jsme něco už označili za optimální, máme hotovo, už není co dodat.

Míra slova "optimální" je triviální. Jsou jen dvě možnosti, buď něco optimální je, nebo není, 0/1. Stejné chování je na první pohled vidět i u slova "maximální".

A verdikt? Míra je triviální, ale existuje. Tím pádem optimálnější věc je pouze optimum (pokud existuje, vzhledem k neoptimu) nebo nic (vzhledem k optimu či pokud optimum neexistuje). Nejoptimálnější věc pak může být jedině nějaké neoptimum (neexistuje-li optimum) či nějaké optimum (všechna jsou si samozřejmě rovnocenná). Jak prosté.

Dá se tedy říct, že o věci nejoptimálnější se mluvit dá, ale zpravidla nám to nic neřekne. Když se budeme pohybovat jen v reálném světě a přijeme fakt, že optimum neexistuje, pak je nejoptimálnější všechno.

Dodatek: Při psaní tohoto článku jsem si vzpomněl na jeden dialog bůhvíodkud: "Ty jsi těhotná?!" "No trochu..."

Druhý dodatek: Matematika rozlišuje mezi největším prvkem a maximálním prvkem. Největší prvek je takový, který je větší než všechny ostatní prvky, zatímco maximální prvek je takový, ke kterému neexistuje prvek větší. U čísel obě definice splývají, ale pokud třeba porovnáváme množiny co do obsahu, může být více maximálních množin (a žádná největší).