Я написал эмуляцию Wichmann-Hill генератора случайных чисел
Код:
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
}
Но, он выдает результат отличающийся от

, а моя задача написать функцию которая будет выдавать такой же результат без использования
![$\bold{.Random.seed[-1]}$ $\bold{.Random.seed[-1]}$](https://dxdy-04.korotkov.co.uk/f/f/0/d/f0d9b98e82867f1c83dda2dd3bf9319282.png)
Код:
b=wh.unif2(5);b
set.seed(wh,"Wich")
a=runif(5);a
Я уже несколько часов пытаюсь понять где ошибка. Можете помочь?