🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #308698

Re: test randomizacyjny w C

#308698
From: Matt D.
Date: Mon, 04 Jul 2016 01:23
43 lines
2564 bytes
On 7/2/2016 19:05, Norbert Cielecki wrote:
>
> Witam!
> Czy ktoś mógłby mi wytłumaczyć, wjaki sposób funkcja rand() może | ma
> skorzystać z 10 ziaren losowych srand(time(0)), przy generowaniu 1000
> liczb pseudolosowych z zakresu 1-10.  Chodzi mi dokładnie o zbadanie
> losowości generatora liczb pseudolosowych.  Wdzięczny będę za wskazówki.

W praktyce: Istniejace implementacje `rand` _zdecydowanie_ zawala kazde 
porzadne testy losowosci.

A wiec jesli Twoim celem jest odpowiedzenie na pytanie, "czy `rand` 
przejdzie test(y) losowosci", to natychmiast -- i bez dalszej straty 
czasu -- odpowiedz jest prosta i bezwzgledna: ABSOLUTNIE NIE! (bez 
szans, bez wyjatkow, bez przeprosin).

(W teorii, zachowanie `rand` jest implementation-defined, wiec mozna 
sobie wyobrazic implementacje ktore zrobia cos innego -- osobiscie nie 
znam takowej.)

Jesli chodzi o czysta ciekawosc (i przekonanie sie, ze, faktycznie, 
zawali :]): Diehard i TestU01 to podstawowe testy (a raczej cale 
kolekcje tychze)--wiec mozesz zaczac od nich:
https://en.wikipedia.org/wiki/Diehard_tests
https://en.wikipedia.org/wiki/TestU01

Tutaj jest implementacja TestU01 w ANSI C:
http://www.iro.umontreal.ca/~simardr/testu01/tu01.html

Patrz tez:
http://csrc.nist.gov/groups/ST/toolkit/rng/batteries_stats_test.html
http://stackoverflow.com/questions/778718/how-to-test-random-numbers

Jak chcesz porzadny generator, to przyjrzyj sie:
http://www.pcg-random.org/

Tutaj przykladowe wyniki testow (ktorym mozesz sie przyjrzec takze--jako 
przyklad, jak testowac):
http://www.pcg-random.org/statistical-tests.html

Pozdrawiam,

Matt
Technical Details
Message-ID: <nlcdr5$rk4$1@portraits.wsisiz.edu.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!.POSTED.d40a9baa.rev.stofanet.dk!not-for-mail
References: <5777f44e$0$12548$65785112@news.neostrada.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!.POSTED.d40a9baa.rev.stofanet.dk!not-for-mail
From: "Matt D." <no-spam@invalid.local>
Newsgroups: pl.comp.lang.c
Subject: Re: test randomizacyjny w C
Date: Mon, 4 Jul 2016 03:23:47 +0200
Organization: http://www.wit.edu.pl
Sender: mdziubin@nospam.wsisiz.edu.pl
Message-ID: <nlcdr5$rk4$1@portraits.wsisiz.edu.pl>
References: <5777f44e$0$12548$65785112@news.neostrada.pl>
Mime-Version: 1.0
Injection-Date: Mon, 4 Jul 2016 01:23:49 +0000 (UTC)
Injection-Info: portraits.wsisiz.edu.pl; posting-host="d40a9baa.rev.stofanet.dk:212.10.155.170"; logging-data="28292"; mail-complaints-to="abuse@wsisiz.edu.pl"
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1
In-Reply-To: <5777f44e$0$12548$65785112@news.neostrada.pl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit