作为我正在计算的公式的一部分,我需要计算大的b因子系数
这就像:
choose(1598,999)
但是R的结果只是inf。有办法解决这个问题吗?或者用某种方式来估算结果?只是我正在尝试使用样本大小为n(1598)和另一个参数的公式 作为p(在这个casw 999中)。
所以我想计算
with n->16000
b->1000
c()->w
c()->w1
for (k in 2:(n-1)){
k*(k-1)*chooseZ((n-k),(b-1))->w
c(w1,w)->w1
}
虽然没有错误,但结果是错误的:
sum(w1)
Error in sum(w1) : invalid 'type' (raw) of argument
> head(w1)
[1] 01 00 00 00 01 00
答案 0 :(得分:3)
尝试使用chooseZ
包中的gmp
。
library(gmp)
chooseZ(1598,999)
Big Integer ('bigz') :
[1] 24278696426445719206411636658492530369104863587241559663553520984424347733955902209013400793410551248995223418598838685432844582570031038690080807851906250009888240115104285225539059084804496423089545062262737596184912679476923113553162874564650288993564978319447910715500162623621305510917593005744632186322124862050089421200736125546497281717999352152426164243210315176391085915104025111403152439452509792706140328536251214887318149223708091336739500080000
请注意,结果是一个bigz类对象,并且比数字类可以表示的大。
答案 1 :(得分:0)
您可以将print
函数与指定的数字一起使用。不知道它是否适用于此。
语法为
print(choose(1598,999),digits = 20)
我认为打印上限是22位数。检查是否有效