gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 07:37:34 27 4
gpt4 key购买 nike

我正在研究 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 , IE。,
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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com