首页 > 解决方案 > R:计算总和小于给定值的三元组

问题描述

我已经能够在其他语言上找到解决此问题的多种解决方案,但似乎无法在 R 中正确解决。这是我到目前为止所拥有的:

给定一个数组 (-2, 0, 1, 3),找出小于给定变量 sum 的三元组数。

sum = 2
ar<-c(-2, 0, 1, 3);ar

sumtrip<- function (vec,n,sum) {
  ctr=0
  for (i in 1:n-2){
    for (j in i+1:n-1){
      for (k in j+1:n){
        if ((vec[i]+vec[j]+vec[k]) < sum){
          ctr=ctr+1
        }
      }
    }
  }
return(ctr)
}

sumtrip(ar,length(ar),sum)

这导致: vec[i] + vec[j] 中的错误:二元运算符的非数字参数

标签: rtriplet

解决方案


你只是标点符号不好。这应该做你想要的。请比较你的括号和我的括号。

sum = 2
ar<-c(-2, 0, 1, 3);ar

sumtrip<- function (vec,n,sum) {
  ctr=0
  for (i in 1:(n-2)){
    for (j in (i+1):(n-1)){
      for (k in (j+1):n){
        if ((vec[i]+vec[j]+vec[k]) < sum){
          ctr=ctr+1
        }
      }
    }
  }
return(ctr)
}

sumtrip(ar,length(ar),sum)

推荐阅读