r - 在 R 中选择用于 Halton 数列的素数

标签 r random

我正在尝试在 R 中生成一些二维 Halton 序列,并使用 randtoolsbox 包。似乎这个函数默认选择 2 和 3 作为素数碱基,但我想使用其他函数生成序列。该文档没有指出(据我所知)设置此选项的任何方法。

有谁知道一种方法,使用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)
}

当然欢迎其他答案或更有效的功能。无论如何,也许这对将来的某人有用。

关于r - 在 R 中选择用于 Halton 数列的素数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39679870/

相关文章:

r - 如何使用 dplyr 管道一次性取消嵌套数据帧的多个列表列

arrays - 将数据帧转换为 3D 数组

r - 从R中检索自己的IP地址的功能?

R:用于静态内容的 Shiny 下载按钮

r - 将 data.frame 导出到 .xls(x) R 错误

c - 固定大小数组不固定

python - 如何在 Python 中生成随机数对,包括一个条目相同的对和排除两个条目相同的对?

java - 生成随机 API key ,提供了 2 种方法,有什么区别吗?

arrays - 在 Forth 中设置数组元素的问题

c - 使用 fscanf 从文件读取时内存中的随机字符