W istocie nie jest to tak naprawdę tylko pytanie R. bardziej ogólnie dotyczy generowania liczb losowych.
Liczby „losowe” są bardzo ważne w wielu częściach statystyki. Potrzebujemy wygenerowanych wartości losowych, aby mieć określone właściwości, i (zwykle) wiele wysiłku poświęca się konstruowaniu generatorów liczb losowych i sprawdzaniu ich właściwości.
Chodzi o to, że chcemy uzyskać ciąg wartości, które są dobrym proxy dla faktycznie liczb losowych. Zwykłym koniem roboczym generowania liczb losowych jest rozkład równomierny (z tego konstruujemy inne, takie jak liczby losowe Gaussa).
Tak więc (najczęściej) algorytm numeryczny jest używany do konstruowania sekwencji liczb całkowitych, z których każda jest pod względem funkcji poprzednich. Te liczby całkowite są następnie skalowane do wartości od 0 do 1 (zwykle ).[ 0 , 1 )
Na przykład wielu po prostu pracuje nad poprzednim:
x1= f( x0)z1= x1/ mx2)= f( x1)z2)= x2)/ mx3)= f( x2))z3)= x3)/ m⋮
xzfa
x0
x3)
Zobacz ?runif
w R, a zauważysz, że wyjaśnia on istnienie losowego ziarna, wraz z linkiem do pomocy na ten temat, ?.Random.seed
który wyjaśnia dużą liczbę generatorów liczb losowych dostępnych w R (możesz nawet podać własne). Ta sama strona pomocy wyjaśnia, że jeśli nie użyłeś generowania liczb losowych przed ani nie ustawiłeś materiału siewnego, na początek ziarno jest pobierane z zegara, a następnie zapisywana jest poprzednia wartość (aby następna otrzymana liczba losowa była ten sam, który uzyskałbyś, gdybyś wygenerował jeszcze jedną wartość ostatnim razem - pamięta „gdzie jesteś”.
Funkcja runif
w R (podobnie jak kilka innych procedur generowania liczb losowych w innych pakietach, które zwykle mogą zrobić coś podobnego) wie o miejscu, w którym przechowywane jest ziarno liczb losowych. Wciąż aktualizuje tę wartość. Więc może działać bez konieczności jawnego przekazywania nasion, ale nadal używa jednego; jeśli go nie podałeś, po prostu używa tego, który zapisał jako ostatni.
Co do tego, dlaczego daje różne wyniki za każdym razem (jeśli nie powiesz mu, aby podawał tę samą sekwencję): robi to, ponieważ te same wartości za każdym razem byłyby zwykle bardzo nieproduktywne - nie miałyby właściwości, które się powtarzałyby miałoby to losowe próbkowanie, co czyni go mało przydatnym do celów, w których używamy generatorów liczb losowych.