По суті це насправді не просто питання R; це стосується генерації випадкових чисел загалом.
"Випадкові" числа дуже важливі у багатьох частинах статистики. Нам потрібні випадкові величини, які ми генеруємо, щоб мати певні властивості, і (як правило) багато зусиль йде на побудову генераторів випадкових чисел та перевірку їх властивостей.
Ідея полягає в тому, що ми хочемо отримати послідовність значень, які є хорошим проксі для фактично випадкових чисел. Звичайна робоча конячка генерації випадкових чисел - рівномірний розподіл (з цього ми побудуємо інші, як Гауссові випадкові числа).
Отже (найчастіше) чисельний алгоритм використовується для побудови послідовності цілих чисел, кожне з яких значень певної функції попередніх. Ці цілі числа потім масштабуються, щоб лежати між 0 і 1 (зазвичай ).[ 0 , 1 )
Наприклад, багато хто просто працює над попереднім:
х1= f( х0)z1= х1/ мх2= f( х1)z2= х2/ мх3= f( х2)z3= х3/ м⋮
хzf
х0
х3
Дивіться ?runif
в R, і ви зауважите, що він пояснює існування випадкових насінин із посиланням на довідку про те, ?.Random.seed
що пояснює велику кількість генераторів випадкових чисел, доступних у R (ви можете навіть поставити свій власний). Ця ж сторінка довідки пояснює, що якщо ви раніше не використовували генерацію випадкових чисел або не встановили насіння, то для початку насіння береться з годинника, а потім зберігається попереднє значення (так що наступне випадкове число, яке ви отримаєте, було б той самий, який ви отримали, якби минулого разу ви створили ще одне значення - воно запам'ятовує "куди вам належить").
Функція runif
в R (як і чимало інших процедур генерації випадкових чисел у інших пакунках, які зазвичай можуть робити щось подібне) знає про місце зберігання насіння випадкових чисел. Він постійно оновлює це значення в міру його продовження. Таким чином, він може працювати без явного передавання насіння, але він все одно використовує; якщо ви не дали цього, він просто використовує той, який він зберег останнім.
Що стосується того, чому він дає різні результати кожного разу (якщо ви не скажете йому надати одну і ту ж послідовність): це робиться, тому що одні й ті самі значення, як правило, виявляються дуже продуктивними - у нього не буде властивостей, які повторюються випадкова вибірка мала б, що робить її не дуже корисною для цілей, для яких ми використовуємо генератори випадкових чисел.