You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中生成包含1-100至少各一次的150个随机数?

解决R语言生成包含1-100每个数字至少一次的150个随机数的问题

你原来的代码使用sample(x=1:100, size=150, replace=TRUE)的问题在于,随机抽样存在概率随机性,确实可能漏掉部分数字。要满足1到100每个数字至少出现一次的要求,可以分两步实现:

  • 先生成1到100的完整序列,确保每个数字都有一个实例
  • 再从1到100中随机抽取50个可重复的数字(150-100=50)
  • 将两部分合并后打乱顺序,得到符合要求的随机数序列

以下是具体代码:

library(tidyverse)
set.seed(123) # 固定随机种子,保证结果可复现

# 生成1-100的完整序列
full_set <- 1:100
# 生成额外的50个可重复随机数
extra_nums <- sample(x = 1:100, size = 50, replace = TRUE)
# 合并并打乱顺序
final_nums <- c(full_set, extra_nums) %>% sample()

# 转换成tibble,按需排序
df <- tibble(Random_number = final_nums) %>% arrange(Random_number)

你可以通过以下代码验证结果是否符合要求:

# 检查是否包含1-100所有数字
all(1:100 %in% df$Random_number) # 应返回TRUE
# 检查总数量是否为150
nrow(df) # 应返回150

如果不需要排序,直接去掉arrange(Random_number)即可。

内容的提问来源于stack exchange,提问作者NOZOMI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 17:13:13