Większość generatorów liczb pseudolosowych (PRNG) opiera się na algorytmach wykorzystujących pewien rodzaj metody rekurencyjnej, zaczynając od wartości bazowej określonej przez dane wejściowe o nazwie „seed”. Domyślnym PRNG w większości programów statystycznych (R, Python, Stata itp.) Jest algorytm Mersenne Twister MT19937, który jest przedstawiony w Matsumoto i Nishimura (1998) . Jest to skomplikowany algorytm, więc najlepiej przeczytać na nim papier, jeśli chcesz wiedzieć, jak to działa szczegółowo. W tym konkretnym algorytmie istnieje relacja powtarzalności stopnia , a twoje ziarno wejściowe jest początkowym zbiorem wektorów . Algorytm wykorzystuje liniową relację powtarzalności, która generuje:x 0 , x 1 , . . . , x n - 1nx0, x1, . . . , xn - 1
xn + k= f( xk, xk + 1, xk + m, r , A ) ,
gdzie i a są przedmioty, które mogą być określone jako parametry w algorytm. Ponieważ ziarno daje początkowy zestaw wektorów (i dane inne stałe parametry algorytmu), szereg liczb pseudolosowych wygenerowanych przez algorytm jest stały. Jeśli zmienisz ziarno, zmienisz początkowe wektory, które zmienią pseudolosowe liczby wygenerowane przez algorytm. Jest to oczywiście funkcja nasion.r A1 ⩽ m ⩽ nrZA
Należy teraz zauważyć, że jest to tylko jeden przykład, wykorzystujący algorytm MT19937. Istnieje wiele programów PRNG, które można wykorzystać w oprogramowaniu statystycznym, i każdy z nich obejmuje różne metody rekurencyjne, więc ziarno oznacza w każdym z nich inną rzecz (pod względem technicznym). Można znaleźć bibliotekę PRNGs dla R
w tej dokumentacji , która zawiera listę dostępnych algorytmów i dokumenty, które opisują te algorytmy.
Celem materiału siewnego jest umożliwienie użytkownikowi „zablokowania” generatora liczb pseudolosowych w celu umożliwienia powtarzalnej analizy. Niektórzy analitycy lubią ustawiać ziarno za pomocą prawdziwego generatora liczb losowych (TRNG), który wykorzystuje dane wejściowe do generowania początkowego numeru nasion, a następnie zgłasza to jako liczbę zablokowaną. Jeśli ziarno jest ustawione i zgłoszone przez pierwotnego użytkownika, wówczas audytor może powtórzyć analizę i uzyskać taką samą sekwencję liczb pseudolosowych jak pierwotny użytkownik. Jeśli parametr początkowy nie jest ustawiony, algorytm zwykle użyje pewnego rodzaju domyślnego parametru początkowego (np. Z zegara systemowego) i generalnie nie będzie można powtórzyć randomizacji.
2^19937 − 1
. Ziarno jest punktem tej wyjątkowo długiej sekwencji, w której uruchamia się generator. Tak, to jest deterministyczne.