小编Ash*_*yut的帖子

找出总和可被 k 整除的对的数​​量?

给定 k 值。这样 k<=100000 我们必须打印对的数量,使得每对元素的总和可以被 k 整除。在以下条件下,第一个元素应该小于第二个,并且两个元素都应该小于 10 9

combinations numbers combinatorics

5
推荐指数
1
解决办法
7195
查看次数

快速算法计算n!/(q!)^ r

什么是最快的算法和代码实现来计算以下表达式的值?

N!/(q!)r

我的代码

public static double timesbyf(int n,int q,int qt,int qp1,int qp1t)
{
    int totaltimes=qt+qp1t;
    double ans=1.0d;
    for(int i=1;i<=totaltimes;i++)
    {
        if(i<=qt)
        {
            for(int j=q;j>0;j--)
            {
                ans=ans*((double)n/(double)j);
                n--;
            }
        }
        else
        {
            for(int j=qp1;j>0;j--)
            {
                ans=ans*((double)n/(double)j);
                n--;
            }

        }
    }
    while(n>0)
    {
        ans=(ans*n)%3046201;
        n--;
    }
    return ans;
}
Run Code Online (Sandbox Code Playgroud)

也就是说,n!除以q! r时间.

我给了n≤3×10 6并且q <n,并且保证(q!)r将干净地划分n!.

java algorithm math factorial

-6
推荐指数
1
解决办法
238
查看次数