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

递归检查骰子组合:验证R代码是否正确实现指定逻辑

验证连续双6位置检查的R代码逻辑

首先,要验证你的代码是否符合需求,我们先明确需求核心逻辑:遍历所有连续双6的起始位置,对每个位置,从j=2开始依次检查偏移后的位置是否为双6,直到抵达下一个双6的位置或数组末尾。

符合需求的参考实现

# 1. 生成测试掷骰数据(可替换为你的rolls)
set.seed(123)
rolls <- sample(1:6, 30, replace = TRUE)
# 手动插入若干双6便于测试
rolls[c(2,3,5,6,10,11,15,16,20,21)] <- 6

# 2. 获取所有连续双6的起始索引(rolls[i]和rolls[i+1]均为6)
double_six_pos <- which(rolls[-1] == 6 & rolls[-length(rolls)] == 6)

# 3. 执行需求中的检查逻辑
result_list <- list()

for (k in seq_along(double_six_pos)) {
  current_i <- double_six_pos[k]
  # 确定当前双6位置的下一个双6位置(最后一个则设为无穷大)
  next_i <- if (k < length(double_six_pos)) double_six_pos[k+1] else Inf
  
  current_checks <- data.frame(
    current_double_six_start = current_i,
    j = integer(),
    check_start_pos = integer(),
    is_double_six = character(),
    stringsAsFactors = FALSE
  )
  
  j <- 2
  while (TRUE) {
    check_start <- current_i + j - 2
    # 终止条件:检查位置超出数组范围,或到达下一个双6的起始位置
    if (check_start + 1 > length(rolls) || check_start >= next_i) {
      break
    }
    # 判断是否为双6
    is_66 <- ifelse(rolls[check_start] == 6 && rolls[check_start + 1] == 6, "yes", "no")
    # 记录结果
    current_checks <- rbind(current_checks, data.frame(
      current_double_six_start = current_i,
      j = j,
      check_start_pos = check_start,
      is_double_six = is_66,
      stringsAsFactors = FALSE
    ))
    j <- j + 1
  }
  
  result_list[[k]] <- current_checks
}

# 合并所有结果
final_result <- do.call(rbind, result_list)
print(final_result)

验证你的代码是否正确的要点

你可以从以下几个维度对比自己的代码:

  1. 双6位置的提取是否正确
    • 确认你获取的double_six_pos是所有满足rolls[i] == 6 & rolls[i+1] == 6的起始索引i,而非其他定义(比如结束索引)。
  2. 循环终止条件是否正确
    • 对每个双6位置,是否以下一个双6的起始位置作为终止检查的边界,避免覆盖下一个双6的检查范围。
    • 是否判断了check_start + 1不超过rolls的长度,防止数组越界。
  3. 索引计算是否符合需求
    • 验证check_start = i + j - 2的计算是否正确,对应的rolls[check_start]和rolls[check_start+1]是你要检查的位置对。
  4. 结果记录是否完整
    • 是否为每个j值都记录了对应的检查位置和yes/no结果,且每个双6位置的检查结果都被单独存储或合并。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 21:23:12