也许我不明白如何使用这两种类型:BigInteger/BigRational,但一般来说我想实现这个方程式:
这是我的数据:n = 235,K = 40,这个小p(实际上称为rho)是5.一开始问题出现在Power函数中:结果非常非常大 - 所以这就是为什么我使用BigInteger库.但后来我意识到会有一个分区,结果将是一些双重类型 - 所以我改为BigRational库.
这是我的代码:
static void Main(string[] args)
{
var k = 40;
var n = 235;
var p = 5;
// the P(n) equation
BigRational pnNumerator = BigRational.Pow(p, n);
BigRational pnDenominator = BigRational.Pow(k, (n - k)) * Factorial(k);
// the P(0) equation
//---the right side of "+" sign in Denominator
BigRational pk = BigRational.Pow(p, k);
BigRational factorialK = Factorial(k);
BigRational lastPart = (BigRational.Subtract(1, (double)BigRational.Divide(p, k)));
BigRational factorialAndLastPart = BigRational.Multiply(factorialK, lastPart);
BigRational fullRightSide …
Run Code Online (Sandbox Code Playgroud)