gpt4 book ai didi

r - 两个不重复的随机数

转载 作者:行者123 更新时间:2023-12-04 14:47:47 25 4
gpt4 key购买 nike

我想生成一组两个随机数(例如 [1,2]、[3,12]),第一个数字介于 1-12 之间,第二个数字介于 1-4 之间。我知道如何使用以下方法独立采样这两个数字:

sample(1:12, 1, replace = T)
sample(1:4, 1, replace = T)

但不知道如何创建一个系统来确定这两个数字的配对是否已经掷出,如果是,则再次掷出。有什么建议!?

谢谢:)

最佳答案

虽然这不能很好地扩展(如果您需要大规模模拟),您可以这样做:

set.seed(42)
di2 <- sample(setdiff(1:4, di1 <- sample(1:12, size = 1)), size = 1)
c(di1, di2)
# [1] 1 2
  • 内部 (di1) 赋值从 1:12 开始,到目前为止一切顺利。
  • 然后我们从中设置差异 1:4 以便第二次采样只有不等于 di1 的候选;
  • 外部 (di2) 分配样本来自 1:4 没有 di1 如果它在 1-4 内。

虽然不是正确性的权威证明

rand <- replicate(100000, local({ di2 <- sample(setdiff(1:4, di1 <- sample(1:12, size=1)), size = 1); c(di1, di2); }))
dim(rand)
# [1] 2 100000
any(rand[1,] == rand[2,])
# [1] FALSE

关于r - 两个不重复的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69699365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com