r - 在 R 中进行二项式展开

标签 r

我正在研究 R 中的二项展开式,我遇到了一些问题,我觉得这些值没有意义。这是我的代码,我从“从头开始”使用阶乘和组合来计算。我尝试了 x=6、y=2 和 n=4 我得到 2784 作为答案。如果我尝试 1,它会给出 0。如果 n=i,我会得到无穷大,因为分母等于零

  fact=1
  for(i in 1:n){
    fact=fact*i
  }
  return(fact)
}

Combi<-function(n,r){
  result=f(n)/(f(r)*f(n-r))
  return(result)
}
Combi(6,4)
expand.binomial<-function(x,y,n){
  sumz=0
  for(i in 1:n){
    if(i==n){
      break
    }
      sumz=sumz+Combi(n,i)*(x**i)*(y**(n-i))
  }
  return(sumz)
}

最佳答案

您应该知道,0!1。在这种情况下,f 应如下定义

f <- function(n) {
  if (n == 0) {
    return(1)
  }
  fact <- 1
  for (i in 1:n) {
    fact <- fact * i
  }
  return(fact)
}

此外,在 expand.binomial 中,指数应从 0 开始到 n,即

expand.binomial <- function(x, y, n) {
  sumz <- 0
  for (i in 0:n) {
    sumz <- sumz + Combi(n, i) * (x**i) * (y**(n - i))
  }
  return(sumz)
}

测试

> expand.binomial(6, 2, 4)
[1] 4096

> expand.binomial(6, 2, 1)
[1] 8

> expand.binomial(6, 2, 0)
[1] 1

关于r - 在 R 中进行二项式展开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67659442/

相关文章:

r - 如何为 R 设置 rselenium?

R - 从列表中粘贴复杂的程式化值

r - R中的二维线性插值

r - 列槽不足

r - R中的子分组或子嵌套后的索引

r - 是否有一种简单的方法来配对数据框中的唯一数据点?

python - 在 R 中使用自定义分词器将文本转换为向量?

r - 在 R 中拆开每个类别只有一行的数据帧

r - 为原始函数的隐式 S4 泛型添加额外参数

r - 删除所有R不附带的软件包