1
我試圖在R中生成一些二維Halton序列,並使用randtoolsbox
包。看起來好像這個函數默認選擇2和3作爲素數的基礎,但我想用別人生成序列。該文件沒有表明(據我所知)設置此選項的任何方式。在R中採用素數來使用Halton序列
有沒有人知道一種方法,使用randtoolsbox
或其他軟件包,根據用戶選擇的基數生成R中的Halton序列?
我試圖在R中生成一些二維Halton序列,並使用randtoolsbox
包。看起來好像這個函數默認選擇2和3作爲素數的基礎,但我想用別人生成序列。該文件沒有表明(據我所知)設置此選項的任何方式。在R中採用素數來使用Halton序列
有沒有人知道一種方法,使用randtoolsbox
或其他軟件包,根據用戶選擇的基數生成R中的Halton序列?
所以,我最終只是編程自己的功能。它可能不會是快超大型n
,但它可以讓你選擇自己的主要基地,反正:
gHalton <- function(n, prime) {
# define function which generates value of halton
# sequence at given n
halton_single_number <- function(n, prime) {
n_0 <- n
hn <- 0
f <- 1/prime
while(n_0 > 0) {
n_1 <- floor(n_0/prime)
r <- n_0 - n_1*prime
hn <- hn + f*r
f = f/prime
n_0 = n_1
}
return(hn)
}
# create 0 vector of desired length
vector <- rep(0, n)
# fill vector
for(i in 1:n) {
vector[i] <- halton_single_number(i, prime)
}
return(vector)
}
其他答案,或更有效的功能當然歡迎。無論如何,這可能對將來的某個人有用。