A véletlenről, tudományosan, de érthetően

A véletlen fogalmával sokan könnyelműen dobálóznak. A mai tudományban a véletlent mint valami alapvető “természeti törvényt” kezelik. Ez szerintem rendkívül súlyos probléma a tudományos gondolkodásban. Mivel véletlen nincs, ez az írás valójában nem a véletlenről szól, hanem valamiről, amit véletlennek neveznek tévesen.

A tudomány kétféle véletlenről beszél: valódi és ál-véletlen. Természetesen csak az utóbbi létezik, valódi véletlen nincs. A továbbiakban tehát az ál-véletlenről fogok írni. Megértéséhez nem kell semmilyen tudományos tudás, bár én programozási szempontból írok róla, de programozni se kell tudni hogy megértse bárki amit írok.

Az írásom érint vallás-filozófiai kérdéseket is, de csak érinti őket. Pedig lényegében ezek miatt írom le mindezt, de komolyabban a vallás-filozófiai kapcsolatról majd egy másik írásban akarok beszélni.

Az ál-véletlen tulajdonképpen egy olyan számítás, amivel az emberi agy számára véletlennek tűnő számsorozatot lehet létrehozni. Ezzel a dologgal én először tizenévesen találkoztam, amikor elkezdtem programozással foglalkozni. A téma megértésében hatalmas segítségemre volt a számítástechnika, mivel itt az ember mindig egzakt dolgokkal foglalkozik: bitekkel. Nem lehet dobálózni hatalmas számokkal, végtelenekkel meg ilyesmi misztikus-zavaros dolgokkal. Éppen ezért maga a véletlen generátor is csupán egy pár soros program volt, ami egy pár bájtos számmal dolgozott.

De térjünk még vissza ahhoz hogy mit tart az ember véletlennek. Hogy jobban megértsük, nézzük meg mit tart véletlennek mondjuk egy egér. :) Az egér elég buta. Lehet, hogy egy színusz görbe számait is véletlennek tartja, mert nem fogja fel, hogy az nem véletlen. Az ember már okosabb, egy színusz görbéről felfogja hogy ott valami egyszerű mechanizmus működik. Felfogja bonyolultabbról is, de egy bonyolultsági fok után már véletlennek tart egy számsorozatot akkor is, ha azt egy néhány bájtos számítógép program állítja elő.

És a számítógépben bizony néhány bájtos programok állítják elő a véletlenszámokat.

Fontos – sőt, szinte a legfontosabb – még megérteni, hogy a véletlengenerátor programoknak szükségük van egy “kezdő értékre” amivel aztán tovább dolgoznak (seed, random seed, magyarul mag). Nullával nem tudnak mit kezdeni, illetve persze lehet olyan véletlengenerátor a nullával is elkezd működni, de persze ilyenkor ez a “seed” a programban van.

Aki kicsit belegondolt, már rá is jöhetett, hogy mint bármilyen más matematikai függvény, a véletlengenerátor is egy adott bemeneti jelre mindig ugyanazt dobja ki. Ha pl. beadjuk neki hogy 15 akkor kiadja hogy 97. A következő véletlenszám kiszámolásához pedig az előző eredményét kell beadni neki, azaz jelen példánál maradva a 97-et, amire ő megint kidob valami új számot.

Értelemszerűen ha béna a véletlengenerátorunk és mondjuk a 97-re kidobja a 15-öt, akkor ez olyan béna véletlengenerátor, hogy csupán 2 számot tud “önmagától”, sorozatban előállítani. Hacsak nem mi adunk meg neki egy újabb “seed”-et.

Mindebből az is megérthető, hogy egy véletlengenerátor csak megadott hosszúságú számsorozatot tud generálni, mert egy idő után mindig visszatér a kezdőérték, és onnantól megint jön minden ugyanolyan sorrendben. (Léteznek még az ún. irracionális számok, mint pl. a végtelen tizedes tört. Az írásom következő részében ezekről is fogok írni, de már most leírom, hogy “sajnos” a tudomány abba se kapaszkodhat, mint valódi véletlenszámba.)

Fontos tehát megérteni, sőt szinte a legfontosabb, hogy mekkora hatalmas jelentősége van a seed-nek. Ha a véletlensor generátort mindig egy adott számmal indítjuk el, mindig ugyanazt a számsort dobja ki, ahogy minden más matematikai függvény is, mivel maga is egy matematikai függvény, és semmi misztikus nincs benne. :)

Fantasztikus élmény volt számomra amikor tizenévesen először írtam olyan programot, ami véletlenszám generátort használt. Ez egy kis játékprogram volt, amiben almák potyogtak a képernyő tetejéről lefele, alul meg egy kis figura volt, amit a játékos tudott jobbra-balra irányítani és így elkapni a leeső almákat.

Megírtam hát a programot és meglepődve vettem észre, hogy amikor újra és újra elindítom, az almák mindig ugyanolyan sorrendben potyognak. Először leesett egy a képernyő jobb széléről, aztán középről, aztán valahol máshol, de mindig ugyanolyan sorrendben mint ahogy előzőleg elindítottam a játékot. Elég zavaró volt, mert így a játékos betanulta hogy honnan potyognak és unalmas lett a játék.

Nosza, elővettem a programozási könyvet és utánanéztem a véletlenszám generátor leírásának. Meg is találtam ott a megoldást a problémámra. Volt egy utasítás amivel “véletlenszerű indításra” lehetett állítani a véletlengenerátort. Be is írtam ezt az utasítást a programom elejére, és elégedetten tapasztaltam, hogy végre mindig más sorrendben potyognak az almák ahogy újra és újra elindítottam a játékomat.

Annak is utánanéztem, hogy ez az új utasítás mit is csinál. Azonban akkor még nem fogtam fel ennek a jelentőségét, csak évekkel később, amikor elkezdtem az élet nagy kérdéseivel foglalkozni a világnézetem kapcsán (ami akkor a materializmus volt).

Tehát mit is csinál ez az utasítás? Egy nagyon trükkös dolgot – és itt jön a kemény filozófiai-tudományos, sőt, vallás-filozófiai dolog. Az utasítás a “külső világból” vesz ki egy információt és azt adja be a számítógépben futó kis véletlengenerátor függvénynek. Ez a külső világ pedig… – nagyon durván komoly dolog következik, figyelem! – én magam voltam.

Igen. Az, amit a “való világban”, azaz a számítógépem világából nézve egy “külső világban” tettem, “megtermékenyítette” azt az önmagában mindig ugyanúgy lefutó véletlengenerátort, amely ezáltal mindig máshogy indult ezután.

De mi volt ez a tett részemről? Hiszen nem kérdezett tőlem semmit. Nem kérdezte hogy “mondj egy véletlenszámot és azzal indítom a programot”. Valóban, direktben nem kérdezte ezt, hanem egy hatalmas trükkel. Ez a trükk pedig az idő. A számítógép bekapcsolásakor ugyanis elindul a számítógépben egy óra. Ennek az órának az épp aktuális értékét kapja meg a véletlengenerátor, méghozzá akkor amikor elindítom a programot. Nagyon fontos ez az “akkor”. Ezt az “akkort” tehát én határozom meg: azzal, hogy mikor indítom el a programot! Amikor beírtam hogy “run”, az egy időpillanatban történt, és ezt az időpillanatot mint számot kapta meg a véletlengenerátor, és ez alapján számolta ki a következő ál-véletlen számot.

Megpróbálom ezt egyszerűbben elmondani. Tegyük fel hogy a játékprogramom dombokat rajzol ki színusz függvénnyel, azaz szép hullámos dombokat. De ahogy elindítom a játékot, az mindig a domb aljától kezdi kirajzolni azt . Ha az indulást változatossá kéne tennem, akkor azt kéne elérni, hogy mindig máshonnan induljon a domb, egyszer a tetején, egyszer az alján, másszor a közepén stb. Tehát kell egy véletlen. Ugyanúgy, ahogy a véletlengenerátor program elindítható az általam bevitt információ alapján (elindítási időpont), úgy ezt az értéket a domb hullám kezdőértéknek is be lehet adni. Így aztán minden elindításnál máshogyan indul a domb. Pl. ha a számítógép elindítása után 15 perccel indítom a domb-játékot, akkor a domb aljával kezdődik, ha 16 perccel akkor a domb tetejével.

Mivel a véletlengenerátor is egy ugyanolyan függvény mint a színuszfüggvény, ezért semmi különbség nincs a két példa között. Csupán az emberi agy hiszi véletlennek a véletlengenerátort, míg értelmes, felfogható függvénynek a színuszt. De egy buta egér a színuszt is véletlennek fogja fel talán.

Láthatjuk tehát, hogy véletlen nincs. Se a számítógépben, se a való világban.

A való világban azonban állítólag – a tudósok szerint – van véletlen. Erről elég sokat lehet olvasni, és az ilyen írások nagy része nagyon durván be tudja csapni az embereket. Például a kvantumfizika egyértelműen állítja, hogy van véletlen, sőt, ez az egyik alapja a világnak. Csakhogy ez egy óriási tévedés. (Persze én egy senki vagyok hogy több százezer tudóst megcáfoljak, de aki érteni fogja ezt az írást, annak már meg is cáfoltam őket.)

A kvantumfizikában az egyik legszemléletesebb példa az állítólagos véletlenre a radioaktív atomok elbomlása. Ezt úgy kell elképzelni, hogy van egy alma mondjuk, ami a radioaktív atomot jelképezi most. Az alma egy idő után elrohad, azaz átváltozik rohadt almává. :) Van amelyik alma hamar, van amelyik később rohad el, de azért van egy átlag, hogy egy átlagos alma mennyi idő után rohad el. Kicsit hasonlóak a radioaktív atomok is. Van mondjuk ezer ilyen atom. A tudósok megfigyelték, hogy ezen atomok egy része egy bizonyos idő alatt biztosan elbomlik, azaz átalakul egy másféle atommá. A megadott idő alatt elbomlott atomok száma mindig ugyanannyi! Olyannyira, hogy ilyen atomokat használnak az ún. atomórákban az idő nagyon pontos mérésére.

Na most, van tehát az ezer atomunk, amelyek mondjuk 1 óra múlva már csak 500-an vannak, tehát a fele elbomlott. Tehát elmondhatjuk hogy a “felezési ideje” ezeknek az atomoknak 1 óra. A maradék 500 atom újabb 1 óra alatt feleződik meg, tehát marad 250, és így tovább. A véletlenszerűség ott van ebben az egész folyamatban, hogy sosem lehet tudni melyik atomok fognak elbomlani. A rohadó almák esetén ez azért elég jól látható, mert a rothadás egy folyamat. De a radioaktív atomok azok csak “hipp-hopp” módon, egyik pillanatról a másikra bomlanak el, és nem lehet tudni hogy melyik lesz a következő amelyik elbomlik (nem ismerjük a fizikai okát, és a tudósok azt mondják – tévesen – hogy nincs is ok).

Ebből következően az ezer atomból sose lehet tudni melyik 500 fog 1 óra alatt elbomlani. A tudósok ezt nevezik “valódi véletlennek”. Pedig annyi már látható, hogy egyenletesen bomlanak, ami eleve feltételez valami logikát.

De oké, tegyük fel hogy valódi véletlen van az egyes atomokban. Hogyan működhet vajon ez a véletlen? A kérdés feltevése eleve önellentmondás, mivel a véletlen lényege a tudósok szerint, hogy nincs benne logika. (Hogy tudnak így tükörbe nézni a tudósok???) :) Amiben pedig nincs logika, az nem tudományos.

Tehát lépjünk tovább. A radioaktív atomokban tehát valami mechanizmus működik, ami végül is egy matematikai függvény, mint a színusz, de inkább olyan mint a véletlengenerátor függvény, ami az emberi agy számára nem felfogható (bonyolultnak tűnő, véletlennek tűnő) számsorozatot állít elő. Aztán ha ez a szám elér valamilyen értéket, akkor az atom elbomlik.

Most jön a kemény tudományos-filozofiai dolog. A radioaktív atomban tehát egy függvény működik, ami számol. Egyszerűsítsük le a helyzetet: tételezzük fel hogy ez a függvény az atomban egy sima visszafelé számolás, ami ha eléri a nullát, akkor az atom elbomlik. Magyarul egyetlen dolog számít csak: a kezdőérték. Valahonnan tehát minden ilyen atomnak van egy ilyen kezdőértéke. De nem csak ez a kérdés, hanem hogy ezeknek a kezdőértékeknek egyenletesen kell eloszlania az ilyen atomokban a világon. Mert ha ügye fognék egy marék ilyen atomot, és pont az “egymás utáni sorszámozásúak” lennének a markomban, akkor lehet, hogy egy pillanat múlva mindegyik elbomlana, mert épp úgy állt a “számláló” bennük.

Folyt. köv. :)

 

Advertisements