r - 在R中进行二项式展开
问题描述
我正在研究 R 中的二项式展开,我遇到了一些问题,我觉得这些值没有意义。这是我的代码,我使用“从头开始”的阶乘和组合来计算。我试过 x=6, y=2 和 n=4 我得到 2784 作为答案。如果我尝试 1,它会给出 0。如果 n=i 我得到无穷大,因为分母将等于 0
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 - kableExtra 的 pack_rows 和 add_header_above 的混合体?
- typescript - FP-TS 分支(面向铁路的编程)
- ios - IOS 无法通过 admob 中介更改 facebook AdChoices 位置
- jquery - Select2 Js 不适用于 Laravel Livewire
- github - 无法验证 github 和 npm
- python - 如何让 Python 中的过程重新运行,有点像函数,但会影响函数运行的范围?
- r - .Rdata 工作空间保存在 Rstudio
- ios - 在 SwiftUI 3.0 iOS15 中使用键盘显示调整视图
- sql - 将查询包装为内联视图在 PostgreSQL 中不起作用
- php - 如果我更改了我们在 PHPmailer 中使用的电子邮件地址,我是否也必须更改 DKIM 密钥/域?