Miten joku elektroninen piiri voi arpoa satunnaisluvun? Mikä siis aiheuttaa siinä piirissä muutoksen, joka näkyy satunnaislukuna?
Asiallisia vastauksia kiitos :)
Asiallisia vastauksia kiitos :)
Turvaa tilisi vahvistamalla puhelinnumerosi. Voit silloin palauttaa unohtuneen salasanan tekstiviestillä.
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 6
Vanhimmat
jota jakamalla ja dekoodaamalla saadaan sevensegment-näyttöön juokseva numero, joka pysähtyy satunnaisesti siihen kohtaan, missä kellopulssi katkaistaan.
Oikein tehdyn satunnaislukugeneraattorin referenssinä käytetään valkoista kohinaa. Sitä muodostuu esim. vastuksissa ja puolijohteissa.
Satunnaislukuja voidaan tuottaa ainakin kolmella tavalla, joista kaksi on jo mainittukin tässä ketjussa:
1. Käytetään hyväksi ihmisen epätarkkuutta elektroniikan tarkkuuteen nähden. Laitetaan laskuripiiri laskemaan riittävän suurta taajuutta (vähintään muutama kHz) ja ihmisen tekemä napinpainallus pysäyttää laskurin. Ihmisellä ei ole mitään mahdollisuutta seurata, missä kohtaa suurella taajuudella etenevä laskenta on menossa, joten lopputuloksena laskuri pysähtyy satunnaiseen arvoon. Tämä saadaan tehtyä yksinkertaisella kytkennällä ja sitä käytetään esim. elektronisissa nopissa ja vastaavissa.
2. Otetaan näytteitä valkoisesta kohinasta, joka on täysin satunnaisesti vaihteleva signaali. Siksi tasaväleinkin otetut näytteet ovat satunnaisia. Kohinan laatu on kriittinen, muuten tuotettujen satunnaislukujen jakauma vääristyy. Piiriteknisesti tämä on monimutkaisin tapa, vaatii mm. AD-muuntimen.
3. Puhtaasti ohjelmallinen satunnaislukugenerattori. Tämä on näistä huonoin tapa, vaikkakin eniten käytetty. Useimmista ohjelmointikielistäkin löytyy valmis funktio tähän. Nämä eivät tuota kovin "satunnaisia satunnaislukuja" vaan näennäissatunnaista sekvenssiä, jossa samalla siemenluvulla saadaan aina sama sekvenssi. Siksi siemenlukuna pyritään käyttämään jotain satunnaista, esim. ohjelman käynnistyshetken kellonaikaa.
satunnaisesti arpova mekaaninen vempain. Luulisi, että on merkitystä, mihin järjestykseen pallot on ladottu, kun ne alussa pudotetaan pohjalle.
Mulla on Casion laskin (fx 9860) graafinen laskin. Mitä luulette, että miten tuo laskin arpoo satunnaisluvun, kun (basic) ohjelma pyörii koko ajan ympäri, eikä ihmisellä ole mitään tekemistä sen etenemisen kannalta?
Laskin, tai mikä tahansa tietokone, käyttää tuota edellä kuvaamaani kolmatta tapaa: tuottaa luvun ohjelmallisella satunnaislukugeneraattorilla. Se tuottaa normaalikäyttöön riittävän satunnaisia lukuja.
Erilaisia satunnaislukugeneraattorin source-koodeja löytyy netistä paljon. Tässä yksi esimerkki: http://www.cs.wm.edu/~va/software/park/rngs.c
Jollakin tämäntapaisella algoritmilla sinunkin laskimesi niitä lukuja generoi.