标签: random-sample

从数组中选择非等随机整数(python)

我是python的新手.我需要在1到100之间拉出5个随机数.但是,这五个数字不能相同.我正在考虑创建一个向量(范围(1,101))并从向量中提取随机值,然后创建一个循环,表明如果第二个绘制等于第一个绘制,则绘制另一个随机数,如果之后的绘制等于前两次绘制等等,直到拉出5个不等的随机数.有没有更优雅的方式来做到这一点?

python arrays random loops random-sample

4
推荐指数
1
解决办法
1247
查看次数

从集合中随机返回项目

我有一个从数据库返回通用列表集合(List)的方法.此系列包含订单详细信息,即订单ID,订单名称,产品详细信息等.

此外,该方法返回一个集合,该集合仅包含按订单日期降序排序的前5个订单.

我的要求是每次客户端调用此方法时,我需要返回有5个随机命令的集合.

我如何使用C#实现这一目标?

c# generics random filtering random-sample

3
推荐指数
1
解决办法
3952
查看次数

从逻辑分布生成样本

我正在研究一些统计代码并探索从随机分布创建样本的不同方法 - 从随机数生成器开始,生成从0到1的统一浮点值

我知道通过将足够大量的独立的,相同分布的均匀随机变量(通过中心极限定理)加在一起,可以从正态分布生成近似样本.

是否有可能做类似的事情从物流分配中创建样本?我假设要添加的样本需要以某种方式加权或相关,以避免以正常结束.

PS我也知道可能有更有效的方法来生成随机样本,我问这个问题,因为我更感兴趣的是理解这样的发电机是如何工作而不是效率....

language-agnostic random statistics random-sample

3
推荐指数
2
解决办法
3566
查看次数

生成1,000,000个随机排列的样本

我正在处理大量的整数排列.每个排列中的元素数量为K.元素大小为1个字节.我需要生成N个唯一的随机排列.
约束:K <= 144,N <= 1,000,000.

我想出了以下简单的算法:

  1. 生成N个随机排列的列表.将所有排列存储在RAM中.
  2. 对列表进行排序并删除所有重复项(如果有).重复数量相对较少.
  3. 如果有任何重复项,请将随机排列添加到列表中,直到有N个排列并返回到步骤2.

有一个更好的方法吗?特别是,有没有办法不将所有排列存储在RAM中(在生成时将它们写在磁盘上)?

编辑:最后,需要按顺序访问生成的排列(逐个访问,不需要随机访问).RAM是更关键的因素(我宁愿不在RAM中同时存储所有排列).

language-agnostic algorithm permutation combinatorics random-sample

3
推荐指数
2
解决办法
1400
查看次数

按使用频率随机选择字母

在将少量莎士比亚书籍送到我的Perl脚本后,我有一个哈希,其中包含26个英文字母作为键,以及它们在文本中出现的次数 - 作为值:

%freq = (
    a => 24645246,
    b => 1409459,
    ....
    z => 807451,
);
Run Code Online (Sandbox Code Playgroud)

当然还有所有字母的总数 - 让我们在$total变量中说.

是否有一个很好的技巧来生成一个包含16个随机字母的字符串(一个字母可以在那里出现几次) - 按使用频率加权?

要在类似于Ruzzle的文字游戏中使用:

在此输入图像描述

优雅的东西 - 比如从文件中挑选一条随机行,如Perl Cookbook收据所示:

rand($.) < 1 && ($line = $_) while <>;
Run Code Online (Sandbox Code Playgroud)

random perl random-sample

3
推荐指数
2
解决办法
510
查看次数

随机的矢量化并行选择?

我有两个矢量"H"和"L",它们有200个数值.我想创建一个名为"HL"的第三个向量,它包含来自H和L的200个随机样本.但是,我希望它们能够并行选择,就像pmin和pmax函数一样.

简化示例:

H <- 1:5
L <- 6:10

# rbind(H,L)
#   [,1] [,2] [,3] [,4] [,5]
# H    1    2    3    4    5
# L    6    7    8    9   10
# intended result is then a random pick from each 'column' shown above, e.g:

HL <- c(6,2,8,4,10)
Run Code Online (Sandbox Code Playgroud)

有没有办法在不使用循环的情况下执行此操作?

任何建议将不胜感激谢谢

r vectorization random-sample

3
推荐指数
1
解决办法
110
查看次数

重新取样,按组替换

这是我的第一篇文章,请耐心等待.以下是我的数据的一小部分样本.我的实际数据集有超过4,000个个人ID,每个ID可以分配给它的一到两百个单独的美元金额.

ID   Dollars
001  17000
001  18000
001  23000
002  64000
002  31000
003  96000
003  164000
003  76000
Run Code Online (Sandbox Code Playgroud)

我最初尝试做的事情可以用一个例子来解释.我想为每个ID生成五个随机样本,替换.每个样本的大小为5或5个随机抽样的美元值.我的最终结果将有20,000个单独的样本(5个样本,每4000个ID,每个ID包含5个随机选择的ID金额).我这样做是为了将每个样本中的美元分布与具有相同ID的其他样本进行比较.

截至目前,我正试图使用​​下面引用的代码获得这样的答案.我还应该指出,当我运行这个脚本时,我收到一个错误,我的'结果必须是全原子'.我不确定是否需要添加额外的步骤或什么.

x <- function(func)
     {
      func<-(lapply(1:5, function(i)
        sample(data$Dollars, size=5, replace=TRUE)))
     }
     grouped.samples<-ddply(data,.variables="ID",.fun=x)
Run Code Online (Sandbox Code Playgroud)

如果我提出的问题不明确,我会提前感到抱歉; 我很难说出我遇到的问题.

在此先感谢您的帮助

r random-sample sample-data

3
推荐指数
1
解决办法
1243
查看次数

给定R中的特定概率值,生成随机数(0和1)

我在R中找不到这个问题的答案.我想生成0到1'随机样本'的随机样本.对于每个样本,我希望有一个特定数量的值'numval',它是从矢量'Prob'的长度导出的.'Prob'给出了每个单独的点将为0或1的概率值.因此,在这种情况下,第一个数字的概率值为0.9为1,0.1为0.依此类推.然后,我想重复随机样本生成1000次.我有一个脚本(下面)生成随机0和1,但我在给出概率值时缺少组件.非常感谢帮助 - 我对R来说相当新.

Prob <- c(0.9, 0.3, 0.6, 0.8, 0.23, 0.45, 0.1, 0.3, 0.5, 0.03)
RandomSample <- list()
zeroones <- c(0,1)
rep = 1000
numval <- length(Prob)

for (i in 1:rep) RandomSample[[i]] <- c(sample(zeroones,numval,replace = TRUE))
t(sapply(RandomSample, unlist, simplify = TRUE))
Run Code Online (Sandbox Code Playgroud)

random r sample probability random-sample

3
推荐指数
1
解决办法
6077
查看次数

在R中随机抽样数据帧为3组

目标:将数据帧随机分成3个样本.

  • 一个样本有60%的行
  • 其他两个样本有20%的行
  • 样品不应与其他样品重复(即样品无需更换).

这是一个笨重的解决方案:

allrows <- 1:nrow(mtcars)

set.seed(7)
trainrows <- sample(allrows, replace = F, size = 0.6*length(allrows))
test_cvrows <- allrows[-trainrows]
testrows <- sample(test_cvrows, replace=F, size = 0.5*length(test_cvrows))
cvrows <- test_cvrows[-which(test_cvrows %in% testrows)]

train <- mtcars[trainrows,]
test <- mtcars[testrows,]
cvr <- mtcars[cvrows,]
Run Code Online (Sandbox Code Playgroud)

必须有一些更容易的东西,也许在一个包中. dplyrsample_frac功能,但似乎针对单个样本,而不是分成多个.

关闭,但不是这个问题的答案: R中有多个概率的随机样本

r random-sample

3
推荐指数
1
解决办法
1万
查看次数

从一组N中随机选择n条记录

我需要n从一组N(where 0 < n < N)中随机选择记录.

一种可能的算法是:

遍历列表并为每个元素,使选择的概率= (number needed) / (number left)

因此,如果您有40个项目,则第一个项目有5/40可能被选中.

如果是,下一个有4/39机会,否则它有5/39机会.当你到达目的地时,你会得到5件物品,而且在此之前你通常会拥有所有物品.

假设一个好的伪随机数发生器,这个算法是否正确?


注意

stackoverflow上有很多这类问题(其中很多都被标记为C#中List <T>中选择N个随机元素的重复).

上面的算法经常被提出(例如Kyle Cronin的答案)并且总是受到质疑(例如,见 这里,这里,这里,这里 ......).

我可以对此事做最后的决定吗?

algorithm correctness random-sample

3
推荐指数
1
解决办法
1035
查看次数