• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Вопрос по Wichmann-Hill RNG

SlowSpock

Ученик
Регистрация
15 Окт 2015
Сообщения
1
Реакции
0
Баллы
0
Вопрос по Wichmann-Hill RNG

Я написал эмуляцию Wichmann-Hill генератора случайных чисел в R:

Код:
wh.unif = function(n, start=0, end=1){
  x = double(n) #initialize x
  y = c(171,172,170)
  z = c(30269, 30307, 30323)
  #If seed does not exist - create it
  if (!exists(".WH.seed",envir=.GlobalEnv)){
    .WH.seed=trunc(runif(3, 1, 30269))
  }else{
    .WH.seed=get(".WH.seed",envir=.GlobalEnv)
  }
  for (i in 1:n) {
    .WH.seed = (y*.WH.seed) %% z
    x[i] = sum(.WH.seed/z) %% 1
  }
#Save the seed
  assign("wh",.WH.seed,envir=.GlobalEnv)
  start + (end-start) * x
}
Но, он выдает результат отличающийся от runif, а моя задача написать функцию которая будет выдавать такой же результат без использования .Random.seed[-1]

Код:
b=wh.unif2(5);b
set.seed(wh,"Wich")
a=runif(5);a

Как я понимаю, этот форум не совсем по программе R, но может сможете указать на ошибку в коде. Заранее спасибо!
 
Назад
Сверху