Čeprav se morda zdi, da je definicija naključja preprosta, to še zdaleč ni tako. Ne le da je naključne pojave ali zaporedja števil zelo težko ustvarjati, tudi preverjanje, ali je nekaj, kar smo proizvedli, res naključno, ni preprosto. S problemom naključja so se skozi zgodovino ukvarjali mnogi veliki matematiki, a šele pred kratkim, v dobi računalnikov in informacijske tehnologije, so se vprašanja, povezana z naključnostjo, pokazala v vsej svoji zanimivosti in težavnosti.

Paradoks definicije naključja

Najbolj preprosto bi kot naključno lahko definirali zaporedje pojavov, ki se dogajajo povsem brez kakršnega koli pravila oziroma smisla. Naključno je tisto, kar nima ne vzroka ne pomena. A zelo pomembno je, da ne pomešamo našega subjektivnega nepoznavanja pravil z objektivnim neobstojem pomena. Prav lahko se nam namreč samo zdi, da je recimo neko zaporedje števil naključno, ker v njem ne prepoznamo nobenega pravila, a morda vzorca le ne znamo razbrati. Lep primer je recimo število pi, ki pomeni razmerje med obsegom in premerom kroga. Njegova definicija je zelo preprosta, a če bi na papirju videli le dolg seznam decimalk, kjer bi bil prekrit začetek 3,1415 …, bi zelo težko ugotovili, da gre v resnici za zaporedje, ki še zdaleč ni naključno.

Za definicijo naključnosti bi celo lahko dejali, da je nekako protislovna. Po eni strani pravimo, da se za resnično naključnim zaporedjem ne sme skrivati prav nobeno pravilo, s katerim bi zaporedje lahko znova ustvarili, po drugi strani pa je zahteva po odsotnosti kakršnega koli vzorca v zaporedju zelo omejujoča definicija, ki jo je v praksi skoraj nemogoče uresničiti. Da je nekaj naključno, mora torej ustrezati zelo dobro definiranim pogojem. Naključje opredeljuje torej popolna odsotnost kakršne koli forme, kar je po drugi strani tudi zelo natančno določena forma, le da je določilo te forme negativno.

Najkrajše možno navodilo

Sredi šestdesetih let so matematiki Andrej Kolmogorov, Gregory Chaitin in Ray Solomonoff neodvisno drug od drugega iznašli način, kako v informacijski dobi računalnikov in digitalnega zapisa informacij učinkovito definirati naključnost. Definicijo naključnosti so povezali s pojmom algoritmične kompleksnosti, kar se sliši zelo zapleteno, a temeljna ideja je povsem preprosta.

Po definiciji uglednega ruskega matematika Andreja Kolmogorova je kompleksnost nečesa definirana kot dolžina najkrajšega recepta (algoritma), po katerem lahko to stvar izdelamo. Slaščice so ponavadi bolj kompleksne kot kruh, ker je navodilo, kako jih pripraviti, praviloma bolj obsežno. Prav tako je pomarančni sok preprostejši kot recimo pivo, saj lahko recept za sok skrčimo v zgolj dve besedi: »Stisni pomaranče«, medtem ko je navodilo za izdelavo piva veliko daljše.

Tako je po istem vzorcu tudi kompleksnost števila definirana kot dolžina najbolj preprostega računalniškega programa, ki lahko to število izpiše. Zaporedje 01010101010101010101 lahko na kratko zapišemo tudi kot »desetkrat ponovi 01«. Tu takoj opazimo, da si lahko zaporedje zapomnimo na krajši in bolj jasen način. Pri zaporedju 01000101000011101001 pa pravila ne vidimo takoj, tako da si ga moramo zapomniti v celoti.

Če ima kdo telefonsko številko 01 1111-111, si jo bomo seveda takoj brez težav zapomnili, prav tako tudi številko 01 2345-678. Ideji za obema številkama sta preprosti in zgolj eno informacijo potrebujemo, da se ju spomnimo. Pri bolj zapletenih številkah pa si moramo v spomin vtisniti več informacij. Včasih prepoznamo v delu številk recimo svoj rojstni datum ali kakšno podobno zaporedje, ki si ga z lahkoto prikličemo v spomin, zato nam pomnjenje takih številk povzroča manj težav kot takšnih, pri katerih ne vidimo nobenega vzorca. Te so, vsaj za nas, povsem naključne.

Ni recepta za naključje

S pojmom algoritmične kompleksnosti lahko za naključno definiramo tisto stvar, pri kateri ni krajšega recepta za izvedbo, kot je natančni opis same stvari. Če se omejimo zgolj na zaporedje števil, je naključno tisto zaporedje, pri katerem ne moremo najti nobenega drugega krajšega zapisa oziroma algoritma, kot je dejanski seznam števil v celoti. Ker zadaj za seznamom ni nobenega pravila, si ga lahko zapomnimo le v celoti, kot recimo telefonsko številko, v kateri ne prepoznamo nobenih znanih sklopov števil.

Dvojiško število, se pravi takšno, ki je zapisano v jeziku računalnikov, ki znajo brati le 1 in 0, je naključno, če je njegova kompleksnost enaka številu števk. Program, ki ga računalnik tudi prebere v dvojiškem zapisu, ne sme biti krajši od samega števila. Povedano bolj preprosto to pomeni, da ni krajšega recepta za zapis tega števila, kot da ga zapišemo s števkami v celoti. Noben drug algoritem oziroma program ne sme biti krajši.

Vsi programi za ustvarjanje naključnih števil, ki so vgrajeni v naše računalnike, ustvarjajo tako zares le »psevdo naključna števila«. Algoritmi zanje so namreč krajši, kot so sama števila, ki jih proizvajajo, tako da ne vzdržijo strogega kriterija naključnosti prek algoritmične kompleksnosti. Slavni matematik, fizik in oče računalništva John Von Neumann je v članku leta 1951 ta problem povzel v stavku: »Kdor koli poskuša z aritmetičnimi metodami proizvesti naključno zaporedje števil, greši.«

Računanje »Monte Carlo«

Vendar bi današnja znanost brez generatorjev (psevdo) naključnih števil zelo težko shajala. Naključna števila se danes najbolj pogosto uporabljajo kot pomoč pri simulacijah in zapletenejših računskih nalogah. Metoda uporabe naključnih števil za reševanje matematičnih problemov je zelo podobna raziskavam javnega mnenja. Če določeno vprašanje postavimo le manjši vzorčni skupini ljudi v populaciji in če so v vzorcu res naključno izbrani predstavniki populacije in niso recimo večinoma upokojenci ali študenti, potem lahko iz njihovih odgovorov dokaj dobro sklepamo, kakšno je mnenje o neki temi v vsej populaciji.

Podobno se lahko s pomočjo naključnih števil problema lotimo tudi v znanosti. Denimo, da moramo izračunati površino nekega nepravilnega lika v obliki srca. S postopkom, ki so ga matematiki poimenovali metoda Monte Carlo, lahko ocenimo površino srca tako, da mu orišemo pravokotnik, katerega površine ni težko izračunati. Zdaj moramo samo še oceniti, kakšen del pravokotnika pokriva srce, in že imamo rešitev, ki jo iščemo. A kako najlaže ocenimo razmerje med površino celega pravokotnika in tistega dela, ki ga pokriva srce? Tako da na povsem naključna mesta v pravokotniku postavljamo pike in štejemo, ali smo zadeli srce ali ne. Če so pike resnično postavljene naključno, potem se bo razmerje med številom vseh pik v pravokotniku in številom pik na srcu čedalje bolj približevalo razmerju med površino pravokotnika in površino srca.

Stiskanje podatkov

Preverjanje, ali je neko dolgo zaporedje števil naključno, seveda sploh ni preprosto. Vendar so matematiki razvili veliko metod, s katerimi lahko preizkušajo posamezne generatorje naključnih števil in preverjajo, ali so naključna zaporedja dovolj dobra, da jih lahko uporabijo pri posamezni nalogi.

V vsakdanjem življenju pa smo v stiku z ocenjevanjem količine naključja pri stiskanju podatkov, kar počnemo pravzaprav vsak dan, ko uporabljamo računalnik. Kot vemo, lahko s posebnim programom za stiskanje podatkov močno zmanjšamo velikost posamezne datoteke v računalniku. Ti programi za stiskanje podatkov delujejo tako, da iščejo ponovitve v podatkih in ustvarijo nove slovarje, s katerimi lahko podatke zapišejo v krajši obliki. Recimo, da smo v besedilu velikokrat uporabili besedo »problem«. Dober program za stiskanje podatkov bo to opazil in jo nadomestil z enim samim znakom *. Tako bo besedilo »Problem so problematični pristopi k reševanju problemov.« zapisal šifrirano stisnjeno kot »* so atični pristopi k reševanju *ov.«. V slovar pa bo dodal, da zvezdica () pomeni »problem«.

Velja torej pravilo: bolj ko se s programom za stiskanje podatkov velikost datoteke zmanjša, manj naključne podatke stiskamo. Če stiskamo besedilo, lahko tako zelo preprosto ocenimo, kako bogat besedni zaklad imamo. Bolj ko ponavljamo besede, bolj bo znal program skrčiti datoteko z našim besedilom.

Programi za stiskanje datotek lahko tako tudi dokaj dobro ocenijo, ali je neko zaporedje resnično naključno. Bolj ko se lahko podatki stisnejo, manj naključni so. Povsem naključnega zaporedja s programi za stiskanje podatkov ne moremo več stisniti, ampak je ves računalniški zapis hkrati tudi najkrajši možni zapis tega zaporedja. Datoteke resnično naključnega niza ni mogoče več dodatno stisniti.