Náhoda Neexistuje v PC?

Je to dosť teoretická otázka. Myslím tým, že náhoda v Počítačoch neexistuje. Stretol som sa s tým viackrát. Napr. v C++ sa takzvaná náhoda generuje podľa aktuálneho času, tuším v mikrosekundách a potom sa to upravuje. Tak dostaneme akože náhodu. Ale ak napíšete skript (C++)

int i=1;
while (i < 10) {
i++;
std::cout << rand() << " , ";
}

Keď prvý krát spustíte program bude výstup napríklad:
145987 , 145987 , 145987 , 145987 ...
lebo to všetko prebehne v ten istý čas. Keď však spustíte znova už bude iný čas a výstup bude napr:
15233 , 15233 , 15233 ...

- Ako definujeme Náhodu? Čo je to? String, char[array], integer, boolean, alebo čo? Preto sa náhoda počíta podľa rôznych elementov ktoré sa menia každú sekundu,stotinu...
Pravdaže údaje čo som písal niesú vymyslené ale z vlastnej skúsenosti. Taktiež som to diskutoval s dvoma dobrými kamarátmi (programátormi) z Fínska a oni majú tiež ten názor.

Čo si o tom vy myslíte? Pozná PC čo je čistá náhoda?
Kdy se mi do klavesnice vylije kafe, zacne nahodne psat nesmysly...
Mars Team: Stejne zamysleni jsem mel asi pred pul rokem, bylo mi divne, jak muze toto generovat, tak me napadl jen cas a kdyztak md5 z casu nebo jen prasprosty cas a vypocet na pozadovanou hodnotu.
Tak napr. jak to dela moje kalkulacka? Nema hodiny.. :-)
Generátor náhodných čísel neexistuje. Správně se tomu říká generátor pseudo-náhodných čísel. Ta čísla se totiž jako náhodná jen tváří, nám lidem se zdají náhodná. Ale jsou vypočtena nějakým hodně důmyslným algoritmem, nejčastěji opravdu ze systémových hodin. Jak to dělají kalkulačky netuším, ale asi taky mají nějaký jednoduchý krystal generující impulsy (a tudíž jakoby čas).

Když si uvědomíte na jakém principu počítač funguje, tak opravdu skutečně náhodné chování nemůže nastat. I když se vám zdá, že se počítač chová ve stejné situaci jinak, jde o jev mající nějaký reálný základ (něco prostě je jiné).
marsteam: náhoda v PC neexistuje, pokud nevlastníš PC s pozitronovým procesorem :) ten algoritmus co jsi uvedl má jeden háček, a sice ten že není spjatý se systémovým časem (tuším že přes ctime fci tick() ?) jako ostatní algoritmy. Náhoda je vlastně pravděpodobnost měnící se v čase, ovšem pak nastává otázka jak zvolit správnou granularitu takového generátoru, aby pro vyhodnocení systém nezpracovával kvanta informací. Samozřejmě u kalkulačky je to klasicky číslo mezi 0 a 1, přičemž hodnoty se často opakují - bavili jsme se tím v labinách na střední. Nechali jsme kalkulačku (každý svou, pokusy probíhaly paralelně) vygenerovat náhodné číslo, a pak jsme sledovali jestli kalkulačka vygeneruje stejné číslo když budeme dodržovat mezi "voláními" stejný interval. Je tam jistá opakovatelnost - poměrně často se vygenerovalo stejné číslo.
Nevýhodou bylo, že jsme často zapomněli na svou práci:)
Jedina skutecne nahodna cisla dokaze generovat lidsky mozek...
A i to je otázka...
generator nahodnych cisel? a co si treba hodit kostkou?
AFAIK standardní generátory těch pseudo-náhodných čísel se dělají jako generátory s předepsaným rozložením (asi nejčastěji rovnoměnrým). Když chce člověk něco, co je fakt náhodné, tak se používá jako "zárodek" (seed) výpočtu tohoto generátoru právě čas nebo i jiné věci (délka odezvy na klávesu, ping a td) tam už se dá mluvit i o náhodě.
Jinak pochopitelně sada generovaných čísel se stejným začátkém dává stejné výsledky. Toho se taky někdy používá, protože někdy je prostě výhodné použít stejnou sadu pseudonáhodných čísel.
..ještě mě napadlo, že dneska se dá do náhodných hodnot zařadit teplota z počítače (tuším běžně jsou snímané dvě) + třeba otáčky ventilátoru na procesoru a ve zdroji. Tady už je snad dost náhodných veličin. Obzvlášť kdyby se tyhle veličiny měřily s dostatečnou přesností. Oni většinou ty měřiče tepla šumí...
To je tuším další možnost generování náhodných čísel, o které jsem slyšel počítání šumíků uhlíkových odporů, tohle už je fakt náhodné (tepelné šumy).
Víc z mozku asi už nedostanu. Kdyby přece jenom, napíšu. (-;
niektore PC maju na usb strcenu krabicu kde je nejaky nestabilny chemicky prvok a snimaju jeho stav ;)
MzM: Ale to by bylo zase narocne sledovat tu teplotu, preci jen cas je trochu rychlejsi.
Mylím že se používá něco jako aktuální zatížení procesoru, takt, nebo tak něco. Takže i mezi těmi voláními v jednoduchém cyklu se tato zátěž změní, už třeba proto že se někam uloží to vygenerované číslo. Zase kdyby se neukládalo, tak je třeba stejné, ale jak to pak ověřit :)
Ostatně jednoduché procesory mají i kalkulačky, takže tam není problém to taky použít. Ale musí se tam přidat ještě nějaký faktor... Zřejmě ten čas.

A generování probíhá docela jednoduše - určím si číselnou řadu (třeba 1-4) a udělám od jednoho bodu větve, vždy 2. Ty zas větvím až mám pokrytá všechna čísla.
Takže třeba z bodu X (výchozí) jdou body Y a Z. Z bodu Y vedou větve k 1 a 2, z Z do 3 a 4. Při generování se vždy volí do jaké větve "uhnout". Akorát nevim jak se to dělá když těch možností není 2^n, protože pak musí být větve s prázdným koncem...
a kdybys to chtěl dělat podle otáček větráku, musel bys na každý náhodný číslo čekat aspoň půl vteřiny
milster, no a?
Někdy můžes potřebovat desítky náhodných čísel, neskutečně by to brzdilo. Možnost je někdy, když je čas, nagenerovat čísla do zásoby ;)
milster, tak si vezmu z otáček větráku momentální stav a zbytek bude ta pseudonáhodná řada.
Hmm... kvantový počítač by generátor náhodných čísel obsahovat mohl. Otázka zní - je taková náhodnost vůbec zapotřebí? Už teď se čísla NEDAJÍ předpovídat (zkuste vyrobit náhodné číslo, posunout čas zpět a přesně na tisícinu sekundy trefit znova generování...), ačkoliv jsou na základě důmyslných algoritmů. Dokonce to může vést k názoru, že ani kvanta se nechovají náhodně, ale rovněž pseudonáhodně a mohli bychom se dostat k tomu, že náhoda ve skutečnosti vůbec neexistuje. Co vy víte... třeba je opravdu odpovědí na základní Otázku Života, Vesmíru a Vůbec číslo 42.
42? a nezjistovali to nahodou taky nahodne? nahodnym tahanim pismenek z pytliku? ;-)
Nic z toho, co jste uvedli není náhodný proces. Např. ten hod kostkou - to není náhoda co padne, to závisí na hybnosti kterou kostce udělíte, na vzdálenosti od podložky, na odporu vzduchu, na materiálu podložky ...... Závisí to na tolika věcech, že se to člověku zdá jako náhodné. Ale není, je to čistá fyzika, velmi (ale opravdu velmi) přesným výpočtem by šlo zjistit, co padne.
Snad jedině u kvantových počítačů, ale to si nedovedu představit jak by to fungovalo (to souvisí s tím že vůbec nechápu jak takový kvantový počítač má fungovat).

Ale souhlasím s Nípalem - opravdu úplná náhodnost pro člověka není důležitá, stačí generátory PSEUDO-náhodných čísel v počítačích a "hod kostkou" ve skutečném životě.
Mě stačí generátor nenáhodného čísla, které se mi přičítá na účet... (-;
Vygooglil jsem toto:
http://random.mat.sbg.ac.at
souhlasim. jenom bych chtel videt, jak rukou hodis kostkou dvakrat po sobe presne stejne. ;-)
"velmi (ale opravdu velmi) přesným výpočtem by šlo zjistit, co padne"

Pak by tu kostku ale někdo musel velmi (ale opravdu velmi) přesným pohybem hodit