【问题标题】:Does my R code contain errors and does it answer the question?我的 R 代码是否包含错误并回答了问题?
【发布时间】:2020-10-28 22:47:43
【问题描述】:

所以我是 R 的真正初学者,但我们被赋予了一项具有挑战性的任务。我做了我能做的,但我不知道如何检查代码是否正确。谁能帮忙告诉我代码是否正确以及如何测试运行我的代码?

这是我的代码:

colorgame = function(games){
  
  money = 0
  
  set.seed(100) # Pseudo-RNG, so we can generate results
  
  for(i in 1:games){
    
    diceRoll = sample(1:6,1) # Represents the 6 different colors
    
  if(diceRoll = 1) {# 1 represents the color the player always bets on
    
      money = money + 100
      
      }else {money = money - 80}
    
    
  } return(money/games)
}

这就是问题:

正在投掷三个颜色的骰子,玩家将投注金钱到 6 种颜色中的一种。如果玩家选择的颜色与已掷出的 3 个骰子的颜色相匹配,则玩家将赢得相同金额、两倍或三倍的下注金额。假设玩家每轮只下注一种颜色。模拟这个游戏并显示玩家最终会输掉他的钱。

【问题讨论】:

  • if(diceRoll == 1) ...
  • 哇,现在我运行代码时没有错误
  • 有没有办法查看玩家是否赔钱?我不知道如何测试那个位
  • colorgame(1000) 平均损失:(1*100 - 5*80)/6 = -50
  • 初学者注意:由于 R 是矢量化的范例,for 循环只应在绝对必要时使用。这是矢量化与传统循环方法的一个很好的比较和对比:r-bloggers.com/2014/01/…

标签: r


【解决方案1】:

您是否在编写 R 代码时没有可用的 R 来测试它?您需要进行三个更正才能使其运行:

  • if 语句中,使用== 而不是=== 是逻辑比较,= 是赋值)。
  • 在 R 中,您必须使用 } 之后的下一行。您必须在elsereturn 之前更改它。但您也可以将这些 {} 留在您的情况下。
colorgame = function(games) {
  money = 0
  set.seed(100) # Pseudo-RNG, so we can generate results
  for(i in 1:games) {
    diceRoll = sample(1:6,1) # Represents the 6 different colors
    if(diceRoll == 1) money = money + 100 # 1 represents the color the player always bets on
    else money = money - 80
  }
  return(money/games)
}

【讨论】:

  • 谢谢。我现在已经做到了,但是有没有办法让我在 n 场比赛后查看玩家有多少钱?我在 R 中相当新,我想看看这个玩家什么时候开始赔钱,我无法用 youtube 和其他东西弄清楚
  • games <- 100; out <- sample(rep(c(100, -80), c(1,5)), games, repl=TRUE); cumsum(out)
猜你喜欢
  • 2012-06-13
  • 1970-01-01
  • 1970-01-01
  • 2019-09-05
  • 2012-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多