Ressu 2.1 Lottonumerot ja muuta

Kaikki oikeudet pidätetään. Edellisessä Ressu 2.0 postissa esiteltyyn toiminnallisuuteen on tehty seuraavia muutoksia: asiallinen lottonumeroiden tulostus, tuotantoversio ressusta (ilman debukkailuja), debukkailuversio ressusta erikseen, digits merkkijonon perusteella tehtävän tulosteen nopeutus, virheiden korjauksia, ja yleistä luettavuuden parantamista. Koko ohjelma on kopypastattavissa postin lopussa. Käyn seuraavassa läpi valitut osat uudesta ohjelmasta. Ensin ns tuotantoversio ressusta. Tuotantoversiossa on vielä… Continue reading Ressu 2.1 Lottonumerot ja muuta

Fort: Hashaamalla satunnaisuutta newressu komennon tulosteesta

Parissa edellisessä postissa olen esitellyt uuden ressun ja siihen liittyvän lelusovelluksen newressu. Tässä postissa käytetään newressun satunnaisuutta fort:in avainnukseen. Ensimmäisellä rutiinilla ajetaan komento (parametreineen), ja hashataan sen tulos: funktio popen suorittaa komennon ja palauttaa osoitteen (fp1) sen tulosteeseen. Komennon tulostetta luetaan fread:illa. Alussa on hashattavaan materiaaliin lisätty cvar, jolla voidaan varmistaa että “tulostetta säätämällä” ei… Continue reading Fort: Hashaamalla satunnaisuutta newressu komennon tulosteesta

Ressu 2.0 Vaihtoehtoiset satunnaisuuslähteet

Lisäsin muutaman kytkimen newressu-satunnaislukulelun parametreihin. Kytkimillä voi valita toisen satunnaislukulähteen. –fast kytkimellä valitaan nopea versio ressusta, joka ajaa ressu_genbytes_fast rutiinin kahteen kertaan. –urandom lukee satunnaisuuden /dev/urandom tiedostosta. –random lukee satunnaisuuden /dev/random tiedostosta. Oletuksena /dev/random:in käyttö on pois päältä (USE_RANDOM). –ressu on oletustoiminta, eli käytetään uutta ressua. Tällä ensimmäisellä readfile_xor() rutiinilla luetaan satunnaisuutta /dev/*random tiedostoista: Seuraavaksi… Continue reading Ressu 2.0 Vaihtoehtoiset satunnaisuuslähteet

Ressu 2.0 Uusi limitin laskenta

Kaikki oikeudet pidätetään. Edellinen posti jäi auki limitin laskennan osalta. Edellisessä kokeiltiin sqrt() ja cbrt() funktioita, mutta todellisuudessa kumpikaan niistä ei toimi halutulla tavalla. Tässä postissa limit lasketaan selailemalla vaihteluja alimmasta ylimpään, ja tarkastamalla onko edellinen vaihtelu*1.6 suurempi kun tämän kierroksen vaihtelu. Tässä postissa on myös muutos debukkaustulosteeseen. Edellisessä postissa kerroin että kellojono koostuu perusmateriaalista… Continue reading Ressu 2.0 Uusi limitin laskenta

Ressu 2.0

Kaikki oikeudet pidätetään. Tässä ressun uusimmassa versiossa on uusittu asiakaspuskurin hallintaa, löydetty kellojonosta löytyvien satunnaisbittien “laskentaan” uusi menetelmä. Asiakaspuskurin hallinnassa aiemmin asiakas toimitti puskurin satunnaisbittigeneraattorin täytettäväksi, ja satunnaislukugeneraattorilla ei ollut “omaa” muistialuetta. Näin jää aina mietittäväksi voisiko edellisestä puskurista laskea seuraavan tai päätellä satunnaisbittigeneraattorin ensimmäisen puskurin. Uudessa versiossa ressulla on oma puskurinsa, josta ressu palauttaa… Continue reading Ressu 2.0

DBS versio 0.08

DBS on tertun palvelinohjelma, joka vastaanottaa asiakkaan selaimelta sivupyyntöjä, kutsuu sovellusohjelmaa (DBA), joka muotostaa sivupyynnön pohjalta vastauksen. Vastaus palautetaan DBS:lle, joka lähettää tuloksen asiakkaalle. Edit: muutoksia julkaisun jälkeen: Palvelimissa on vielä ongelmaa Safari-selaimen kanssa, safari menee “luuppiin”, jos haetaan sekä portillista ja portitonta URL:ää vuorotellen (moijari.com ja moijari.com:5005). .ico (favicon.ico) tiedostopyyntöjen ohittamista varten lisätty muuttuja… Continue reading DBS versio 0.08

Published
Categorized as ressu, terttu

Debuggaillaan ressun kelloketjuja

Tässä uusi debukkailuversio ressun kellon luvusta. Tämä lukee kelloa puskurillisen kerrallaan, tavallisen kellomerkki kerrallaan tavan sijasta. Jälkimmäinen tapa ei ole kovin mukava debukkailijan kannalta, koska kellojono tietysti etenee debukkaustulosteiden tulostamisen aikana ja kellojonot lyhenevät, joskus häviävät kokonaan. Kellomerkkejä voi olla vain yksi per kellon arvo. Edit: Tehty korjauksia julkaisun jälkeisten viikkojen aikana. Lisäksi muotoilin ohjelman… Continue reading Debuggaillaan ressun kelloketjuja

RESSU 1.8

Ressun edellisessä versiossa(1.7) oli ongelma että myös perusriveistä laskettiin teoreettisia satunnaisbittejä. Tässä pyritään laskemaan mukaan ainoastaan poikkeukset säännöstä. Jos esimerkiksi perusketjut ovat kuuden merkin pituisia, tämän pitäisi laskea vain kuudesta poikkeavat ketjut, eli seiskat ja viitoset kuten edellisen postin esimerkissä. Tällä tavoin teoreettisten satunnaisbittien lukumäärä on lähempänä oikeata. Tässä varsinainen uusi koodi kokonaisuudessaan, muutetut rivit… Continue reading RESSU 1.8

Uusi versio Ressu:sta (v 1.7)

Tässä vielä uusi versio ressu generaattorista: uudessa versiossa ei ole enää aiempien versioiden b-muuttujaa eikä siihen liittyvää laskentaa, eli ei tarvita erillistä pääohjelmaa. Edellisessä versiossa oli useampia tapoja laskea teoreettisia bittejä, niistä on vain yksi jäljellä. Ressufunktio muodostuu pääluupista, jonka alla on kaksi pienempää luuppia. Pääluuppi (for(c=) sanelee että kaikki puskurin bitit pitää kiertää vähintään… Continue reading Uusi versio Ressu:sta (v 1.7)

Kellosarjassa olevat satunnaiset bitit

Tässä uusimmassa versiossa yritetään laskea paremmin kellosarjasta tulevia satunnaisbittejä. Ohjelmassa lasketaan satunnaisbittejä neljällä eri tavalla. Ensimmäisessä tavassa (muuttuja b) lasketaan kellosarjojen pituuksia, eli sitä kuinka monta kertaa peräkkäin sama numero ilmenee. Tämä tapa on ollut mukana alusta asti. Toinen tapa on periaatteessa sama, aina kun kellosarjan numero vaihtuu, lisätään teoreettiseen satunnaisuuteen yksi bitti (muuttuja rndbits).… Continue reading Kellosarjassa olevat satunnaiset bitit

Published
Categorized as ressu